# Path notation for extended public key of hardened child?

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.)

• 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).... Commented Jun 25, 2015 at 15:37
• 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.... Commented Jun 25, 2015 at 15:42
• 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? Commented Jun 25, 2015 at 15:46
• 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.... Commented Jun 25, 2015 at 16:10
• @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. Commented Jun 25, 2015 at 16:13

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.