<p><code>bip39-lib.js</code> works along with <code>bip32-lib.js</code> AND <code>bitcoinjs-lib</code>.</p>
<p>BIP39 is strictly regarding the mnemonic phrase and HD seed.</p>
<p>In order to derive child keys from an HD seed you'll also need to use BIP32.</p>
<p>BUT... BIP32 has no concept of addresses either so ultimately you'll also need bitcoinjs-lib.</p>
<p>In other words you need to use all three libraries to go from mnemonic to a usable address.</p>

CC BY-SA 4.0
2021-03-23T04:27:27.147Z
2021-03-23T04:27:27.147Z
m1xolyd1an
<p>I red this doc: <a href="https://howieliux.github.io/assets/others/Mastering_bitcoin/Mastering_Bitcoin.html" rel="nofollow noreferrer">https://howieliux.github.io/assets/others/Mastering_bitcoin/Mastering_Bitcoin.html</a></p>
<p>and found:</p>
<blockquote>
<p>As mentioned previously, a very useful characteristic of HD wallets is the ability to derive public child keys from public parent keys, without having the private keys. This gives us two ways to derive a child public key: either from the child private key, or directly from the parent public key.</p>
</blockquote>
<blockquote>
<p>An extended public key can be used, therefore, to derive all of the public keys (and only the public keys) in that branch of the HD wallet structure.</p>
</blockquote>
<p>Which method of <code>bip39-lib.js</code> I need to call to derive address from public parent keys? I haven't found any reference in the doc.</p>
<p><a href="https://github.com/bitcoinjs/bip39" rel="nofollow noreferrer">https://github.com/bitcoinjs/bip39</a></p>

<bip32-hd-wallets><mnemonic-seed><bip>
How to derive public child keys from public parent keys with bip39-libs.js?
János
# How to derive public child keys from public parent keys with bip39-libs.js?

(Asked by: username_0 on 2021-03-22)

I red this doc: <https://howieliux.github.io/assets/others/Mastering_bitcoin/Mastering_Bitcoin.html>

and found:

> As mentioned previously, a very useful characteristic of HD wallets is the ability to derive public child keys from public parent keys, without having the private keys. This gives us two ways to derive a child public key: either from the child private key, or directly from the parent public key.

> An extended public key can be used, therefore, to derive all of the public keys (and only the public keys) in that branch of the HD wallet structure.

Which method of `bip39-lib.js` I need to call to derive address from public parent keys? I haven't found any reference in the doc.

<https://github.com/bitcoinjs/bip39>

**Tags:** bip32-hd-wallets, mnemonic-seed, bip


---

## 1 answers

### Answer by username_1 on 2021-03-23. Score: 1 | Accepted answer

`bip39-lib.js` works along with `bip32-lib.js` AND `bitcoinjs-lib`.

BIP39 is strictly regarding the mnemonic phrase and HD seed.

In order to derive child keys from an HD seed you'll also need to use BIP32.

BUT... BIP32 has no concept of addresses either so ultimately you'll also need bitcoinjs-lib.

In other words you need to use all three libraries to go from mnemonic to a usable address.


---

