What makes a Bitcoin address valid?
A Bitcoin address is a short, human-shareable way to describe where coins should go. It is not just a random string: every address contains a checksum, a few characters computed from the rest of the address. If you change even a single character, the checksum no longer matches, and wallets refuse to send. This tool runs exactly that check in your browser.
The address formats you will see
- Legacy (starts with 1) — the original format (P2PKH). Universally supported but more expensive to spend from.
- Script hash (starts with 3) — P2SH, used for wrapped SegWit wallets and multisig.
- Native SegWit (starts with bc1q) — P2WPKH (42 characters) or P2WSH (62 characters, usually multisig). Cheaper fees, very widely supported.
- Taproot (starts with bc1p) — P2TR, the newest common format, activated in 2021.
Legacy and P2SH addresses use Base58Check encoding, which avoids look-alike characters such as 0, O, I and l. Newer addresses use bech32 (BIP-173) for SegWit version 0 and bech32m (BIP-350) for Taproot and later versions. Bech32 is designed to detect common typing mistakes, and it never contains the characters 1 (after the prefix), b, i or o.
Wrong network
Bitcoin has test networks — testnet, signet and regtest — where coins have no value. Their addresses use different prefixes (tb1, bcrt1, m, n or 2). If someone gives you a test address for a real payment, something is wrong. Note that testnet and signet share the same address format, so they cannot be told apart from the address alone.
What a checker cannot tell you
A valid address may still belong to the wrong person. Malware sometimes replaces copied addresses with an attacker’s address, which will pass every format check. Always verify the address through a second channel, and compare it carefully on your hardware wallet screen if you use one.
Worked example
The address bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq is a valid mainnet native SegWit (P2WPKH) address. Change the last character to r and the checker reports a checksum error. Change it to o and it reports an impossible character — a classic “o instead of 0” typo. Paste tb1q… and you are warned it is a test-network address.
Frequently asked questions
Does this tool send my address anywhere?
No. Validation happens entirely in your browser using the same checksum rules wallets use. Only if you press the optional “Look up balance” button is the address sent to mempool.space.
Can a valid address still be the wrong one?
Yes. A valid format only proves there is no typo. It cannot tell you who controls the address. Clipboard-hijacking malware can swap an address for a different valid one, so always compare the first and last few characters with the recipient.
What happens if I send to a mistyped address?
Almost always, your wallet refuses because the checksum fails. The checksums used by Bitcoin addresses make it extremely unlikely that a random typo produces another valid address.
What is the difference between bc1q and bc1p addresses?
bc1q addresses are native SegWit version 0, using the bech32 checksum. bc1p addresses are Taproot (SegWit version 1), using the newer bech32m checksum defined in BIP-350. Both are modern, low-fee formats.
Why does my address start with tb1, m, n or 2?
Those are test-network addresses (testnet or signet). Test coins have no value, and real bitcoin should never be sent to them.
Are upper-case bc1 addresses valid?
Yes, if the whole address is upper case. Upper case makes QR codes smaller. Mixing upper- and lower-case letters is invalid.