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

将Solana密钥对生成的JS代码转换为Python 3.10实现

Solana密钥对生成的Python 3.10等效实现

首先安装所需依赖库:

pip install bip39 ed25519-hd-key pynacl base58

以下是对应Python实现,逻辑与原JS代码完全对齐:

import bip39
import ed25519_hd_key
import nacl.signing
import base58

def main():
    # 输入助记词
    mnemonic = "main holiday sing female devote vacant foot cream drink lecture wage marble bread special logic follow rose fire morning invite fatal make office search"
    # 从助记词生成种子二进制数据
    seed = bip39.mnemonic_to_seed(mnemonic)
    # 将种子转换为十六进制字符串,匹配JS中Buffer处理逻辑
    seed_hex = seed.hex()
    # Solana标准BIP44派生路径
    derivation_path = "m/44'/501'/0'/0'"
    # 按路径派生密钥种子
    derived_seed = ed25519_hd_key.derive_path(derivation_path, seed_hex).key
    # 从派生种子生成Ed25519密钥对
    signing_key = nacl.signing.SigningKey(derived_seed)
    
    # 可选:转换为Solana常用的Base58格式(原JS代码未输出,这里补充方便使用)
    public_key_base58 = base58.b58encode(signing_key.verify_key.encode()).decode()
    private_key_base58 = base58.b58encode(signing_key.encode()).decode()
    
    print(f"公钥(Base58): {public_key_base58}")
    print(f"私钥(Base58): {private_key_base58}")

if __name__ == "__main__":
    main()

代码说明

  • 用bip39.mnemonic_to_seed替代JS的bip39.mnemonicToSeed,生成种子二进制数据
  • ed25519_hd_key.derive_path对应JS的ed25519.derivePath,实现BIP44路径密钥派生
  • nacl.signing.SigningKey对应JS的nacl.sign.keyPair.fromSeed,生成Ed25519签名密钥对
  • 补充了Base58格式转换,符合Solana生态中密钥的常用展示形式

内容的提问来源于stack exchange,提问作者Vitaliy Kotov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:37:26