bitcoin-address-validation
Validate Bitcoin addresses - Bech32, P2PKH and P2SH! Available for ES6 and Node.js.
validate('bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4');
{
bech32: true,
network: 'mainnet',
address: 'bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4',
type: 'p2wpkh'
}
Installation
Add bitcoin-address-validation
to your Javascript project dependencies using Yarn:
yarn add bitcoin-address-validation
Or NPM:
npm install bitcoin-address-validation --save
Usage
Importing
Import using ES6:
import validate from 'bitcoin-address-validation';
Or AMD:
var validate = require('bitcoin-address-validation');
Validating addresses
Validation is done using the validate(address)
function.
validate('17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem')
{
address: '17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem',
type: 'p2pkh',
network: 'mainnet',
bech32: false
}
Bech32 Example
validate('bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4');
{
bech32: true,
network: 'mainnet',
address: 'bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4',
type: 'p2wpkh'
}
Invalid addresses
validate(address)
will return false
for any invalid address, regardless of the address type:
validate('bc1qw508d6qejxtdg4y5r3zrrvary0c5xw7kv8f3t4')
false
Networks
This library supports 3 different types of networks: mainnet
, testnet
and regtest
.
Note: When dealing with traditional (non-bech32) addresses, all regtest
addresses will be recognized as testnet
addresses.
Author
Rui Gomes
https://ruigomes.me
License
The MIT License (MIT). Please see LICENSE file for more information.