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.
$ 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.
// Common-JS
const xecaddr = require('xecaddrjs');
// ES6 modules
import xecaddr from 'xecaddrjs';
You may include a script tag in your HTML and the xecaddr
module will be defined globally on subsequent scripts.
<html>
<head>
...
<script src="https://unpkg.com/xecaddrjs@0.0.1/dist/xecaddrjs-0.0.1.min.js"></script>
</head>
...
</html>
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.
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.
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
var isMainnetAddress = xecaddr.isMainnetAddress;
var isTestnetAddress = xecaddr.isTestnetAddress;
isMainnetAddress('1P238gziZdeS5Wj9nqLhQHSBK2Lz6zPSke') // true
isMainnetAddress('mnbGP2FeRsbgdQCzDT35zPWDcYSKm4wrcg') // false
isTestnetAddress('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // true
isTestnetAddress('CeUvhjLnSgcxyedaUafcyo4Cw9ZPwGq9JJ') // false
var isP2PKHAddress = xecaddr.isP2PKHAddress;
var isP2SHAddress = xecaddr.isP2SHAddress;
isP2PKHAddress('1Mdob5JY1yuwoj6y76Vf3AQpoqUH5Aft8z') // true
isP2PKHAddress('2NFGG7yRBizUANU48b4dASrnNftqsNwzSM1') // false
isP2SHAddress('H92i9XpREZiBscxGu6Vx3M8jNGBKqscBBB') // true
isP2SHAddress('CeUvhjLnSgcxyedaUafcyo4Cw9ZPwGq9JJ') // false
var detectAddressFormat = xecaddr.detectAddressFormat;
detectAddressFormat('ecash:qph5kuz78czq00e3t85ugpgd7xmer5kr7cdywekmgp') // Format.Xecaddr
detectAddressFormat('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // Format.Cashaddr
detectAddressFormat('CScMwvXjdooDnGevHgfHjGWFi9cjk75Aaj') // Format.Bitpay
var detectAddressNetwork = xecaddr.detectAddressNetwork;
detectAddressNetwork('1P238gziZdeS5Wj9nqLhQHSBK2Lz6zPSke') // Network.Mainnet
detectAddressNetwork('qqdcsl6c879esyxyacmz7g6vtzwjjwtznsggspc457') // Network.Testnet
var detectAddressType = xecaddr.detectAddressType;
detectAddressType('1P238gziZdeS5Wj9nqLhQHSBK2Lz6zPSke') // Type.P2PKH
detectAddressType('3NKpWcnyZtEKttoQECAFTnmkxMkzgbT4WX') // Type.P2SH
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
$ yarn run docs