Nullifying Precipitation Machine

    bitcoin-address-validation
    TypeScript icon, indicating that this package has built-in type declarations

    2.2.1 • Public • Published

    bitcoin-address-validation

    Build Status npm version David npm Twitter Follow

    Validate Bitcoin addresses - P2WSH, P2WPKH, P2PKH, P2SH and P2TR.

    validate('bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4');
    ==> true
    
    getAddressInfo('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, getAddressInfo } from 'bitcoin-address-validation';

    Or AMD:

    const { validate, getAddressInfo } = require('bitcoin-address-validation');

    Validating addresses

    validate(address) returns true for valid Bitcoin addresses or false for invalid Bitcoin addresses.

    validate('17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem')
    ==> true
    
    validate('invalid')
    ==> false

    Network validation

    validate(address, network) allows you to validate whether an address is valid and belongs to network.

    validate('36bJ4iqZbNevh9b9kzaMEkXb28Gpqrv2bd', 'mainnet')
    ==> true
    
    validate('36bJ4iqZbNevh9b9kzaMEkXb28Gpqrv2bd', 'testnet')
    ==> false
    
    validate('2N4RsPe5F2fKssy2HBf2fH2d7sHdaUjKk1c', 'testnet')
    ==> true

    Address information

    getAddressInfo(address) parses the input address and returns information about its type and network.

    If the input address is invalid, an exception will be thrown.

    getAddressInfo('17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem')
    ==> {
      address: '17VZNX1SN5NtKa8UQFxwQbFeFc3iqRYhem',
      type: 'p2pkh',
      network: 'mainnet',
      bech32: false
    }

    Networks

    This library supports the following Bitcoin networks: mainnet, testnet and regtest.

    Note: When dealing with non-bech32 addresses, all regtest addresses will be recognized as testnet addresses.

    TypeScript support

    If you're using TypeScript, the following types are provided with this library:

    enum Network {
      mainnet = "mainnet",
      testnet = "testnet",
      regtest = "regtest",
    }
    
    enum AddressType {
      p2pkh = 'p2pkh',
      p2sh = 'p2sh',
      p2wpkh = 'p2wpkh',
      p2wsh = 'p2wsh',
      p2tr = 'p2tr',
    }
    
    type AddressInfo = {
      bech32: boolean;
      network: Network;
      address: string;
      type: AddressType;
    }

    TypeScript usage

    import { validate, getAddressInfo, Network, AddressInfo } from 'bitcoin-address-validation';
    
    validate('36nGbqV7XCNf2xepCLAtRBaqzTcSjF4sv9', Network.mainnet);
    ==> true
    
    const addressInfo: AddressInfo = getAddressInfo('2Mz8rxD6FgfbhpWf9Mde9gy6w8ZKE8cnesp');
    addressInfo.network;
    
    ==> 'testnet'

    Author

    Rui Gomes
    https://ruigomes.me

    License

    The MIT License (MIT). Please see LICENSE file for more information.

    Install

    npm i bitcoin-address-validation

    DownloadsWeekly Downloads

    15,219

    Version

    2.2.1

    License

    MIT

    Unpacked Size

    36.2 kB

    Total Files

    7

    Last publish

    Collaborators

    • ruigomes