将虚拟钱包私钥导入 solana CLI
Posted
技术标签:
【中文标题】将虚拟钱包私钥导入 solana CLI【英文标题】:Import phantom wallet private key into solana CLI 【发布时间】:2021-11-13 15:55:16 【问题描述】:我需要通过 solana CLI 使用虚拟钱包,但我无法对其进行配置。 例如使用检查余额
solana balance --keypair fileexportedfromphantom
但无法读取信息
如何将该私钥转换为有效形式以在 solana cli 中使用?
【问题讨论】:
【参考方案1】:试试:
solana-keygen recover 'prompt://?key=0/0' -o <file.json>
并在“Show Secret Recovery Phrase”下输入来自 Phantom 的 24 个单词的恢复短语。
这是因为 Phantom 使用 0/0
钱包派生路径,并且需要额外提供的路径才能访问正确的帐户。
您可以对1/0
、2/0
... N/0
使用相同的命令来获取不同的 Phantom 派生帐户。
有关使用 Solana 工具进行分层派生的更多信息,请参见此处:https://docs.solana.com/wallet-guide/paper-wallet#hierarchical-derivation
或使用 Solflare 钱包在此处检查您的特定 24 词短语的派生路径:https://solflare.com/access
【讨论】:
这就像一个魅力【参考方案2】:这有点烦人,但您必须将 Phantom 返回的 base-58 私钥解码为字节数组。这是一个简单的 Python 代码 sn-p 来完成此操作,使用 base58
包 (https://pypi.org/project/base58/):
import base58
byte_array = base58.b58decode(MY_PRIVATE_KEY_IN_BASE58)
json_string = "[" + ",".join(map(lambda b: str(b), byte_array)) + "]"
print(json_string)
您可以将该输出通过管道传输到一个文件,然后通过 CLI 工具将其用作您的 --keypair
。
【讨论】:
错误:无法读取密钥对文件。如果我使用 solana-keygen new 来生成密钥,它会显示为数字组合。使用您的脚本生成的输出是二进制的 我得到类似 [�,[,:,�,�,>,�,L,=,�,J,�,这是预期的外观:[157,179,177,192,112,跨度> 奇怪,我自己又测试了一次,它可以工作。对于MY_PRIVATE_KEY_IN_BASE58
,您应该输入一个字符串,例如"4AfmonCVDRutyt3vMfsooagRsoNXTCVURGZ7nzSZPP9CWykXUmgA72Sfgrne7EcqtVJE6Gq6aA8xw21bHtbZMQzL"
给出[158,99,132,43,140,119,254,9,6,225,141,208,225,184,48,219,246,115,45,3,0,67,160,190,25,199,130,208,179,210,219,1,41,32,144,228,51,198,235,65,64,71,155,119,235,189,157,49,2,65,230,165,161,159,153,77,213,153,226,174,35,2,212,89]
你能测试一下吗?这是在 ubuntu 20.04 上使用 python 3.8 运行的
对我来说完全一样的失败
为我工作,在终端或 repl 中运行简单的 python 脚本。以上是关于将虚拟钱包私钥导入 solana CLI的主要内容,如果未能解决你的问题,请参考以下文章
如何使用现有钱包签署使用节点 JS 脚本运行的 solana 交易?
如何使用 Solana keygen 中的密钥来使用网络钱包?