BIP32 定義 Hierarchical Deterministic wallet (簡稱 "HD Wallet"),是一個系統(tǒng)可以從單個seed產(chǎn)生樹狀結(jié)構(gòu)儲存多組 keypairs(私鑰和公鑰)
BIP39 定義錢包助記詞和seed生成規(guī)則,一般由 12 -24個單字組成凤覆,稱為 mnemonic砂轻。
BIP44 基于 BIP32 的系統(tǒng)赐写,賦予樹狀結(jié)構(gòu)中的各層特殊的意義。讓同一個 seed 可以支援多幣種激涤、多帳戶等 (btc一般是 m/44'/0'/0’/0衷蜓,eth一般是 m/44'/60'/0'/0)
-
安裝包
npm install bip39 ethereumjs-wallet ethereumjs-util --save
-
引入
var bip39 = require('bip39') var hdkey = require('ethereumjs-wallet/hdkey') var util = require('ethereumjs-util')
-
使用
// 生成助記詞 var mnemonic = bip39.generateMnemonic() console.log(mnemonic) // 生成 HD Wallet 首先將 mnemonic code 轉(zhuǎn)成 binary二進制的 seed var seed = bip39.mnemonicToSeed(mnemonic) // 生成 Master Key 地址 "m/44'/60'/0'/0" 使用 seed 生成 HD Wallet累提。 var hdwallet = hdkey.fromMasterSeed(seed) // 從路徑 m/44'/60'/0'/0 導(dǎo)入 Master Key 并生成 Wallet 中第一個帳戶的第一組 keypair var key1 = hdwallet.derivePath("m/44'/60'/0'/0") // 使用 keypair 中的公鑰產(chǎn)生 address var address1 = util.pubToAddress(key1._hdkey._publicKey, true) // 獲得以太坊錢包地址 address1 = util.toChecksumAddress(address1.toString('hex')) console.log(address1)
-
參考