G-N354X1RGVT
BitcoinToday

bip32 hd wallets – Storing whole 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 huge slice prolong at present jelly bachelor curiosity related 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 comprises 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>

This can be a drawback as a result of once I use bip32.fromSeed, the derived keys usually are not the identical. Utilizing bip32.fromPrivateKey solves this problem, however provided that I’ve the chaincode, which nonetheless must be in some way saved individually.

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

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button