For developers

Patterns, the official test vectors this checker is tested against, and a widget. A regex checks the shape of an address; only decoding checks its checksum.

A regex is not a validator. It accepts any string of the right shape, including one with a typo. Decode the address and verify its checksum (Base58Check, Bech32/Bech32m, EIP-55, CRC16 …) before trusting it.

Format patterns

FormatPattern (shape only)
Bitcoin legacy (1…, 3…)^[13][1-9A-HJ-NP-Za-km-z]{25,33}$
Bitcoin SegWit / Taproot (bc1…)^(bc1|BC1)[qpzry9x8gf2tvdw0s3jn54khce6mua7lQPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{8,87}$
Ethereum / EVM^0x[0-9a-fA-F]{40}$
TRON^T[1-9A-HJ-NP-Za-km-z]{33}$
Solana^[1-9A-HJ-NP-Za-km-z]{32,44}$
XRP classic^r[1-9A-HJ-NP-Za-km-z]{24,34}$
TON user-friendly^[EUk0]Q[A-Za-z0-9_-]{46}$
Litecoin legacy (L…, M…, 3…)^[LM3][1-9A-HJ-NP-Za-km-z]{33}$
Bitcoin Cash CashAddr^(bitcoincash:)?[qp][qpzry9x8gf2tvdw0s3jn54khce6mua7l]{41}$
Stellar account^G[A-Z2-7]{55}$
Cardano Shelley^addr1[qpzry9x8gf2tvdw0s3jn54khce6mua7l]{53,98}$
Monero standard / subaddress^[48][1-9A-HJ-NP-Za-km-z]{94}$

Official test vectors

copied from the specifications; the checker passes all of them

BIP-350 valid SegWit addresses

  • BC1QW508D6QEJXTDG4Y5R3ZARVARY0C5XW7KV8F3T4
  • tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7
  • bc1pw508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7kt5nd6y
  • BC1SW50QGDZ25J
  • bc1zw508d6qejxtdg4y5r3zarvaryvaxxpcs
  • tb1pqqqqp399et2xygdj5xreqhjjvcmzhxw4aywxecjdzew6hylgvsesf3hn0c
  • bc1p0xlxvlhemja6c4dqv22uapctqupfhlxm9h8z3k2e72q4k9hcz7vqzk5jj0

BIP-350 invalid addresses (must be rejected)

  • bc1p0xlxvlhemja6c4dqv22uapctqupfhlxm9h8z3k2e72q4k9hcz7vqh2y7hd
  • bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kemeawh
  • bc1gmk9yu
  • BC1QR508D6QEJXTDG4Y5R3ZARVARYV98GJ9P

EIP-55 test cases

  • 0x52908400098527886E0F7030069857D2E4169EE7
  • 0xde709f2102306220921060314715629080e2fb77
  • 0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed
  • 0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359
  • 0xdbF03B407c01E7cD3CBea99509d93f8DDDC8C6FB
  • 0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDb

CashAddr specification: legacy ↔ CashAddr

  • 1BpEi6DfDAUFd7GtittLSdBeYJvcoaVggu → bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a
  • 3CWFddi6m4ndiGyKqzYvsFYagqDLPVMTzC → bitcoincash:ppm2qsznhks23z7629mms6s4cwef74vcwvn0h829pq

XLS-5d tagged addresses

  • r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 (no tag) → X7AcgcsBL6XDcUb289X4mJ8djcdyKaB5hJDWMArnXr61cqZ
  • r9cZA1mLK5R5Am25ArfXFmqgNwjZgnfk59 (tag 1) → X7AcgcsBL6XDcUb289X4mJ8djcdyKaGZMhc9YTE92ehJ2Fu

CIP-19 Cardano addresses

  • addr1qx2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzer3n0d3vllmyqwsx5wktcd8cc3sq835lu7drv2xwl2wywfgse35a3x
  • addr1vx2fxv2umyhttkxyxp8x0dlpdt3k6cwng5pxj3jhsydzers66hrl8
  • stake1uyehkck0lajq8gr28t9uxnuvgcqrc6070x3k9r8048z8y5gh6ffgw

SEP-23 StrKey

  • GA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVSGZ
  • MA7QYNF7SOWQ3GLR2BGMZEHXAVIRZA4KVWLTJJFC7MGXUA74P7UJVAAAAAAAAAAAAAJLK

Embed the checker

The widget runs the same checks inside the frame; it makes no requests and reports nothing back.

HTML<iframe src="https://cryptoaddresschecker.xyz/embed" width="100%" height="760" style="border:0;border-radius:24px" title="Crypto address checker" loading="lazy"></iframe>

FAQ

What is the regex for a Bitcoin address?

^[13][1-9A-HJ-NP-Za-km-z]{25,33}$ for legacy and ^(bc1|BC1)[…]{8,87}$ for Bech32 — but a regex only checks the shape. Verify the checksum by decoding.

What is the regex for an Ethereum address?

^0x[0-9a-fA-F]{40}$. For mixed-case addresses also verify the EIP-55 checksum.