trezor-address-validator
Simple wallet address validator for validating Bitcoin and other altcoins addresses in Node.js and browser.
Forked from ryanralph/altcoin-address.
File size is ~65 kB (minifed and gzipped).
Installation
NPM
npm install trezor-address-validator
Browser
<script src="wallet-address-validator.min.js"></script>
API
validate (address [, currency = 'bitcoin'[, networkType = 'prod']])
Parameters
- address - Wallet address to validate.
- currency - Optional. Currency name or symbol, e.g.
'bitcoin'
(default),'litecoin'
or'LTC'
- networkType - Optional. Use
'prod'
(default) to enforce standard address,'testnet'
to enforce testnet address and'both'
to enforce nothing.
Returns true if the address (string) is a valid wallet address for the crypto currency specified, see below for supported currencies.
Supported crypto currencies
- 0x/zrx
'0x'
or'zrx'
- Aave/lend
'Aave'
or'lend'
- Abyss Token/abyss
'Abyss Token'
or'abyss'
- AdEx/adx
'AdEx'
or'adx'
- adToken/adt
'adToken'
or'adt'
- aelf/elf
'aelf'
or'elf'
- Aeron/arn
'Aeron'
or'arn'
- Aeternity/ae
'Aeternity'
or'ae'
- Agrello/dlt
'Agrello'
or'dlt'
- All Sports/soc
'All Sports'
or'soc'
- Ambrosus/amb
'Ambrosus'
or'amb'
- Ankr/ankr
'Ankr'
or'ankr'
- AppCoins/appc
'AppCoins'
or'appc'
- Aragon/ant
'Aragon'
or'ant'
- Arcblock/abt
'Arcblock'
or'abt'
- Ardor/ardr
'Ardor'
or'ardr'
- ATLANT/atl
'ATLANT'
or'atl'
- Augur/rep
'Augur'
or'rep'
- AuroraCoin/aur
'AuroraCoin'
or'aur'
- aXpire/axpr
'aXpire'
or'axpr'
- Bancor/bnt
'Bancor'
or'bnt'
- Band Protocol/band
'Band Protocol'
or'band'
- Bankex/bkx
'Bankex'
or'bkx'
- Basic Attention Token/bat
'Basic Attention Token'
or'bat'
- BeaverCoin/bvc
'BeaverCoin'
or'bvc'
- BetterBetting/betr
'BetterBetting'
or'betr'
- Binance/bnb
'Binance'
or'bnb'
- Binance USD/busd
'Binance USD'
or'busd'
- BioCoin/bio
'BioCoin'
or'bio'
- Bitcoin/btc
'Bitcoin'
or'btc'
- Bitcoin Diamond/bcd
'Bitcoin Diamond'
or'bcd'
- Bitcoin SV/bsv
'Bitcoin SV'
or'bsv'
- BitcoinCash/bch
'BitcoinCash'
or'bch'
- BitcoinGold/btg
'BitcoinGold'
or'btg'
- BitcoinPrivate/btcp
'BitcoinPrivate'
or'btcp'
- BitcoinZ/btcz
'BitcoinZ'
or'btcz'
- BitDegree/bdg
'BitDegree'
or'bdg'
- BitKan/kan
'BitKan'
or'kan'
- BlitzPredict/xbp
'BlitzPredict'
or'xbp'
- Blockmason Credit Protocol/bcpt
'Blockmason Credit Protocol'
or'bcpt'
- Blocktrade Token/btt
'Blocktrade Token'
or'btt'
- BLOCKv/vee
'BLOCKv'
or'vee'
- Blox/cdt
'Blox'
or'cdt'
- Bluzelle/blz
'Bluzelle'
or'blz'
- Bread/brd
'Bread'
or'brd'
- BTU Protocol/btu
'BTU Protocol'
or'btu'
- Callisto/clo
'Callisto'
or'clo'
- Cardano/ada
'Cardano'
or'ada'
- Celer Network/celr
'Celer Network'
or'celr'
- Chainlink/link
'Chainlink'
or'link'
- Chiliz/chz
'Chiliz'
or'chz'
- Chronobank/time
'Chronobank'
or'time'
- Cindicator/cnd
'Cindicator'
or'cnd'
- Civic/cvc
'Civic'
or'cvc'
- Cocos-BCX/cocos
'Cocos-BCX'
or'cocos'
- Coinlancer/cl
'Coinlancer'
or'cl'
- COS/cos
'COS'
or'cos'
- Cosmo Coin/cosm
'Cosmo Coin'
or'cosm'
- Cosmos/atom
'Cosmos'
or'atom'
- Covesting/cov
'Covesting'
or'cov'
- Cred/lba
'Cred'
or'lba'
- Crypterium/crpt
'Crypterium'
or'crpt'
- Crypto.com Coin/cro
'Crypto.com Coin'
or'cro'
- CryptoBossCoin/cbc
'CryptoBossCoin'
or'cbc'
- CryptoFranc/xchf
'CryptoFranc'
or'xchf'
- Daneel/dan
'Daneel'
or'dan'
- Dash/dash
'Dash'
or'dash'
- Decentraland/mana
'Decentraland'
or'mana'
- Decred/dcr
'Decred'
or'dcr'
- Dent/dent
'Dent'
or'dent'
- Dentacoin/dcn
'Dentacoin'
or'dcn'
- DigiByte/dgb
'DigiByte'
or'dgb'
- Digitex Futures/dgtx
'Digitex Futures'
or'dgtx'
- DigixDAO/dgd
'DigixDAO'
or'dgd'
- District0x/dnt
'District0x'
or'dnt'
- Dock/dock
'Dock'
or'dock'
- DogeCoin/doge
'DogeCoin'
or'doge'
- DomRaider/drt
'DomRaider'
or'drt'
- Dusk Network/dusk
'Dusk Network'
or'dusk'
- Edgeless/edg
'Edgeless'
or'edg'
- Eidoo/edo
'Eidoo'
or'edo'
- Electrify.Asia/elec
'Electrify.Asia'
or'elec'
- Enigma/eng
'Enigma'
or'eng'
- Enjin Coin/enj
'Enjin Coin'
or'enj'
- EOS/eos
'EOS'
or'eos'
- Ethereum/eth
'Ethereum'
or'eth'
- EthereumClassic/etc
'EthereumClassic'
or'etc'
- Etherparty/fuel
'Etherparty'
or'fuel'
- EtherZero/etz
'EtherZero'
or'etz'
- Everex/evx
'Everex'
or'evx'
- Exchange Union/xuc
'Exchange Union'
or'xuc'
- Expanse/exp
'Expanse'
or'exp'
- Fantom/ftm
'Fantom'
or'ftm'
- Fetch.ai/fet
'Fetch.ai'
or'fet'
- FirmaChain/fct
'FirmaChain'
or'fct'
- FirstBlood/1st
'FirstBlood'
or'1st'
- Fortuna/fota
'Fortuna'
or'fota'
- FreiCoin/frc
'FreiCoin'
or'frc'
- GameCredits/game
'GameCredits'
or'game'
- GarliCoin/grlc
'GarliCoin'
or'grlc'
- Gemini Dollar/gusd
'Gemini Dollar'
or'gusd'
- Genesis Vision/gvt
'Genesis Vision'
or'gvt'
- Gifto/gto
'Gifto'
or'gto'
- Gnosis/gno
'Gnosis'
or'gno'
- Golem/gnt
'Golem'
or'gnt'
- Groestlcoin/grs
'Groestlcoin'
or'grs'
- Hedera Hashgraph/hbar
'Hedera Hashgraph'
or'hbar'
- HedgeTrade/hedg
'HedgeTrade'
or'hedg'
- Holo/hot
'Holo'
or'hot'
- HOQU/hqx
'HOQU'
or'hqx'
- Humaniq/hmq
'Humaniq'
or'hmq'
- Huobi Token/ht
'Huobi Token'
or'ht'
- Hush/hush
'Hush'
or'hush'
- HyperSpace/xsc
'HyperSpace'
or'xsc'
- ICON/icx
'ICON'
or'icx'
- iExec RLC/rlc
'iExec RLC'
or'rlc'
- IHT Real Estate Protocol/iht
'IHT Real Estate Protocol'
or'iht'
- Insolar/ins
'Insolar'
or'ins'
- Internet of Services/IOST
'Internet of Services'
or'IOST'
- Iota/iota
'Iota'
or'iota'
- IoTeX/iotx
'IoTeX'
or'iotx'
- Kcash/kcash
'Kcash'
or'kcash'
- KEY/key
'KEY'
or'key'
- KickToken/kick
'KickToken'
or'kick'
- Komodo/kmd
'Komodo'
or'kmd'
- Kyber Network/knc
'Kyber Network'
or'knc'
- Lambda/lamb
'Lambda'
or'lamb'
- Lamden/tau
'Lamden'
or'tau'
- LBRY Credits/lbc
'LBRY Credits'
or'lbc'
- LIFE/life
'LIFE'
or'life'
- LinkEye/let
'LinkEye'
or'let'
- Lisk/lsk
'Lisk'
or'lsk'
- LiteCoin/ltc
'LiteCoin'
or'ltc'
- LockTrip/loc
'LockTrip'
or'loc'
- Loki/loki
'Loki'
or'loki'
- Loom Network/loom
'Loom Network'
or'loom'
- Loopring/lrc
'Loopring'
or'lrc'
- Luniverse/luniverse
'Luniverse'
or'luniverse'
- Lunyr/lun
'Lunyr'
or'lun'
- Mainframe/mft
'Mainframe'
or'mft'
- Maker/mkr
'Maker'
or'mkr'
- Matchpool/gup
'Matchpool'
or'gup'
- Matic Network/matic
'Matic Network'
or'matic'
- MCO/mco
'MCO'
or'mco'
- Measurable Data Token/mdt
'Measurable Data Token'
or'mdt'
- MegaCoin/mec
'MegaCoin'
or'mec'
- Melon/mln
'Melon'
or'mln'
- Menlo One/one
'Menlo One'
or'one'
- Metal/mtl
'Metal'
or'mtl'
- Mithril/mith
'Mithril'
or'mith'
- Moeda Loyalty Points/mda
'Moeda Loyalty Points'
or'mda'
- Molecular Future/mof
'Molecular Future'
or'mof'
- MonaCoin/mona
'MonaCoin'
or'mona'
- Monero/xmr
'Monero'
or'xmr'
- Monetha/mth
'Monetha'
or'mth'
- Monolith/tkn
'Monolith'
or'tkn'
- Multi-collateral DAI/dai
'Multi-collateral DAI'
or'dai'
- Mysterium/myst
'Mysterium'
or'myst'
- NAGA/ngc
'NAGA'
or'ngc'
- NameCoin/nmc
'NameCoin'
or'nmc'
- Nano/nano
'Nano'
or'nano'
- Nem/xem
'Nem'
or'xem'
- Neo/neo
'Neo'
or'neo'
- NeoGas/gas
'NeoGas'
or'gas'
- NetKoin/ntk
'NetKoin'
or'ntk'
- Nexo/nexo
'Nexo'
or'nexo'
- Noah Coin/noah
'Noah Coin'
or'noah'
- Nucleus Vision/ncash
'Nucleus Vision'
or'ncash'
- Numeraire/nmr
'Numeraire'
or'nmr'
- NXT/nxt
'NXT'
or'nxt'
- OAX/oax
'OAX'
or'oax'
- Ocean Protocol/ocean
'Ocean Protocol'
or'ocean'
- Odyssey/ocn
'Odyssey'
or'ocn'
- OmiseGO/omg
'OmiseGO'
or'omg'
- Ontology/ont
'Ontology'
or'ont'
- ORS Group/ors
'ORS Group'
or'ors'
- OST/ost
'OST'
or'ost'
- Own/chx
'Own'
or'chx'
- Patientory/ptoy
'Patientory'
or'ptoy'
- Patron/pat
'Patron'
or'pat'
- Paxos Standard/pax
'Paxos Standard'
or'pax'
- Peculium/pcl
'Peculium'
or'pcl'
- PeerCoin/ppc
'PeerCoin'
or'ppc'
- Perlin/perl
'Perlin'
or'perl'
- Pillar/plr
'Pillar'
or'plr'
- PIVX/pivx
'PIVX'
or'pivx'
- Po.et/poe
'Po.et'
or'poe'
- Polymath/poly
'Polymath'
or'poly'
- Populous/ppt
'Populous'
or'ppt'
- Power Ledger/powr
'Power Ledger'
or'powr'
- Presearch/pre
'Presearch'
or'pre'
- PrimeCoin/xpm
'PrimeCoin'
or'xpm'
- ProtoShares/pts
'ProtoShares'
or'pts'
- PumaPay/pma
'PumaPay'
or'pma'
- Pundi X/npxs
'Pundi X'
or'npxs'
- Qtum/qtum
'Qtum'
or'qtum'
- Quant/qnt
'Quant'
or'qnt'
- Quantstamp/qsp
'Quantstamp'
or'qsp'
- QuarkChain/qkc
'QuarkChain'
or'qkc'
- RaiBlocks/xrb
'RaiBlocks'
or'xrb'
- Raiden Network Token/rdn
'Raiden Network Token'
or'rdn'
- Ravencoin/rvn
'Ravencoin'
or'rvn'
- Refereum/rfr
'Refereum'
or'rfr'
- Ren/ren
'Ren'
or'ren'
- Request/req
'Request'
or'req'
- Revain/r
'Revain'
or'r'
- Ripio Credit Network/rcn
'Ripio Credit Network'
or'rcn'
- Ripple/xrp
'Ripple'
or'xrp'
- Salt/salt
'Salt'
or'salt'
- Scopuly/sky
'Scopuly'
or'sky'
- Sentinel/sent
'Sentinel'
or'sent'
- SiaCashCoin/scc
'SiaCashCoin'
or'scc'
- Siacoin/sc
'Siacoin'
or'sc'
- SingularDTV/sngls
'SingularDTV'
or'sngls'
- SingularityNET/agi
'SingularityNET'
or'agi'
- SIRIN LABS Token/srn
'SIRIN LABS Token'
or'srn'
- SkinCoin/skin
'SkinCoin'
or'skin'
- SnowGem/sng
'SnowGem'
or'sng'
- SolarCoin/slr
'SolarCoin'
or'slr'
- SOLVE/solve
'SOLVE'
or'solve'
- SoMee.Social/ong
'SoMee.Social'
or'ong'
- SONM/snm
'SONM'
or'snm'
- Spendcoin/spnd
'Spendcoin'
or'spnd'
- STASIS EURO/eurs
'STASIS EURO'
or'eurs'
- Status/snt
'Status'
or'snt'
- STEEM/steem
'STEEM'
or'steem'
- Stellar/xlm
'Stellar'
or'xlm'
- Storj/storj
'Storj'
or'storj'
- Storm/storm
'Storm'
or'storm'
- Stox/stx
'Stox'
or'stx'
- Stratis/strat
'Stratis'
or'strat'
- Streamr DATAcoin/data
'Streamr DATAcoin'
or'data'
- Substratum/sub
'Substratum'
or'sub'
- SunContract/snc
'SunContract'
or'snc'
- Swarm City/swt
'Swarm City'
or'swt'
- SwftCoin/swftc
'SwftCoin'
or'swftc'
- Synthetix Network/snx
'Synthetix Network'
or'snx'
- Syscoin/sys
'Syscoin'
or'sys'
- Tael/wabi
'Tael'
or'wabi'
- Telcoin/tel
'Telcoin'
or'tel'
- TEMCO/temco
'TEMCO'
or'temco'
- TenX/pay
'TenX'
or'pay'
- Tether/usdt
'Tether'
or'usdt'
- Tezos/xtz
'Tezos'
or'xtz'
- Tierion/tnt
'Tierion'
or'tnt'
- Time New Bank/tnb
'Time New Bank'
or'tnb'
- Tripio/trio
'Tripio'
or'trio'
- Tron/trx
'Tron'
or'trx'
- TrueUSD/tusd
'TrueUSD'
or'tusd'
- USD Coin/usdc
'USD Coin'
or'usdc'
- USDT ERC-20/usdt20
'USDT ERC-20'
or'usdt20'
- Utrust/utk
'Utrust'
or'utk'
- VeChain/ven
'VeChain'
or'ven'
- VeChain Mainnet/vet
'VeChain Mainnet'
or'vet'
- Verge/xvg
'Verge'
or'xvg'
- VertCoin/vtc
'VertCoin'
or'vtc'
- VIBE/vibe
'VIBE'
or'vibe'
- Viberate/vib
'Viberate'
or'vib'
- VoteCoin/vot
'VoteCoin'
or'vot'
- Waltonchain/wtc
'Waltonchain'
or'wtc'
- Waves/waves
'Waves'
or'waves'
- WePower/wpr
'WePower'
or'wpr'
- WeTrust/trst
'WeTrust'
or'trst'
- Wings/wings
'Wings'
or'wings'
- YOU COIN/you
'YOU COIN'
or'you'
- Zap/zap
'Zap'
or'zap'
- ZCash/zec
'ZCash'
or'zec'
- ZClassic/zcl
'ZClassic'
or'zcl'
- ZenCash/zen
'ZenCash'
or'zen'
- Zilliqa/zil
'Zilliqa'
or'zil'
Usage example
Node
var WAValidator = require('trezor-address-validator');
var valid = WAValidator.validate('1KFzzGtDdnq5hrwxXGjwVnKzRbvf8WVxck', 'BTC');
if(valid)
console.log('This is a valid address');
else
console.log('Address INVALID');
// This will log 'This is a valid address' to the console.
var WAValidator = require('trezor-address-validator');
var valid = WAValidator.validate('1KFzzGtDdnq5hrwxXGjwVnKzRbvf8WVxck', 'litecoin', 'testnet');
if(valid)
console.log('This is a valid address');
else
console.log('Address INVALID');
// As this is a invalid litecoin address 'Address INVALID' will be logged to console.
var WAValidator = require('trezor-address-validator');
var currency = WAValidator.findCurrency('xrp');
if(currency)
console.log('This currency exists');
else
console.log('Currency INVALID');
// As this is a valid currency symbol 'This currency exists' will be logged to console.
var WAValidator = require('trezor-address-validator');
var currency = WAValidator.findCurrency('random');
if(currency)
console.log('This currency exists');
else
console.log('Currency INVALID');
// As this is not a valid currency symbol 'Currency INVALID' will be logged to console.
Browser
<script src="wallet-address-validator.min.js"></script>
// WAValidator is exposed as a global (window.WAValidator)
var valid = WAValidator.validate('1KFzzGtDdnq5hrwxXGjwVnKzRbvf8WVxck', 'bitcoin');
if(valid)
alert('This is a valid address');
else
alert('Address INVALID');
// This should show a pop up with text 'This is a valid address'.