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

如何使用助记词创建Web3py账户 适配BSC桌面钱包开发需求

BSC钱包通过助记词创建账户实现方案

BSC为以太坊EVM兼容链,账户体系完全遵循以太坊规范,助记词生成账户遵循BIP39(助记词生成/校验)、BIP44(密钥派生路径)标准即可实现。web3.py本身未内置助记词相关能力,需要配合对应密码学库完成开发。

依赖安装

pip install eth-account bip-utils

完整实现代码

from web3 import Web3
from bip_utils import Bip39MnemonicValidator, Bip39SeedGenerator, Bip44, Bip44Coins, Bip44Changes

w3 = Web3()

# 你的助记词
mnemonic = "hello john pizza guitar"

# 第一步:校验助记词合法性
is_valid = Bip39MnemonicValidator().Validate(mnemonic)
if not is_valid:
    raise ValueError("无效的BIP39助记词")

# 第二步:助记词生成种子,可传入密码作为额外盐值,无密码传空字符串
seed = Bip39SeedGenerator(mnemonic).Generate("")

# 第三步:按BIP44规则派生密钥,BSC和以太坊共用60的coin type,派生路径为 m/44'/60'/0'/0/0
bip44_mst_ctx = Bip44.FromSeed(seed, Bip44Coins.ETHEREUM)
bip44_acc_ctx = bip44_mst_ctx.Purpose().Coin().Account(0)
bip44_chg_ctx = bip44_acc_ctx.Change(Bip44Changes.CHAIN_EXT)
# 派生第0个账户,要生成多个账户修改这里的索引即可,比如第1个账户传1
bip44_addr_ctx = bip44_chg_ctx.AddressIndex(0)

# 第四步:获取私钥,转成web3账户对象
private_key = bip44_addr_ctx.PrivateKey().Raw().ToHex()
account = w3.eth.account.from_key(private_key)

# 验证输出
print(f"账户地址: {account.address}")
print(f"私钥: {private_key}")

如果你使用的是旧版本web3.py,将w3.eth.account.from_key替换为w3.eth.account.privateKeyToAccount即可,功能完全一致。

注意事项

  • 生产环境禁止硬编码助记词/私钥,助记词需要做好加密存储,避免泄露
  • 助记词派生时如果设置了密码(创建助记词时传入的额外加密短语),生成种子时必须传入相同的密码,否则会得到完全不同的账户
  • 需要派生多账户时,修改AddressIndex的参数即可,索引从0开始计数,符合绝大多数钱包的账户生成规则
  • 该方案生成的账户和MetaMask等主流钱包的BSC/ETH账户完全兼容,同一个助记词导入不同钱包得到的地址一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 11:06:03