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

如何使用@solana/web3.js生成可导入Phantom钱包的Solana私钥

解决方案

你当前输出的是Solana私钥对应Uint8数组的逗号拼接字符串,Phantom等Solana钱包要求导入的是Base58编码的64字节私钥字符串,你只需要将生成的Keypair的secretKey做Base58编码即可得到符合要求的私钥。

1. 前置依赖安装

需要用到bs58库完成编码转换,先执行安装命令:

npm install bs58

2. 生成符合Phantom导入要求的私钥代码

替换你原来的代码即可直接输出可用私钥:

const solanaWeb3 = require("@solana/web3.js");
const bs58 = require("bs58");

const wallet = solanaWeb3.Keypair.generate();
// 输出钱包公钥
console.log("公钥:", wallet.publicKey.toString());
// 输出可直接导入Phantom的Base58格式私钥
const phantomPrivateKey = bs58.encode(wallet.secretKey);
console.log("Phantom可用私钥:", phantomPrivateKey);

3. 已有逗号分隔格式私钥的转换方法

如果你已经生成过逗号分隔的私钥字符串,可以用以下代码直接转换为可用格式:

const bs58 = require("bs58");
// 将你之前输出的逗号分隔私钥字符串填入此处
const commaSecretKey = "211,55,244,72,160,174,33,152,24,226,97,172,91,91,47,3,148,83,99,188,150,111,153,248,253,237,31,223,194,194,199,0,181,236,151,66,133,117,159,64,4,85,92,104,144,224,69,164,206,133,124,106,5,104,149,215,125,210,9,192,84,231,101,86";
const uint8SecretKey = new Uint8Array(commaSecretKey.split(",").map(Number));
const phantomPrivateKey = bs58.encode(uint8SecretKey);
console.log("转换后可用私钥:", phantomPrivateKey);

重要提示:私钥是钱包资产的唯一凭证,请勿泄露给任何第三方,生成后请妥善离线保管,泄露将直接导致资产全额损失。

内容的提问来源于stack exchange,提问作者Nikolai Dikanev

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:45:03