You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solana Tic-Tac-Toe游戏出现bad secret key size错误,求解决方法

修复Solana井字棋游戏的"bad secret key size"错误

错误原因

这个错误来自Solana web3.js的Keypair.fromSecretKey()方法,说明你传入的密钥长度不符合要求——Solana私钥必须是32字节的Uint8Array,或对应的base58编码字符串(长度约44字符)。常见触发场景包括:

  • 误把钱包地址(公钥,44字符)当成私钥传入
  • 私钥字符串少/多复制了字符,或包含空格、换行
  • 直接把字符串传给fromSecretKey,没有先转换为Uint8Array

修复步骤

  1. 定位问题代码
    打开pages/api/TicTacToe/newGame.ts第23行,找到Keypair.fromSecretKey(...)这行代码,检查传入的密钥来源(环境变量、前端参数等)。

  2. 修正密钥处理逻辑

    • 如果密钥是从环境变量读取的base58字符串:
      import { Keypair } from "@solana/web3.js";
      import base58 from "bs58";
      
      // 正确解码并生成密钥对
      const secretKeyStr = process.env.PRIVATE_KEY;
      if (!secretKeyStr) throw new Error("PRIVATE_KEY环境变量未设置");
      const secretKey = base58.decode(secretKeyStr);
      const keypair = Keypair.fromSecretKey(secretKey);
      
    • 如果是前端传递的玩家密钥:
      确认前端传递的是私钥字符串而非钱包地址,后端同样需要用base58.decode()转换为Uint8Array后再传入fromSecretKey。
  3. 验证密钥有效性

    • 检查私钥是否是Phantom钱包导出的完整私钥(不是地址),复制时不要漏掉字符或多带空格/换行
    • 确认私钥长度:base58编码的Solana私钥应为44字符左右,解码后是32字节
  4. 重启测试
    重启项目后尝试创建新游戏,看错误是否消失。

内容的提问来源于stack exchange,提问作者Aleyna Alangil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 16:05:20