<p>In BIP32 key derivation, having the parent extended public (xpub) key suffices for computing child public keys.</p>
<p>That parent xpub can be derived in a number of ways, but all eventually boil down to a seed. However, that seed is only used indirectly to construct the xpubs. Once you have the xpub, you can compute the child keys.</p>

CC BY-SA 4.0
2021-10-11T21:45:49.980Z
The xpub is the master key shown here? https://github.com/bitcoinbook/bitcoinbook/blob/develop/images/mbc2_0503.png
Rony Tesler
CC BY-SA 4.0
2021-10-11T22:05:54.280Z
All the keys shown there (master, child, grandchild) are xpubs. That's what makes HD wallets hierarchical: from every every (extended) public key, you can derive more (extended) public keys. At the leafs, the extended part is not used, and just the key is used.
Pieter Wuille
CC BY-SA 4.0
2021-10-11T21:38:45.127Z
2021-10-11T21:38:45.127Z
Pieter Wuille
<p>From <a href="https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc#Type2_wallet" rel="nofollow noreferrer">Mastering Bitcoin</a>:
&quot;The second advantage of HD wallets is that users can create a sequence of public keys without having access to the corresponding private keys. This allows HD wallets to be used on an insecure server or in a receive-only capacity, issuing a different public key for each transaction. The public keys do not need to be preloaded or derived in advance, yet the server doesn’t have the private keys that can spend the funds.&quot;</p>
<p>How can the user can create public keys? Doesn't he need at least to have the seed?</p>

<bip32-hd-wallets><mnemonic-seed><seed><deterministic-wallets><mastering-bitcoin>
hierarchical deterministic wallets - creation of public keys
Rony Tesler
# hierarchical deterministic wallets - creation of public keys

(Asked by: username_0 on 2021-10-11)

From [Mastering Bitcoin](https://github.com/bitcoinbook/bitcoinbook/blob/develop/ch05.asciidoc#Type2_wallet):
"The second advantage of HD wallets is that users can create a sequence of public keys without having access to the corresponding private keys. This allows HD wallets to be used on an insecure server or in a receive-only capacity, issuing a different public key for each transaction. The public keys do not need to be preloaded or derived in advance, yet the server doesn’t have the private keys that can spend the funds."

How can the user can create public keys? Doesn't he need at least to have the seed?

**Tags:** bip32-hd-wallets, mnemonic-seed, seed, deterministic-wallets, mastering-bitcoin


---

## 1 answers

### Answer by username_1 on 2021-10-11. Score: 1 | Accepted answer

In BIP32 key derivation, having the parent extended public (xpub) key suffices for computing child public keys.

That parent xpub can be derived in a number of ways, but all eventually boil down to a seed. However, that seed is only used indirectly to construct the xpubs. Once you have the xpub, you can compute the child keys.

> **Comments:**
> **username_0**: The xpub is the master key shown here? https://github.com/bitcoinbook/bitcoinbook/blob/develop/images/mbc2_0503.png  
> **username_1**: All the keys shown there (master, child, grandchild) are xpubs. That's what makes HD wallets hierarchical: from every every (extended) public key, you can derive more (extended) public keys. At the leafs, the extended part is not used, and just the key is used.  

---

