Security · Validation

Bitcoin address validator.

Paste a Bitcoin address to check its checksum: Base58Check for legacy 1… and 3… addresses, Bech32 for SegWit bc1q… and Bech32m for Taproot bc1p…. This checks format and checksum only. It cannot tell you whether an address is funded or who owns it. Everything runs in your browser: nothing you type is transmitted or stored. Never paste a private key or seed phrase; this tool does not need one.

Sources: Bitcoin Wiki Base58Check, BIP-173, BIP-350 Base58Check uses double SHA-256 via WebCrypto

Advertisement

Inputs

Accepts mainnet and testnet addresses. Never enter a private key, WIF, or seed phrase.

Result

Enter a Bitcoin address and press Validate.

How Bitcoin address checksums work

Base58Check (legacy addresses starting 1 or 3): the address is a Base58 encoding of a version byte, a 20-byte hash, and a 4-byte checksum. The checksum is the first four bytes of SHA-256 applied twice to the version byte and hash. This page recomputes it with your browser's WebCrypto and compares. Version 0x00 is P2PKH (1…) and 0x05 is P2SH (3…).

Bech32 (BIP-173, bc1q…) and Bech32m (BIP-350, bc1p…) use a BCH code over a 32-character alphabet. A polymod over the human-readable part and data must equal 1 for Bech32 or 0x2bc830a3 for Bech32m. SegWit version 0 addresses must use Bech32; version 1 and above (including Taproot) must use Bech32m. The witness program must be 2 to 40 bytes, and 20 or 32 bytes for version 0. Mixed upper and lower case is rejected.

Sources: Bitcoin Wiki: Base58Check encoding, BIP-173, BIP-350. The checks are tested against the test vectors published in those BIPs.

What a passing checksum does and doesn’t tell you

A valid checksum only proves the address is well-formed and free of typos. It does not confirm the address has ever received funds, is controlled by anyone, or belongs to the person you intend to pay. Bitcoin transactions are irreversible, so verify the address with the recipient by a second channel. This tool runs entirely in your browser: nothing you type is transmitted, stored, or logged. It never asks for a private key or seed phrase, and you should never enter one anywhere.

Advertisement
Advertisement
Listening…