Nosferatu's Pace Maker


    0.0.1 • Public • Published

    XecAddr.js: eCash (XEC) general purpose address translation for Node.js and web browsers.

    JavaScript Style Guide


    JavaScript Style Guide

    Plug & Play JavaScript library for all eCash (XEC) address format translation needs. Easy-to-use, thoroughly tested, and feature complete.

    Support for the eCash (XEC) address format, based on the original cashaddress format, which improves upon BIP 173, as well as the Bitpay and Legacy formats.


    Using NPM or Yarn

    $ npm install xecaddrjs
    $ yarn add xecaddrjs


    You may also download the distribution file manually and place it within your third-party scripts directory: dist/xecaddrjs-0.0.1.min.js.


    In Node.js

    // Common-JS
    const xecaddr = require('xecaddrjs');
    // ES6 modules
    import xecaddr from 'xecaddrjs';


    Script Tag

    You may include a script tag in your HTML and the xecaddr module will be defined globally on subsequent scripts.

        <script src=""></script>

    Code Examples

    Supported formats, networks and address types.

    var Format = xecaddr.Format; // Legacy, Bitpay, Xecaddr (XEC), or Cashaddr (BCH).
    var Network = xecaddr.Network; // Mainnet or Testnet.
    var Type = xecaddr.Type; // P2PKH or P2SH.

    Test if a string is a valid eCash (XEC) address of any type, in any format.

    var isValidAddress = xecaddr.isValidAddress;
    isValidAddress(null) // false
    isValidAddress('') // false
    isValidAddress('some invalid address') // false
    isValidAddress('bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq') // false
    isValidAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // true
    isValidAddress('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // true
    isValidAddress('qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk') // true
    isValidAddress('ecash:qph5kuz78czq00e3t85ugpgd7xmer5kr7cdywekmgp') // true
    isValidAddress('bitcoincash:qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk') // true

    Note: You can use this function to check if any input is a valid eCash (XEC) address.
    Other functions in this library will throw an InvalidAddressError on invalid inputs.

    Test for address format.

    var isLegacyAddress = xecaddr.isLegacyAddress;
    var isBitpayAddress = xecaddr.isBitpayAddress;
    var isXecAddress = xecaddr.isXecAddress;
    var isCashAddress = xecaddr.isCashAddress;
    isLegacyAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // true
    isLegacyAddress('qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk') // false
    isBitpayAddress('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // true
    isBitpayAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // false
    isXecAddress('qph5kuz78czq00e3t85ugpgd7xmer5kr7cdywekmgp') // true
    isXecAddress('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // false
    isCashAddress('qph5kuz78czq00e3t85ugpgd7xmer5kr7c5f6jdpwk') // true
    isCashAddress('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // false

    Test for address network.

    var isMainnetAddress = xecaddr.isMainnetAddress;
    var isTestnetAddress = xecaddr.isTestnetAddress;
    isMainnetAddress('1P238gziZdeS5Wj9nqLhQHSBK2Lz6zPSke') // true
    isMainnetAddress('mnbGP2FeRsbgdQCzDT35zPWDcYSKm4wrcg') // false
    isTestnetAddress('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // true
    isTestnetAddress('CeUvhjLnSgcxyedaUafcyo4Cw9ZPwGq9JJ') // false

    Test for address type.

    var isP2PKHAddress = xecaddr.isP2PKHAddress;
    var isP2SHAddress = xecaddr.isP2SHAddress;
    isP2PKHAddress('1Mdob5JY1yuwoj6y76Vf3AQpoqUH5Aft8z') // true
    isP2PKHAddress('2NFGG7yRBizUANU48b4dASrnNftqsNwzSM1') // false
    isP2SHAddress('H92i9XpREZiBscxGu6Vx3M8jNGBKqscBBB') // true
    isP2SHAddress('CeUvhjLnSgcxyedaUafcyo4Cw9ZPwGq9JJ') // false

    Detect address format.

    var detectAddressFormat = xecaddr.detectAddressFormat;
    detectAddressFormat('ecash:qph5kuz78czq00e3t85ugpgd7xmer5kr7cdywekmgp') // Format.Xecaddr
    detectAddressFormat('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // Format.Cashaddr
    detectAddressFormat('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // Format.Bitpay

    Detect address network.

    var detectAddressNetwork = xecaddr.detectAddressNetwork;
    detectAddressNetwork('1P238gziZdeS5Wj9nqLhQHSBK2Lz6zPSke') // Network.Mainnet
    detectAddressNetwork('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // Network.Testnet

    Detect address type.

    var detectAddressType = xecaddr.detectAddressType;
    detectAddressType('1P238gziZdeS5Wj9nqLhQHSBK2Lz6zPSke') // Type.P2PKH
    detectAddressType('3NKpWcnyZtEKttoQECAFTnmkxMkzgbT4WX') // Type.P2SH

    Translate address from any address format into a specific format.

    var toXecAddress = xecaddr.toXecAddress;
    var toLegacyAddress = xecaddr.toLegacyAddress;
    var toBitpayAddress = xecaddr.toBitpayAddress;
    var toCashAddress = xecaddr.toCashAddress;
    toLegacyAddress('ecash:qph5kuz78czq00e3t85ugpgd7xmer5kr7cdywekmgp') // 1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR
    toBitpayAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj
    toXecAddress('1B9UNtBfkkpgt8kVbwLN9ktE62QKnMbDzR') // ecash:qph5kuz78czq00e3t85ugpgd7xmer5kr7cdywekmgp


    Generate and Browse Locally

    $ yarn run docs


    npm i xecaddrjs

    DownloadsWeekly Downloads






    Unpacked Size

    1.59 MB

    Total Files


    Last publish


    • josephroyking