§ Tool · validator

Bitcoin Address Validator — Legacy, SegWit & Taproot

Paste any Bitcoin address and instantly see its type — Legacy, SegWit, or Taproot — with checksum verification. Runs client-side in your browser.

Last updated · April 23, 2026

Address · Validator · Offline client-side · no data leaves your browser

How it works

Bitcoin addresses are not arbitrary strings — every address encodes a spending condition, a format version, and a checksum, all packed into a compact human-readable form. This validator decodes that structure entirely in your browser without making any network request. Nothing you type is ever transmitted anywhere.

There are two distinct encoding families in use on the Bitcoin mainnet today. The older family uses Base58Check, which is the encoding behind Legacy (P2PKH) addresses starting with 1 and Wrapped SegWit (P2SH) addresses starting with 3. Base58Check is a 58-character alphabet (no 0, O, I, or l to prevent visual confusion) with a 4-byte double-SHA256 checksum appended to the payload. When you paste a 1… or 3… address, the validator decodes it with Base58Check and verifies that the checksum bytes match. A single character error — even one transposition — produces a different checksum and is caught immediately.

The newer family uses Bech32 (defined in BIP 173) for Native SegWit addresses starting with bc1q. Bech32 uses a 32-character alphabet and a BCH error-correcting code that can not only detect errors but also localize them. A bc1q address carries a witness version byte of zero followed by a 20-byte hash (P2WPKH) or a 32-byte hash (P2WSH, used for multisig and script contracts). The validator checks both the Bech32 checksum and the witness program length to distinguish P2WPKH from P2WSH.

Taproot addresses starting with bc1p use Bech32m (BIP 350), a slight modification to the Bech32 constant that improves the error-detection properties for witness version 1 and above. The validator tries Bech32 first; if that fails, it tries Bech32m and checks for witness version 1 with a 32-byte x-only public key. This is the most recent and most efficient Bitcoin address format — Taproot was activated at Bitcoin block 709,632 in November 2021.

All validation logic runs in a deterministic pure function. Bitcoin Core itself uses the same encoding libraries under the hood: bs58check for Base58 and bech32/bech32m for the native SegWit families. No private key material, no wallet derivation, and no transaction data ever enter the picture — the tool inspects only the public address string you provide.

Address format guide

Bitcoin has accumulated several address formats over its history, each reflecting an upgrade to the scripting layer:

Privacy note

Because this tool runs entirely client-side, there is no server that logs the addresses you check. Using an online validator that phones home with your address could leak information about which addresses you hold or are about to receive funds to. This tool has no back-end; your browser’s JavaScript engine is the only processor.

FAQ

Why is my address flagged as invalid?

The most common cause is a single character substitution or transposition. Bitcoin addresses are case-sensitive (except for the bc1 bech32 portion, which is lowercase only). A Base58Check address that differs by even one character will fail the 4-byte checksum. A Bech32 or Bech32m address has an even stronger error-correcting code and will similarly reject any corruption.

What about testnet addresses?

Testnet addresses use different version bytes and different human-readable parts. A testnet P2PKH address starts with m or n; a testnet bech32 address starts with tb1. This validator only recognizes mainnet formats and will report testnet addresses as invalid. This is intentional — if you accidentally send real mainnet coins to a testnet address string, the coins are gone.

Is a Lightning address (user@domain.com) format supported?

No. Lightning addresses (e.g., alice@wallet.satoshi.com) are an HTTP-based identifier (LNURL-pay) that resolves to a Lightning invoice, not an on-chain Bitcoin address. They are not validated here. Use the Invoice Decoder tool for BOLT 11 Lightning invoices.

Which format should I use when generating a new address?

For most users, Taproot (P2TR, bc1p…) is the best choice when your wallet supports it — lowest fees and best privacy. If your counterparty’s wallet cannot generate or send to Taproot, Native SegWit P2WPKH (bc1q…) is the next best option. Only use Legacy or Wrapped SegWit when required for compatibility with very old software.

Does this work offline?

Yes. Once the page has loaded, the validator runs without any network connectivity. There is no external dependency at runtime.