将虚拟钱包私钥导入 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/02/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的主要内容,如果未能解决你的问题,请参考以下文章