I am trying to create HD wallet for bitcoin.

I have developed an Ethereum wallet, but I am having a hard time making a Bitcoin wallet.

In my case, I am developing a server using Golang and Typescript.

Is there a best practice to make a bitcoin wallet using Typescript or Golang?

I'd appreciate it if you could let me know.

1 Answer 1


Paul Miller has created a number of modern typescript libraries to help with this:

I've also created a small gist to help you get started:


High level overview:

  • we generate a mnemonic from scure-bip39
  • convert the mnemonic to a master seed (via same lib)
  • use scure-bip32 to create the hd node
  • define our paths (in this case, bip84)
  • generate nodes with the receive and change paths
  • derive children nodes
  • get the witness pubkey hash address for each node

Hope this helps!! let me know if you have any questions

  • Hi aulneau, while these links seem useful, this answer could get into the main question of the asker a bit more.
    – Murch
    Feb 9 at 17:54
  • Thanks @Murch, updated my answer with an example implementation :)
    – aulneau
    Feb 9 at 18:21
  • 1
    Excellent work! Welcome to Bitcoin Stack Exchange.
    – Murch
    Feb 9 at 19:52
  • Thank you for the perfect answer! It helps a lot!
    – Primrose
    Feb 10 at 16:07

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.