user140064: 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.

user140066: 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/aulneau/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

140064: <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>
 140066: <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>
