【问题标题】:Import phantom wallet private key into solana CLI将虚拟钱包私钥导入 solana CLI
【发布时间】:2021-11-13 15:55:16
【问题描述】:

我需要通过 solana CLI 使用虚拟钱包,但我无法对其进行配置。 例如使用检查余额

solana balance --keypair fileexportedfromphantom

但无法读取信息

如何将该私钥转换为有效形式以在 solana cli 中使用?

【问题讨论】:

    标签: web3 solana


    【解决方案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 脚本。
    猜你喜欢
    • 2022-01-13
    • 2017-03-01
    • 2022-10-22
    • 2021-12-10
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    相关资源
    最近更新 更多