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 '20 at 15:41
  • I just want to get the Address Node Public Address by Account XPUB .. Jan 18 '20 at 15:58
  • i am writing my own application and somehow not able to get the right result and seek someone help Jan 18 '20 at 15:58

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 '20 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 '20 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 '20 at 15:05
  • Thanks for your time and feedback.. appreciate it Jan 19 '20 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 '20 at 15:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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