<p>BIP 44 just specifies a structure for organising keys using BIP 32 style generation. The tree structure is this:</p>

<pre><code> m / purpose' / coin_type' / account' / change / address_index
</code></pre>

<p>Generally, <code>m</code> refers to your BIP 32 master private key generated from the mnemonic in BIP 39. But all children extended keys are also extended parents if you want them to be - all can have children. So Account extended public key will just be the extended public key generated as a child of the coin_type extended key from the hierarchy above.</p>

CC BY-SA 3.0
2017-08-26T16:03:42.603Z
if that's the case, is it possible to get extended public key from Account extended public key? perhaps a suggestion of library would be helpful; please advice
user1420716
CC BY-SA 3.0
2017-08-26T20:42:22.170Z
It's not possible to find the parent from the child, you can only go down the tree not up.
meshcollider
CC BY-SA 3.0
2017-08-27T18:14:34.037Z
i see, will it be possible to derive deterministic address from account extended public key?
user1420716
CC BY-SA 3.0
2017-08-27T23:38:01.913Z
Of course, that's what the levels below it in the tree are - change and address_index. Please accept my answer if it has satisfied your question btw :)
meshcollider
CC BY-SA 4.0
2020-07-28T12:20:38.450Z
BIP 32 master private key is equal to BIP32 Root Key ?
Guillaume Paris
CC BY-SA 3.0
2017-08-25T23:35:43.807Z
2017-08-25T23:35:43.807Z
meshcollider
<p>I've just had the same question. </p>

<p>So if you go to <a href="https://iancoleman.io/bip39/" rel="nofollow noreferrer">https://iancoleman.io/bip39/</a>
and use mnemonic <code>zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong"</code>and ETH-Ethereum, you would get the same result as the following code:</p>



<pre><code>const seed = Bip39.mnemonicToSeedSync(mnemonic); 

console.log("BIP39 Seed = ", seed);

const hdkey = HDKey.fromMasterSeed(seed);

console.log("BIP32 Root Key = ", hdkey.privateExtendedKey);

console.log("Account Extended Private Key = ", hdkey.derive("m/44'/60'/0'").privateExtendedKey);

console.log("BIP32 Extended Private Key = ", hdkey.derive("m/44'/60'/0'/0").privateExtendedKey);
</code></pre>

<p>it was contr intuitive for me, that "Account Extended Private Key" is the ancestor of "BIP32 Extended Private Key". So yes, you can use the account key to derive all child keys (xpub->xpub, xprv->all).<br>
Hope that helps.</p>

CC BY-SA 4.0
2019-07-30T21:53:51.953Z
2019-07-30T21:53:51.953Z
lebed2045
<p>recently i played with the tool generation of HD address on <a href="https://iancoleman.github.io/bip39/" rel="nofollow noreferrer">https://iancoleman.github.io/bip39/</a>. after input mnemonic code and check the derivation path, why is there Account Extended Public Key &amp; BIP32 Extended Public Key? What's the difference between 2? Can i use Account xpubkey to generate the same address as bip32 xpubkey? </p>

<p>please advice, </p>

<address-generation><bip32-hd-wallets><mnemonic-seed><bip44>
BIP44 generation tool has Account xpubkey & bip32 xpubkey, what's the difference?
user1420716
# BIP44 generation tool has Account xpubkey & bip32 xpubkey, what's the difference?

(Asked by: username_0 on 2017-08-25)

recently i played with the tool generation of HD address on <https://iancoleman.github.io/bip39/>. after input mnemonic code and check the derivation path, why is there Account Extended Public Key & BIP32 Extended Public Key? What's the difference between 2? Can i use Account xpubkey to generate the same address as bip32 xpubkey?

please advice,

**Tags:** address-generation, bip32-hd-wallets, mnemonic-seed, bip44


---

## 2 answers

### Answer by username_1 on 2017-08-25. Score: 1 | Accepted answer

BIP 44 just specifies a structure for organising keys using BIP 32 style generation. The tree structure is this:

```
 m / purpose' / coin_type' / account' / change / address_index

```

Generally, `m` refers to your BIP 32 master private key generated from the mnemonic in BIP 39. But all children extended keys are also extended parents if you want them to be - all can have children. So Account extended public key will just be the extended public key generated as a child of the coin\_type extended key from the hierarchy above.

> **Comments:**
> **username_0**: if that's the case, is it possible to get extended public key from Account extended public key? perhaps a suggestion of library would be helpful; please advice  
> **username_1**: It's not possible to find the parent from the child, you can only go down the tree not up.  
> **username_0**: i see, will it be possible to derive deterministic address from account extended public key?  
> **username_1**: Of course, that's what the levels below it in the tree are - change and address_index. Please accept my answer if it has satisfied your question btw :)  
> **username_2**: BIP 32 master private key is equal to BIP32 Root Key ?  

---

### Answer by username_3 on 2019-07-30. Score: 0

I've just had the same question.

So if you go to <https://iancoleman.io/bip39/>
and use mnemonic `zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo zoo wrong"`and ETH-Ethereum, you would get the same result as the following code:

```
const seed = Bip39.mnemonicToSeedSync(mnemonic); 

console.log("BIP39 Seed = ", seed);

const hdkey = HDKey.fromMasterSeed(seed);

console.log("BIP32 Root Key = ", hdkey.privateExtendedKey);

console.log("Account Extended Private Key = ", hdkey.derive("m/44'/60'/0'").privateExtendedKey);

console.log("BIP32 Extended Private Key = ", hdkey.derive("m/44'/60'/0'/0").privateExtendedKey);

```

it was contr intuitive for me, that "Account Extended Private Key" is the ancestor of "BIP32 Extended Private Key". So yes, you can use the account key to derive all child keys (xpub->xpub, xprv->all).  
Hope that helps.


---

