Bitcoin Address Validator

Validate the checksum of a Bitcoin address (Base58Check / Bech32 / Bech32m).

Open tool

Overview

A Bitcoin address validator confirms whether a given string is a syntactically valid Bitcoin destination before any funds move on-chain. Bitcoin has shipped three major address families since 2009: legacy Pay-to-Public-Key-Hash (P2PKH) and Pay-to-Script-Hash (P2SH) addresses that use Base58Check, native SegWit addresses introduced in BIP 173 that use Bech32, and Taproot addresses defined in BIP 350 that use Bech32m. Each format carries its own checksum, and a single flipped character will almost always fail that check.

Validation only proves that the address is well-formed, not that it controls any coins or that the recipient is who you think it is. The checksum prevents the most common accidents, such as a typo or a missing character pasted from a chat client, but it cannot detect a swapped address sent by a clipboard hijacker. Use this kind of verification as a final sanity step alongside ledger-level confirmation, hardware-wallet display matching, and small test transactions for large transfers.

How it works

For Base58Check addresses the tool decodes the alphanumeric string back to bytes, splits off the trailing four-byte checksum, and verifies that the first four bytes of SHA256(SHA256(payload)) match. A valid result is a 25-byte payload whose version byte identifies a mainnet P2PKH (0x00), P2SH (0x05), or testnet variant. For Bech32 and Bech32m the algorithm follows BIP 173 / BIP 350: the human-readable prefix (bc, tb, or bcrt) plus the data part are run through a polymod over GF(32), and the residual must equal 1 for SegWit v0 or 0x2bc830a3 for SegWit v1 (Taproot).

Examples

  • 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa — legacy P2PKH (the Genesis coinbase address). Base58Check decode produces version 0x00 and a passing SHA256d checksum.
  • 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy — P2SH mainnet address. Version byte 0x05 with a valid trailing checksum.
  • bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4 — Bech32 native SegWit v0. The polymod constant of 1 confirms BIP 173 compliance.
  • bc1pmzfrwwndsqmk5yh69yjr5lfgfg4ev8c0tsc06e — Taproot. Bech32m polymod constant of 0x2bc830a3 marks it as SegWit v1.

FAQ

Does a valid address mean the funds will arrive?
No. Validation only proves the string is well-formed and the checksum matches. Always reconcile against the recipient's signed instruction or hardware wallet display.

Why do some wallets reject Bech32m addresses?
Older software that predates BIP 350 only knows the original Bech32 constant and will refuse Taproot outputs. Update the wallet or use a SegWit v0 address.

Is upper-case different from lower-case?
Bech32 forbids mixed case but treats all-upper and all-lower as equivalent. Base58Check is fully case-sensitive — a swapped letter case will fail.

Can it tell me the balance?
No. Address validation is an offline mathematical check; balances require a chain query.

What about testnet addresses?
Testnet uses prefixes like m, n, 2, tb1, or bcrt1, and the same algorithms apply with different version bytes or HRPs.

Try Bitcoin Address Validator

An unhandled error has occurred. Reload ×