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

如何在Python中导入Solana助记词,适配HD钱包至solders库

在solana-py中使用HD钱包的解决方案

现状与问题

  • 已通过以下代码生成Solana HD钱包(基于BIP39/BIP44标准):
mnemo = Mnemonic("english")
my_words = mnemo.generate(128)
    
seed_bytes = Bip39SeedGenerator(my_words).Generate("")
bip44_mst_ctx = Bip44.FromSeed(seed_bytes, Bip44Coins.SOLANA)
bip44_acc_ctx = bip44_mst_ctx.Purpose().Coin().Account(0)
bip44_chg_ctx = bip44_acc_ctx.Change(Bip44Changes.CHAIN_EXT)
ADDR = bip44_chg_ctx.PublicKey().ToAddress()
  • 遇到的问题:solana-py依赖的solders库不直接支持HD钱包导入,无法直接将HD密钥对用于solana-py的交易签名等核心操作。

解决方案:将HD私钥转换为solders Keypair

从已推导的HD路径上下文导出私钥字节,再转换为solders支持的Keypair格式即可,补充代码如下:

# 从HD路径上下文导出原始私钥字节
private_key_bytes = bip44_chg_ctx.PrivateKey().Raw().ToBytes()

# 导入solders并创建Keypair
from solders.keypair import Keypair
keypair = Keypair.from_bytes(private_key_bytes)

转换完成后,该keypair可直接用于solana-py的send_transaction等方法,完全兼容现有业务流程。

Solders密钥对文档核心内容翻译

  • 密钥对创建方式:
    • 随机生成:Keypair()
    • 从私钥字节导入:Keypair.from_bytes(private_key_bytes)
    • 注意:solders不支持直接从助记词生成HD路径密钥对,需先通过BIP39/BIP44工具推导私钥字节再导入
  • 常用操作:
    • 获取公钥:keypair.pubkey()
    • 获取私钥字节:keypair.secret()
    • 签名消息:keypair.sign_message(message_bytes)

内容的提问来源于stack exchange,提问作者Berkeley Cinar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:32:46