Friday, November 22, 2024

bip32 hd wallets – Storing complete seed from bip39 mnemonic utilizing WIF

I am utilizing the bitcoinjs assortment of libraries, particularly https://github.com/bitcoinjs/wif, https://github.com/bitcoinjs/bip32 and https://github.com/bitcoinjs/bip39 with nodejs.

I’ve a mnemonic and may get the seed of it utilizing bip39:

> const mnemonic="laptop computer arrest extensive slice prolong right this moment jelly bachelor curiosity comparable particles behind"
> const seed = bip39.mnemonicToSeedSync(mnemonic)
> seed
<Buffer 11 ae 55 c9 cb c0 c8 5c 09 d2 4e 36 4a 90 a6 64 09 fe 2b 87 47 79 4a 7b 03 39 76 ff 4b e9 28 59 84 74 81 cf 07 a2 7f c6 91 67 ec 04 7c a3 dc d9 23 9b ... 14 extra bytes>

Nonetheless, encoding it utilizing wif after which decoding it solely incorporates the primary 16 bytes of the seed:

> wif.decode(wif.encode(0x80, seed, true)).privateKey
<Buffer 11 ae 55 c9 cb c0 c8 5c 09 d2 4e 36 4a 90 a6 64 09 fe 2b 87 47 79 4a 7b 03 39 76 ff 4b e9 28 59>

It is a downside as a result of once I use bip32.fromSeed, the derived keys will not be the identical. Utilizing bip32.fromPrivateKey solves this challenge, however provided that I’ve the chaincode, which nonetheless must be by some means saved individually.

What am I doing unsuitable? Thanks prematurely. When utilizing mnemonics, am I alleged to discard a part of the seed so it aligns with the WIF?

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles