<blockquote>
<p>It can also derive a non hardened xpriv, which we will use with the neutered function to make it an xpub.</p>
<p>The xpub derived, is the same xpub that we would get if we had done CKDpub on the original Xpub.</p>
</blockquote>
<p>Yes. Neutering really means &quot;Do CKDpub and delete the Xpriv&quot;. There is no neuter function on Xprivs; it's for the wallet software, not the key derivation.</p>
<blockquote>
<p>My other question on top of this, is if a Wallet software has the mnemonic key, would it be better to always derive from the mnemonic?</p>
</blockquote>
<p>Deriving from the mnemonic requires additional computation, however requires less storage space. I don't think it really matter.</p>
<blockquote>
<p>Also, Is the extended private key, the (private key + chain code), or is it the (magic + depth + fingerprint + index + chain + key) ?</p>
</blockquote>
<p>The second.</p>

CC BY-SA 4.0
2018-05-03T04:51:54.253Z
Thank you, I think I understand bip32 and 44 now. Thanks for all of the corrections Andrew.
Kyle Graham
CC BY-SA 4.0
2020-06-02T15:25:23.687Z
It is not accurate to state that "there is no neuter function on Xprivs". The function is defined in the spec as taking an extended private key for input: N((k, c)) → (K, c)
rnbrady
CC BY-SA 4.0
2018-05-03T03:23:02.253Z
2018-05-03T03:23:02.253Z
2020-06-16T11:10:03.350Z
Ava Chow
<p>Can the following be clarified, where I am wrong:</p>

<p>The Xpriv can derive a hardened xpriv.</p>

<p>It can also derive a non hardened xpriv, which we will use with the neutered function to make it an xpub. </p>

<p>The xpub derived, is the same xpub that we would get if we had done CKDpub on the original Xpub.</p>

<p>Xpirv and Xpub with the capital 'X' can be seen as parent keys.</p>

<p>So a diagram would look like:</p>

<p>Xpriv -> xprivH (hardened)</p>

<p>Xpriv -> xprivN -> xpubN (Normal: This is the path from the xpriv using Neuter)</p>

<p>Xpub -> xpubN (Normal: This is the same path from the Xpub using CKDpub)</p>

<p>My other question on top of this, is if a Wallet software has the mnemonic key, would it be better to always derive from the mnemonic?</p>

<p>Or would they keep the account level xpriv, it seems like a waste to have both the mnemonic and the account level xpriv on the device.</p>

<p>Also, Is the extended private key, the (private key + chain code), or is it the (magic + depth + fingerprint + index + chain + key) ?</p>

<bip32-hd-wallets>
BIP32 Neutered function
Kyle Graham
# BIP32 Neutered function

(Asked by: username_0 on 2018-05-02)

Can the following be clarified, where I am wrong:

The Xpriv can derive a hardened xpriv.

It can also derive a non hardened xpriv, which we will use with the neutered function to make it an xpub.

The xpub derived, is the same xpub that we would get if we had done CKDpub on the original Xpub.

Xpirv and Xpub with the capital 'X' can be seen as parent keys.

So a diagram would look like:

Xpriv -> xprivH (hardened)

Xpriv -> xprivN -> xpubN (Normal: This is the path from the xpriv using Neuter)

Xpub -> xpubN (Normal: This is the same path from the Xpub using CKDpub)

My other question on top of this, is if a Wallet software has the mnemonic key, would it be better to always derive from the mnemonic?

Or would they keep the account level xpriv, it seems like a waste to have both the mnemonic and the account level xpriv on the device.

Also, Is the extended private key, the (private key + chain code), or is it the (magic + depth + fingerprint + index + chain + key) ?

**Tags:** bip32-hd-wallets


---

## 1 answers

### Answer by username_1 on 2018-05-03. Score: 3 | Accepted answer

> It can also derive a non hardened xpriv, which we will use with the neutered function to make it an xpub.
>
> The xpub derived, is the same xpub that we would get if we had done CKDpub on the original Xpub.

Yes. Neutering really means "Do CKDpub and delete the Xpriv". There is no neuter function on Xprivs; it's for the wallet software, not the key derivation.

> My other question on top of this, is if a Wallet software has the mnemonic key, would it be better to always derive from the mnemonic?

Deriving from the mnemonic requires additional computation, however requires less storage space. I don't think it really matter.

> Also, Is the extended private key, the (private key + chain code), or is it the (magic + depth + fingerprint + index + chain + key) ?

The second.

> **Comments:**
> **username_0**: Thank you, I think I understand bip32 and 44 now. Thanks for all of the corrections Andrew.  
> **username_2**: It is not accurate to state that "there is no neuter function on Xprivs". The function is defined in the spec as taking an extended private key for input: N((k, c)) → (K, c)  

---

