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

如何在Hedera JS SDK中通过BIP-39助记词指定MetaMask的ECDSA派生路径

如何在Hedera JS SDK中通过BIP-39助记词生成适配MetaMask以太坊派生路径的ECDSA密钥对

问题背景

之前通过直接传入私钥生成ECDSA密钥对的代码如下:

const privateKey = PrivateKey.fromStringECDSA(process.env.TARGET_HEX_PRIVATE_KEY);

现在需要改用BIP-39助记词生成,且要适配MetaMask硬编码的以太坊派生路径m/44'/60'/0'/0/0(前3段为hardened派生,后2段为非hardened派生),但Hedera JS SDK的Mnemonic.toEcdsaPrivateKey方法不接受字符串格式的派生路径,只接受数字数组。

解决方案

根据BIP-32规范,hardened派生的索引需要在基础数值上加上2^31(即0x80000000),将路径m/44'/60'/0'/0/0转换为数字数组的规则如下:

  • 44' → 44 + 2147483648 = 2147483692
  • 60' → 60 + 2147483648 = 2147483708
  • 0' → 0 + 2147483648 = 2147483648
  • 0 → 直接使用0
  • 0 → 直接使用0

正确代码示例

const mnemonic = Mnemonic.fromString(process.env.TARGET_SEED_PHRASE);
// 对应m/44'/60'/0'/0/0的派生路径数组
const derivationPath = [2147483692, 2147483708, 2147483648, 0, 0];
const privateKey = await mnemonic.toEcdsaPrivateKey('', derivationPath);

说明

  • 第一个参数传入空字符串,表示助记词未设置额外密码(若有助记词密码可替换为对应字符串)
  • 数字数组中的每个元素对应派生路径的每一段,hardened段必须按规则转换为带偏移量的数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:23:28