<blockquote>
  <p>Is there any standard notation for the xpub calculated from a hardened child private key?</p>
</blockquote>

<p>I have chosen to use the below notation. Others may use it if they find it useful.</p>

<pre><code>[m/44'/0'/0']
</code></pre>

<p>Is the public key derived from the hardened child private key. </p>

<pre><code>[m/44'/0'/0']/0/0
</code></pre>

<p>Is a child public key derived from the master private key m. However, <code>[m/44'/0'/0']</code> may be stored as a separate public key, essentially as a checkpoint in the HD tree.</p>

<p>This notation has some useful characteristics:</p>

<ul>
<li>Easy to parse. </li>
<li>Shows exactly where the private->public derivation was done. So, while <code>[m/44'/0'/0']/0/0</code> and <code>[m/44'/0'/0'/0]/0</code> my produce the same <code>xpub</code>, the calculations done to derive that xpub were quite different.</li>
<li>Inside of brackets, hardened notation may be used, but outside of brackets only non-hardened notation is permitted.</li>
</ul>

CC BY-SA 3.0
2015-06-29T15:51:51.840Z
2015-06-29T15:51:51.840Z
morsecoder
<p>Typical path notation for a BIP44 child private key would be something like:</p>

<pre><code>m/44'/0'/0'
</code></pre>

<p>The public key is</p>

<pre><code>point(m/44'/0'/0')
</code></pre>

<p>Where point is the ECC multiply function. Is there any better notation than this? It would not be right to use <code>M/44'/0'/0'</code> as this path is not derivable. </p>

<p>Is there any standard notation for the <code>xpub</code> calculated from a hardened child private key?</p>

<p>(Note: I'm looking for notation that would be useful to parse and then re-derive this key, not necessarily the type of notation that would be intuitive in an academic paper.)</p>

CC BY-SA 3.0
2015-06-25T15:37:56.987Z
This seems like more of a discussion topic than a question... wouldn't any answers be primarily opinion-based? That's my initial reaction anyways (but I'll comment further in a moment)....
Christopher Gurnee
CC BY-SA 3.0
2015-06-25T15:42:47.740Z
I've always seen BIP-32 paths as being an input you pass to a derivation function, sort of like "SHA-256" is passed to HMAC to specify which PRF to use. IOW, `derive_privkey("m/44'/0'/0'", k)`. Are you saying that "m/44'/0'/0'" is commonly used to express "the privkey derived from privkey m with path 44'/0'/0'"? I didn't think that notation was common; I could be wrong. So "M/44'/0'/0'" is "the privkey derived from pubkey M with path 44'/0'/0'" (impossible, as you said)? One more comment to follow....
Christopher Gurnee
CC BY-SA 3.0
2015-06-25T15:46:30.987Z
Again, this is just my limited experience, but I haven't commonly seen the notation `point(k)` being used to describe "the pubkey derived from privkey k" outside of its use in BIP-32. I've more commonly simply seen `k × G` (or `k · G` or just `kG`). Is `point(k)` more common than I think?
Christopher Gurnee
CC BY-SA 3.0
2015-06-25T16:10:32.807Z
Re. my second (of four) comment above, you're right BIP-32 does use notation similar to what you use, which is itself a bit different than what BIP-44 uses. I agree it's not satisfactory....
Christopher Gurnee
CC BY-SA 3.0
2015-06-25T16:13:37.850Z
@ChristopherGurnee, It may be more of a discussion question than I first realized. Path/point notation may be common/not common, I'm not too sure. I know the bitcoin developer documentation uses `point` as well.
morsecoder
CC BY-SA 3.0
2015-06-26T04:39:05.913Z
@StephenM347 I removed my answer as I misunderstood the question.
Wizard Of Ozzie
<bip32-hd-wallets>
Path notation for extended public key of hardened child?
morsecoder
# Path notation for extended public key of hardened child?

(Asked by: username_0 on 2015-06-25)

Typical path notation for a BIP44 child private key would be something like:

```
m/44'/0'/0'

```

The public key is

```
point(m/44'/0'/0')

```

Where point is the ECC multiply function. Is there any better notation than this? It would not be right to use `M/44'/0'/0'` as this path is not derivable.

Is there any standard notation for the `xpub` calculated from a hardened child private key?

(Note: I'm looking for notation that would be useful to parse and then re-derive this key, not necessarily the type of notation that would be intuitive in an academic paper.)

**Tags:** bip32-hd-wallets

> **Comments:**
> **username_1**: This seems like more of a discussion topic than a question... wouldn't any answers be primarily opinion-based? That's my initial reaction anyways (but I'll comment further in a moment)....  
> **username_1**: I've always seen BIP-32 paths as being an input you pass to a derivation function, sort of like "SHA-256" is passed to HMAC to specify which PRF to use. IOW, `derive_privkey("m/44'/0'/0'", k)`. Are you saying that "m/44'/0'/0'" is commonly used to express "the privkey derived from privkey m with path 44'/0'/0'"? I didn't think that notation was common; I could be wrong. So "M/44'/0'/0'" is "the privkey derived from pubkey M with path 44'/0'/0'" (impossible, as you said)? One more comment to follow....  
> **username_1**: Again, this is just my limited experience, but I haven't commonly seen the notation `point(k)` being used to describe "the pubkey derived from privkey k" outside of its use in BIP-32. I've more commonly simply seen `k × G` (or `k · G` or just `kG`). Is `point(k)` more common than I think?  
> **username_1**: Re. my second (of four) comment above, you're right BIP-32 does use notation similar to what you use, which is itself a bit different than what BIP-44 uses. I agree it's not satisfactory....  
> **username_0**: @username_1, It may be more of a discussion question than I first realized. Path/point notation may be common/not common, I'm not too sure. I know the bitcoin developer documentation uses `point` as well.  
> **username_2**: @StephenM347 I removed my answer as I misunderstood the question.  

---

## 1 answers

### Answer by username_0 on 2015-06-29. Score: 2 | Accepted answer

> Is there any standard notation for the xpub calculated from a hardened child private key?

I have chosen to use the below notation. Others may use it if they find it useful.

```
[m/44'/0'/0']

```

Is the public key derived from the hardened child private key.

```
[m/44'/0'/0']/0/0

```

Is a child public key derived from the master private key m. However, `[m/44'/0'/0']` may be stored as a separate public key, essentially as a checkpoint in the HD tree.

This notation has some useful characteristics:

* Easy to parse.
* Shows exactly where the private->public derivation was done. So, while `[m/44'/0'/0']/0/0` and `[m/44'/0'/0'/0]/0` my produce the same `xpub`, the calculations done to derive that xpub were quite different.
* Inside of brackets, hardened notation may be used, but outside of brackets only non-hardened notation is permitted.


---

