Address Cheat Sheet
Quick reference for recognizing which blockchain an address belongs to, with copy-ready regexes and an interactive tester.
Regexes match the format, not the checksum — a valid checksum still needs the chain’s own routine.
0x… format, so they’re covered by the Ethereum row.Test an address
Paste an address below — we’ll run every regex and show which chain(s) it matches. Nothing leaves your browser.
All formats
Bitcoin (Legacy P2PKH)
Base58Check^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Starts with "1" (P2PKH) or "3" (P2SH). 25–34 Base58 chars, no 0/O/I/l.
Bitcoin (Bech32 / native segwit)
Bech32^bc1[ac-hj-np-z02-9]{6,87}$bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq
Starts with "bc1". Lowercase only. Covers P2WPKH, P2WSH, and P2TR (Taproot).
Ethereum (and all EVM L2s)
Hex (EIP-55 checksummed)^0x[a-fA-F0-9]{40}$0x71C7656EC7ab88b098defB751B7401B5f6d8976F
0x + 40 hex. EIP-55 mixes letter casing as a checksum; this regex matches both checksummed and all-lowercase forms. Arbitrum, Optimism, Base, Polygon, BSC, Avalanche C-Chain, etc. all use this format.
Tron
Base58Check^T[1-9A-HJ-NP-Za-km-z]{33}$TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
Starts with "T", 34 Base58 chars total (no 0/O/I/l). Same Base58Check family as Bitcoin but a different version byte.
Solana
Base58 (Ed25519 pubkey)^[1-9A-HJ-NP-Za-km-z]{32,44}$7xKXtg2CW87d97TXJSDpbD5jBkheTqA83TZRuJosgAsU
Base58, 32–44 chars (most are 44). No 0/O/I/l. Encodes a 32-byte Ed25519 public key.
Cardano
Bech32 (payment + stake)^(addr1|stake1)[02-9ac-hj-np-z]{38,103}$addr1qx2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhr94d2cecyht5wqj6429j7
Starts with "addr1" (payment) or "stake1" (stake). Bech32, lowercase, up to 108 chars.
Polkadot
SS58 (Base58Check variant)^[1-9A-HJ-NP-Za-km-z]{8,48}$1xs4mgNQ5JHrZ6e1sY5fXZ2qQ9w2v9rZ6e1sY5fXZ2qQ9w2
SS58 address, Base58, 8–48 chars. Polkadot mainnet starts with "1"; Kusama with letters. Format overlaps with generic Base58 — confirm by network prefix.
XRP Ledger (Ripple)
Base58Check^r[A-Za-z0-9]{24,34}$rDsbeomae4FXwgQTJp9RmYXHN1bFzQmJ5W
Starts with "r", 25–35 Base58 chars (using a Ripple-specific alphabet).
Litecoin
Base58Check + Bech32^((ltc1)[ac-hj-np-z02-9]{6,87}|[LM][a-km-zA-HJ-NP-Z1-9]{25,34})$ltc1qg9stkxrszkdqsuj92lm4c7akvk36zvhqw7p6ck
Legacy starts with "L" (P2PKH) or "M" (P2SH); native segwit starts with "ltc1".
Dogecoin
Base58Check^D[A-Za-km-z1-9]{25,34}$DRkbvq6XrJ2YGpkMGdR9sMffp5g2QfE3KQ
Starts with "D", 26–35 Base58 chars.
Cosmos (and Cosmos SDK chains)
Bech32 (per-chain prefix)^(cosmos|osmo|akash|juno|kava|secret|stars|celestia|noble)1[02-9ac-hj-np-z]{38}$cosmos1kqrm4tvu4ffvysxjpc5egrzgd2cqnsfk998a52
Bech32 with a chain-specific prefix (cosmos1, osmo1, …). Lowercase only; the data part after the "1" separator is 38 bech32 chars (a 20-byte hash + checksum).
NEAR
Account name^[a-z0-9][a-z0-9\-_.]{1,63}(\.[a-z0-9][a-z0-9\-_.]{1,63})*$example.near
Human-readable account names (not public keys), 2–64 chars, lowercase, may contain "." for sub-accounts (e.g. app.near).
Algorand
Base32 (Ed25519 pubkey)^[A-Z2-7]{58}$7Z5V5EYPKFB2XSOZ6YRRCN7XY5JHK6BHGABDFNR7RAGT2RZUZ4A3JQ3EZU
Base32 (RFC 4648, uppercase A–Z + 2–7), 58 chars. Encodes a 32-byte Ed25519 key + 4-byte checksum.
Tezos
Base58Check (tz1/tz2/tz3/tz4)^(tz[1-4])[1-9A-HJ-NP-Za-km-z]{33}$tz16pqRL4ctRGb66KbP61JMWteesiWZWs7FN
Starts with tz1 (Ed25519), tz2 (Secp256k1), tz3 (P-256), or tz4 (BLS). 36 Base58 chars total.
Sui
Hex (0x + 64 hex)^0x[a-fA-F0-9]{64}$0x0CfC8a4EbAeB92D6FC22ebC74fFd8898Bac9717C96B96aB4E65cfFee892084bD
0x + 64 hex (32 bytes). Longer than Ethereum’s 40 hex.
Aptos
Hex (0x + 64 hex)^0x[a-fA-F0-9]{64}$0x1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd
0x + 64 hex (32 bytes). Same length as Sui; both are Move-based.
Stellar
Base32 (Ed25519)^G[A-Z2-7]{55}$GREJ45PKHBYRFVWCO4SEYN62V6QO4QA7TGTTC4SFM5GH5DFQQKAD55RI
Starts with "G" (account) + 55 Base32 chars (M of mnemonic-style addresses start with "M").
Avalanche P-Chain / X-Chain
Bech32 (bech32 custom)^(P|X)-(avax|fuji)1[02-9ac-hj-np-z]{38}$P-avax12zyfzjgkwnxpp6yskg37kngq32emjdgaczr9ka
"X-" or "P-" then bech32 with prefix avax1 (mainnet) or fuji1 (testnet), 45 chars total, lowercase. C-Chain uses the Ethereum 0x format instead.
Bitcoin Cash (CashAddr)
Bech32 (CashAddr)^(bitcoincash|bchtest|bchreg):(q|p)[02-9ac-hj-np-z]{38,42}$bitcoincash:qv62csd3zg6je22arcadaef8rjuh5j5j556hv7qf4r
CashAddr encoding with a "bitcoincash:" (mainnet) or "bchtest:" prefix. "q" = P2PKH, "p" = P2SH. Legacy 1/3 addresses still valid (same as BTC).
Bitcoin Taproot (Bech32m)
Bech32m (P2TR)^bc1p[ac-hj-np-z02-9]{38,58}$bc1pkzdkjv748x4sguhn8snzf4ux682q2d0sz3vdzqtnj2a4cupvtht7ex6xkx
Native-segwit v1 (Taproot). Canonical P2TR is 62 chars total (bc1p + 58); shorter v1 programs (e.g. the 42-char Ordinals docs example) also match. Bech32m checksum, lowercase only.
Monero
Base58 (95-char)^4[0-9AB][1-9A-HJ-NP-Za-km-z]{93}$4AnefLkeoEiryKMqX7Rtmptj5yup2bC3N2TpQ6VNJacdMv9VLaBXpkmgtS1hcJDCtSgWEDwbfU7rXUXehLEWtxTQsF99Sie
95 Base58 chars, starts with "4" (mainnet). Subaddresses start with "8"; testnet uses "9A"/"5". No checksum — integrity is validated by decoding.
Zcash
Base58Check (transparent + shielded)^(t[13][a-km-zA-HJ-NP-Z1-9]{33}|zs1[02-9ac-hj-np-z]{75})$zs1ru69chv4nnrdamm2wx0ure2aj7k8jjcve99asraz6fpdphmm9jpzuvvnk0emt2x9xt4925kazkf
Transparent: "t1" (P2PKH) or "t3" (P2SH), 35 Base58 chars. Sapling shielded: "zs1" + 75 lowercase bech32 chars, 78 total. Legacy Sprout ("zc", 95 chars) is deprecated.
TON (The Open Network)
Base64url (bounceable / non-bounceable)^(E|U)Q[A-Za-z0-9_-]{46}$EQlJToBDR1btySTdpb35MR9VRBmPyo-hBwATYT8DQPs4KTl8
48 chars, base64url. "EQ" = bounceable, "UQ" = non-bounceable. Testnet sometimes prefixed "kQ"/"0Q".
Nano
Base32 (prefix + 60 chars)^(nano|xrb)_[13][134-9a-km-uw-z]{59}$nano_3557hyo7izomag54jx1d4kwc9arrwh83w3p54ut6fbfwrmc4eqpggyegkxtr
"nano_" (new) or "xrb_" (legacy) + 60 chars from Nano’s custom base32 alphabet (no 0/2/l/v). First data char is "1" or "3". Checksum is appended to the 60 chars.
EOS / Antelope
Account name^[a-z1-5.]{1,12}$eosio.token
1-12 chars, lowercase a-z, digits 1-5, and "." allowed (not at the start in real accounts). Human-readable name, not a public key.
Dash
Base58Check (P2PKH)^X[1-9A-HJ-NP-Za-km-z]{33}$XvEg258XXmM49h1Av96TWFajweoMiuKV4k
34 Base58 chars, starts with "X" (P2PKH). P2SH starts with "7". Same Base58Check family as Bitcoin, different version byte.
Hedera
Shard.Realm.Num^\d+\.\d+\.\d+$0.0.8646
Decimal dotted form: shard.realm.account (e.g. 0.0.12345). An entity ID assigned by the ledger, not a public key.
BNB Beacon Chain (BEP2)
Bech32 (bnb prefix)^bnb1[02-9ac-hj-np-z]{38}$bnb18zpd96ch75y7jye47ms4x8xrg8gwgdypdt58kg
Bech32 with "bnb1" prefix, 42 chars, lowercase (bech32 excludes 1, b, i, o). BNB Smart Chain (BEP20) uses the Ethereum 0x format instead.
Ronin (Axie Infinity)
Custom (ronin: + 0x)^ronin:(0x)?[a-fA-F0-9]{40}$ronin:0x9dacFfc32b8ef3D1c9F56C8ebDa386BEea0CA84a
"ronin:" prefix + a 40-hex Ethereum-style address, with or without 0x. Ronin is an EVM sidechain.
Flow
Hex (0x + 16 hex)^0x[a-fA-F0-9]{16}$0xC887c7FE4Ff6C263
0x + 16 hex (8 bytes). Much shorter than Ethereum (40 hex), Sui, and Aptos (64 hex) hex addresses.
Filecoin
Base32 (f/t prefix + type)^(f|t)(0[0-9]+|1[a-z2-7]{38,39}|3[a-z2-7]{38,39})$f1vvccpiq5st6g7nf2zkjlebenvcofgwxayovvpt
Prefix "f" (mainnet) or "t" (testnet). Type 0 = ID (decimal), 1 = SECP256K1, 3 = delegated (f3 can be longer due to subaddress). Payload is base32 (a-z, 2-7).
Stellar (Muxed account)
Base32 (M…, 69 chars)^M[A-Z2-7]{68}$MGJUEFRHU7FIJ7IEKLODXC55MHEJ6FX3PUSTA2P6MHRVBOAVUQJ4FGCDGAXCOQ6LY4APH
Muxed (M…) addresses wrap a base G… account + a memo ID, 69 chars. Completes the Stellar note above.
Qtum
Base58Check (P2PKH)^Q[a-km-zA-HJ-NP-Z1-9]{33}$QY494tKyWTwyumET7HLMRw5gFk8NDfncJH
34 Base58 chars, starts with "Q" (P2PKH). Qtum uses Bitcoin-style addresses with a different version byte; also supports bech32 "qc1".
Stablecoin note (USDT / USDC)
Same as host chain^(T[A-Za-z1-9]{33}|0x[a-fA-F0-9]{40}|[1-9A-HJ-NP-Za-km-z]{32,44})$T4GuUK9smNdSksihU3JLD4aY5ypkhsSF6K
USDT/USDC addresses match their host chain: TRC-20 = Tron (T…), ERC-20 / most L2s = Ethereum (0x…), SPL = Solana (32–44 Base58). Always confirm the network as well as the address.