20
How to Create Bitcoin Blockchain Wallets using javascript?
The Bitcoin blockchain is one of the biggest and most impressive blockchains on the planet. It was planned principally to send Bitcoin, the cryptographic money. In this way, normally, to make a message in the Bitcoin blockchain, you should send some Bitcoins starting with one record then onto the next.
A Bitcoin wallet address is made out of 32 unique characters. It permits you to send and get Bitcoins. Your private key is a mysterious code related with your Bitcoin address that allows you to demonstrate your responsibility for Bitcoins connected with the location.
Let's start
What will be covered in this Blog
1.Generate Address Endpoint
2.Validate address
3.Address Balance Endpoint
First of all you will need API for which you can create developer account on platform like block.io or blockcypher.com , Here i am using blockcypher API. Here you can use TESTNET (Testing) and MAINNET (Deployment).
Different Bitcoin addresses:
1.P2PKH which begins with the number 1,
for e.g.: 1PkCrXg22onNePtQmiepDspLJUv7CtkACx
2.P2SH type starting with the number 3,
for e.g.: 3PZjS8D9bA15km6vfHskNnPvHDL73QH2MN
3.Bech32 type starting with bc1, for e.g.:
bc1qGh7s6BYhqV1R3N1qdK8P1KNJjbqmRBs
1. Generate Address Endpoint
API Endpoints
MAINNET
https://api.blockcypher.com/v1/btc/main/addrs
TESTNET
https://api.blockcypher.com/v1/btc/test3/addrs
Make HTTP request
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
var data = JSON.parse(xhr.responseText);
}};
xhr.send();
OUTPUT :
{
"private": "81ee75559d37cbe4b7cbbfb9931ab1ba32172c5cdfc3ac2d020259b4c1104198",
"public": "0231ff9ec76820cb36b69061f6ffb125db3793b4aced468a1261b0680e1ef4883a",
"address": "mvpW7fMSi1nbZhJJDySNS2PUau8ppnu4kY",
"wif": "cRwGhRjCuuNtPgLcoYd1CuAqjFXCV5YNCQ1LB8RsFCvu61VfSsgR"
}
See demo here , Check MAINNET and TESTNET address
2.Validate address
A valid Bitcoin address resembles a ledger number utilizing which you store your bitcoins and check your balances. If you got wrong address then you might lose your money. So before assiging any address make sure it is valid or not.
To validate address we will use a library named as wallet-address-validator
.
Installation
NPM
npm install wallet-address-validator
Browser
<script src="wallet-address-validator.min.js"></script>
You may get js from here
Call below function to check validation
var address = document.getElementById('addr').value;
var valid = WAValidator.validate(address, 'bitcoin');
if(valid)
alert('This is a valid address');
else
alert('Address INVALID');
*Note *: This validation will allow you to validate MAINNET
3. Address Balance Endpoint
API Endpoints
TESTNET
https://api.blockcypher.com/v1/btc/test3/addrs/{address}/balance
MAINNET
https://api.blockcypher.com/v1/btc/test3/addrs/{address}/balance
OUTPUT
{
"address": "mx52XPqpzygzadkk8n1rCZPrC7B4h4UcwT",
"total_received": 2404904,
"total_sent": 0,
"balance": 2404904,
"unconfirmed_balance": 0,
"final_balance": 2404904,
"n_tx": 4,
"unconfirmed_n_tx": 0,
"final_n_tx": 4
}
You can track down all the code in my GitHub Repository. Drop a star on the off chance that you think that its helpful.
We will continue transactions in next article.
Thank you & Take care!!
20