Randomly

Bitcoin address validator

Check whether a legacy Bitcoin address is well formed by verifying its Base58Check checksum and version byte. It also tells you mainnet or testnet.

Input

Bitcoin address check

—

Paste a legacy (Base58) Bitcoin address to verify its checksum.

A legacy Bitcoin address is valid when its Base58Check checksum — the last 4 bytes — matches the first 4 bytes of double-SHA-256 over the version and payload. Bech32 SegWit addresses (bc1…) use a different scheme and aren't checked here.
Scheme
Base58Check
Networks
Main · test

Related tools

This Bitcoin address validator decodes a legacy address and recomputes its Base58Check checksum. It accepts P2PKH addresses (starting with 1 on mainnet, m or n on testnet) and P2SH addresses (3 on mainnet, 2 on testnet), and tells you which network the address belongs to. The check runs in your browser.

Valid mainnet addresses also get an optional Look up activity button. Clicking it sends the address to our server, which asks mempool.space for the balance and transaction count. Nothing leaves your browser unless you click.

How to validate a Bitcoin address

  1. Paste the address into the input. The result appears as you type.
  2. The tool Base58-decodes it, checks that it's exactly 25 bytes, and compares the last 4 bytes with a freshly computed checksum.
  3. It reads the version byte to tell mainnet from testnet.
  4. You'll see Valid with the network, or Invalid with the reason: bad characters, wrong length, checksum mismatch or unknown version byte.
  5. On a valid mainnet address, click Look up activity if you want the balance and transaction count.

What Base58Check validation confirms

A legacy address decodes to 25 bytes: a 1-byte version prefix, a 20-byte hash and a 4-byte checksum. The checksum is the first 4 bytes of SHA-256 run twice over the first 21 bytes. Mistype one character and the checksum will almost certainly stop matching, which is the whole point of having it. A pass means the address is well formed for a known network. It doesn't prove anyone holds the private key.

What this validator does not check

  • Whether anyone controls the private key.
  • SegWit and Taproot addresses (bc1 or tb1). They use bech32 encoding and are rejected with a note saying so.
  • Blockchain activity, unless you click Look up activity on a mainnet address.
  • Whether a mainnet address is P2PKH or P2SH. Both pass the same way.

Frequently asked questions

What does Bitcoin address validation check?

It verifies the 4-byte Base58Check checksum and the version byte. A valid result means the address isn't mistyped or corrupted. It says nothing about who owns it.

Does this tool support SegWit or bech32 addresses?

No. Addresses starting with bc1 or tb1 use bech32, a different encoding, and this validator only handles legacy Base58 addresses.

What is the version byte?

The first byte of the decoded address. On mainnet, 0x00 is a P2PKH address (starts with 1) and 0x05 is P2SH (starts with 3). On testnet, 0x6F gives m or n and 0xC4 gives 2. Any other value is reported as invalid.

Does this tool send my Bitcoin address to any server?

Not for the validation, which runs in your browser. If you click Look up activity, the address goes to our server and on to mempool.space so we can fetch its balance and transaction count.

Built and maintained by Bipul Kumar. Found a wrong number or a broken result? Tell me and I'll fix it.