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
    Commented Feb 9, 2023 at 17:54
  • Thanks @Murch, updated my answer with an example implementation :)
    – aulneau
    Commented Feb 9, 2023 at 18:21
  • 1
    Excellent work! Welcome to Bitcoin Stack Exchange.
    – Murch
    Commented Feb 9, 2023 at 19:52
  • Thank you for the perfect answer! It helps a lot!
    – Primrose
    Commented Feb 10, 2023 at 16:07

Your Answer

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

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