I am little bit confused or not able to get the right Address Node Public key from Account XPUB.

What I have done :

  1. Get the Account XPUB [78Bytes]

  2. SHA-256

  3. SHA-256 Again

  4. Created Extended XPUB (XPUB + 4 Start Byte of Step 3)

  5. Base 58 ENC

  6. hdnode_deserialize()

  7. Account Node 🡲 Change Node

  8. Change Node 🡲 Address Node.

But am not able to get the right Public Address.

Please let me know if I have done something wrong.

  • 1
    What you want to achieve (derivation protocol) is precisely described and detailed in BIP32 github.com/bitcoin/bips/blob/master/… ... Jan 18, 2020 at 15:41
  • I just want to get the Address Node Public Address by Account XPUB .. Jan 18, 2020 at 15:58
  • i am writing my own application and somehow not able to get the right result and seek someone help Jan 18, 2020 at 15:58

1 Answer 1


To go from account xpub to address, you must first derive an xpub at the External index (0) or Internal index (1), then derive another xpub from the External/Internal xpub. Take the public key from the resulting xpub and this is the public key used for the address.

For a detailed explanation of extended public keys and how to derive child public keys, take a look at the BIP32 documentation. For a not-as-in-depth breakdown of deriving addresses from an extended public key (which is exactly what you're trying to do), I have written this writeup.

  • can you explain it further more, see what steps i have followed to derive Address Node Public Key. is there anything wrong in my implementation or pseudo code ? Jan 19, 2020 at 5:05
  • @AmishSharma Your implementation/pseudocode is very wrong and not even close to what actually happens. Please read my answer, specifically the second link.
    – Septem151
    Jan 19, 2020 at 14:45
  • Sorry, but i i have done some mistake due to which i was not able to derive right address .. My Pseudocode is perfectly fine .. By mistake i called hdnode_private_ckd() instead of hdnode_public_ckd().. Jan 19, 2020 at 15:05
  • Thanks for your time and feedback.. appreciate it Jan 19, 2020 at 15:05
  • @AmishSharma Please be careful with whatever you are doing. Your pseudocode does not do what you are asking in your question.
    – Septem151
    Jan 19, 2020 at 15:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.