<p>Paul Miller has created a number of modern typescript libraries to help with this:</p>
<ul>
<li><a href="https://github.com/paulmillr/scure-bip39" rel="nofollow noreferrer">https://github.com/paulmillr/scure-bip39</a></li>
<li><a href="https://github.com/paulmillr/scure-bip32" rel="nofollow noreferrer">https://github.com/paulmillr/scure-bip32</a></li>
<li><a href="https://github.com/paulmillr/micro-btc-signer" rel="nofollow noreferrer">https://github.com/paulmillr/micro-btc-signer</a></li>
</ul>
<p>I've also created a small gist to help you get started:</p>
<p><a href="https://gist.github.com/aulneau/2f5aad7030e046fb6b557a3871231d72" rel="nofollow noreferrer">https://gist.github.com/aulneau/2f5aad7030e046fb6b557a3871231d72</a></p>
<p>High level overview:</p>
<ul>
<li>we generate a mnemonic from <code>scure-bip39</code></li>
<li>convert the mnemonic to a master seed (via same lib)</li>
<li>use <code>scure-bip32</code> to create the hd node</li>
<li>define our paths (in this case, bip84)</li>
<li>generate nodes with the receive and change paths</li>
<li>derive children nodes</li>
<li>get the witness pubkey hash address for each node</li>
</ul>
<p>Hope this helps!! let me know if you have any questions</p>

CC BY-SA 4.0
2023-02-09T17:54:49.880Z
Hi aulneau, while these links seem useful, this answer could get into the main question of the asker a bit more.
Murch
CC BY-SA 4.0
2023-02-09T18:21:13.323Z
Thanks @Murch, updated my answer with an example implementation :)
aulneau
CC BY-SA 4.0
2023-02-09T19:52:55.610Z
Excellent work! Welcome to Bitcoin Stack Exchange.
Murch
CC BY-SA 4.0
2023-02-10T16:07:25.020Z
Thank you for the perfect answer! It helps a lot!
Primrose
CC BY-SA 4.0
2023-02-09T17:10:25.163Z
2023-02-09T18:20:54.377Z
2023-02-09T18:20:54.377Z
aulneau
<p>I am trying to create HD wallet for bitcoin.</p>
<p>I have developed an Ethereum wallet, but I am having a hard time making a Bitcoin wallet.</p>
<p>In my case, I am developing a server using Golang and Typescript.</p>
<p>Is there a best practice to make a bitcoin wallet using Typescript or Golang?</p>
<p>I'd appreciate it if you could let me know.</p>

<wallet><bip32-hd-wallets><javascript>
How to make bitcoin hd wallet in typescript?
Primrose
# How to make bitcoin hd wallet in typescript?

(Asked by: username_0 on 2023-02-09)

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.

**Tags:** wallet, bip32-hd-wallets, javascript


---

## 1 answers

### Answer by username_1 on 2023-02-09. Score: 3 | Accepted answer

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

* <https://github.com/paulmillr/scure-bip39>
* <https://github.com/paulmillr/scure-bip32>
* <https://github.com/paulmillr/micro-btc-signer>

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

<https://gist.github.com/username_1/2f5aad7030e046fb6b557a3871231d72>

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

> **Comments:**
> **username_2**: Hi username_1, while these links seem useful, this answer could get into the main question of the asker a bit more.  
> **username_1**: Thanks @username_2, updated my answer with an example implementation :)  
> **username_2**: Excellent work! Welcome to Bitcoin Stack Exchange.  
> **username_0**: Thank you for the perfect answer! It helps a lot!  

---

