Bitcoin Hierarchical Deterministic wallet in Python

Bitcoin Hierarchical Deterministic wallet in Python

By NOWNodes | NOWNodes | 15 Jul 2020


Here we start a series of articles that entirely cover topics on how to start working with a blockchain network; from local creation of keys and addresses to transaction creation, signing, and broadcasting to the network. We take Bitcoin as the best example of the UTXO model, though then we’ll trace the same for Account-based blockchain networks.

In this article, we will create a bitcoin HD (Hierarchical Deterministic) wallet using Python language. To learn how HD wallet works, you can check this article.

Prerequisite

  • Python
  • Basic understanding of programming

Download and install python’s latest version from its official website.

We need to install a python library called bitcoinlib to create and manage bitcoin wallets. To install the library run following command.

pip install bitcoinlib

 

 

Bitcoin HD Wallet with Python

 

Using HD wallets, we can generate a complete suite of crypto wallets for different cryptocurrency networks using just one seed. However, in today’s article, we will only focus on Bitcoin and how to create a simple HD wallet.

So let’s create our first Bitcoin HD wallet.

from bitcoinlib.wallets import HDWallet

wallet = HDWallet.create('Wallet1')

key1 = wallet.new_key()

print(key1.address)

In the above script, we are performing the following steps:

  • Importing bitcoinlib library
  • create a new wallet
  • Generating a new HD Key.
  • Create a new address

To run the above program, save it in a file with .py extension. (Ex- hd_wallet1.py). Then run that file using the command below.

python hd_wallet1.py

 

Bitcoin HD Wallet with Mnemonics

 

Mnemonics are very popular because they are easy to remember. Let’s see how to create a Bitcoin wallet using mnemonics.

from bitcoinlib.wallets import HDWallet, wallet_delete

from bitcoinlib.mnemonic import Mnemonic

passphrase = Mnemonic().generate()

print(passphrase)

wallet = HDWallet.create("mWallet1", keys=passphrase, network='bitcoin')

key1 = wallet.new_key()

print(key1.address)

 

In the above script, we are performing the following steps.

  • Importing relevant classes from bitcoinlib
  • Generating a random mnemonic, you can pass your own
  • Creating a new wallet named mWallet1
  • Generating keys
  • Getting bitcoin public address

To run this program, save it in a file with .py extension. (Ex- hd_wallet2.py). Then run that file using the command below.

python hd_wallet2.py

 

To learn more about the bitcoinlib library check out the official documentation.

In the next article, we will talk about the Bitcoin Multi-sig wallet and how to create one.

Note: Never post your keys or mnemonic publically.

How do you rate this article?

6


NOWNodes
NOWNodes

Leading node infra provider. Access 99+ blockchain networks via Node and Blockbook APIs. Create websocket connections and develop with zero rate limits.


NOWNodes
NOWNodes

Full RPC Nodes & Block Explorers. 99+ most popular blockchain networks supported. We provide educational content on blockchain development for beginners and experienced community members. 👉 nownodes.io 👈 Besides, we do provide free API for up to 100,000 requests. Drop us a line to get yours.

Publish0x

Send a $0.01 microtip in crypto to the author, and earn yourself as you read!

20% to author / 80% to me.
We pay the tips from our rewards pool.