如何将Phantom Wallet私钥转换为Solana CLI可使用的有效格式
转换Phantom私钥为Solana CLI可用格式的方法
Phantom钱包默认导出的私钥是base58编码的字符串格式,而Solana CLI要求的密钥文件为32位无符号整数组成的JSON数组格式,二者格式不兼容因此无法直接读取,可按以下步骤完成转换:
前置准备
- 从Phantom钱包导出你的私钥:打开Phantom → 点击右上角设置 → 安全与隐私 → 导出私钥,复制得到的base58编码字符串,妥善保存不要泄露。
转换方法(二选一即可)
方法1:使用Node.js转换(需提前安装Node.js环境)
- 全局安装bs58依赖包:
npm install -g bs58
- 新建转换脚本
convert.js,写入以下代码,替换对应位置为你导出的私钥字符串:
const bs58 = require('bs58'); const fs = require('fs'); // 引号内替换为你从Phantom导出的私钥字符串 const phantomPrivateKey = 'xxxxxxx你的私钥字符串xxxxxxx'; const uint8Array = bs58.decode(phantomPrivateKey); fs.writeFileSync('./solana-cli-keypair.json', JSON.stringify(Array.from(uint8Array)));
- 执行脚本生成符合要求的密钥文件:
node convert.js
- 测试可用性,执行余额查询命令即可正常返回结果:
solana balance --keypair ./solana-cli-keypair.json
方法2:使用Python转换(需提前安装Python3环境)
- 安装base58依赖包:
pip install base58
- 新建转换脚本
convert.py,写入以下代码,替换对应位置为你导出的私钥字符串:
import base58 import json # 引号内替换为你从Phantom导出的私钥字符串 phantom_private_key = "xxxxxxx你的私钥字符串xxxxxxx" uint8_list = list(base58.b58decode(phantom_private_key)) with open("solana-cli-keypair.json", "w") as f: json.dump(uint8_list, f)
- 执行脚本生成密钥文件:
python3 convert.py
安全注意事项
- 转换操作建议在断网环境下执行,转换完成后及时删除转换脚本,避免私钥泄露
- 生成的
solana-cli-keypair.json文件建议设置仅当前用户可读的权限,降低被盗风险
内容的提问来源于stack exchange,提问作者user1843376
相关产品推荐
相关产品推荐

