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

如何通过助记词推导正确的Solana公钥地址,解决与Phantom等钱包地址不匹配问题

Solana助记词派生公钥与钱包不一致问题解决方案

原有代码的核心问题是使用了默认适配secp256k1椭圆曲线的bip32库进行密钥派生,而Solana生态的Phantom、Solflare等钱包统一遵循SLIP-0010规范下的ed25519曲线派生规则,两种曲线的HD密钥派生逻辑完全不兼容,因此计算出的公钥和钱包显示结果不一致。

具体错误点

  • 标准bip32库默认仅支持secp256k1曲线的派生计算,不支持ed25519曲线的特殊派生规则,即使输入正确的派生路径m/44'/501'/0'/0',得到的派生私钥也不符合Solana钱包的规范。
  • 尝试截取seed前32位的操作无法解决根本问题,密钥派生逻辑的差异才是核心诱因。

修复方案

使用专门适配ed25519曲线HD派生的ed25519-hd-key库替代普通bip32库即可,完整可运行的正确代码如下:

import { Keypair} from '@solana/web3.js';
import * as bip39 from 'bip39';
import * as ed25519 from 'ed25519-hd-key';

const derivePath = "m/44'/501'/0'/0'";
const mnemonic = "...12 word phrase"

const seed: Buffer = await bip39.mnemonicToSeed(mnemonic);
const derivedSeed = ed25519.derivePath(derivePath, seed.toString('hex')).key;
const keypair = Keypair.fromSeed(derivedSeed);
const publicKey = keypair.publicKey.toString();

补充说明

不同钱包默认的派生路径存在差异,需要和你在钱包里选择的路径保持一致:

  • Phantom默认路径:m/44'/501'/0'/0'
  • Solflare默认路径:m/44'/501'/0'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:45:03