Generate Your Own Bitcoin Wallet within 5 Minutes

P2PKH address generation using Node.js.

Photo by André François McKenzie on Unsplash

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:

#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.

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.

You can find the full code as a gist here.

Until next time!