Generate Your Own Bitcoin Wallet within 5 Minutes





P2PKH address generation using Node.js.

btc wallet

We are going to have a look at how to create your own Bitcoin wallets — Testnet and Mainnet, using a simple Node.js script. We can generate as many wallets (public/private key pairs) as you want instantly. We don’t need to use any third-party blockchain providers for this, as the wallet generation part is done offline.

In order to run the code given in this tutorial, we’ll need Node.js installed and configured on your PC which will not take even more than 5 minutes.

Without wasting much time on the introduction, let’s jump into the implementation part.

Currently there are three types of bitcoin address (P2PKH,P2SH Bech32) and we will be creating the most widely used address format — P2PKH

We can also create wallets from scratch without these libraries. But it involves more cryptographic algorithms to be implemented. So let's keep it simple.


#1. Create a new directory and navigate to it.

mkdir btc-wallet && cd btc-wallet

#2. Initialize a new NodeJS project with default config.

npm init --y

#3. Install the dependencies.

npm install bip39 bip32 bitcoinjs-lib --save

#4. Create a new file "createWallet.js” and add the following:

btc wallet code

You can find the full code as a gist here.

#5. Save the file and run the command.

node createWallet

Output 🎉

The output will be in this format (for testnet). Mainnet addresses start with 1.

btc wallet output

The Key will be printed in WIF format as we used the toWIF() method. We can also obtain the base58 format by using the toBase58() method.

Cool. We have generated a Bitcoin wallet. Just play around with this code and generate as many wallets as you need.