Bitcoin Address Validator

Validate BTC addresses — Legacy (P2PKH), SegWit (P2SH), and Bech32 (Native SegWit + Taproot).

Bitcoin Address Validator

How was your experience with this tool?

Found a bug? Missing a feature? Tell us — it takes 10 seconds.

See how it works

Watch a quick simulation of this tool in action — no file needed.

How to use Bitcoin Address Validator

Follow these steps — everything happens instantly in your browser.

  1. 1

    Step 1. Paste a Bitcoin address into the input field.

  2. 2

    Step 2. The validator instantly detects the address type (Legacy, SegWit, Native SegWit, Taproot) and runs checksum verification.

  3. 3

    Step 3. Read the green/red status — green means the checksum passes, red means the address is invalid.

  4. 4

    Step 4. Use the info card to learn which networks and wallets support that address type.

Bitcoin Address Validator: Check Legacy, SegWit, and Taproot Addresses

Why this matters

Sending Bitcoin to an invalid address means permanent loss of funds with no recovery mechanism. Unlike bank transfers, cryptocurrency transactions are irreversible, so verifying an address before initiating a payment is not optional — it is essential. A single transposed character in a Bech32 address will cause the checksum to fail, but the address may still look plausible to the human eye, especially the long 'bc1q' and 'bc1p' formats.

This validator covers all four Bitcoin address types in current use: Legacy P2PKH addresses starting with '1', Nested SegWit P2SH addresses starting with '3', Native SegWit Bech32 addresses starting with 'bc1q', and Taproot Bech32m addresses starting with 'bc1p'. It also detects testnet addresses that start with 'm', 'n', '2', or 'tb1', which are valid on the test network but would cause total loss if used on mainnet. The verification runs entirely through pure JavaScript Base58Check and Bech32m implementations with no external API calls.

Address types and detection rules

| Type | Prefix | Checksum method | Witness version |

| --- | --- | --- | --- |

| Legacy P2PKH | 1 | Base58Check | N/A |

| Nested SegWit P2SH | 3 | Base58Check | N/A |

| Native SegWit | bc1q | Bech32 | v0 |

| Taproot | bc1p | Bech32m | v1 |

| Testnet legacy | m, n | Base58Check | N/A |

| Testnet P2SH | 2 | Base58Check | N/A |

| Testnet SegWit | tb1 | Bech32/Bech32m | v0 or v1 |

How to use it

Paste the Bitcoin address you want to validate into the input field.

The validator instantly detects the address type and runs the appropriate checksum verification — Base58Check for Legacy and Nested SegWit, or Bech32/Bech32m for Native SegWit and Taproot.

Read the status indicator: green means the checksum passes and the address format is valid, red means the address is malformed or the checksum fails.

Check the info card for details about which networks and wallet types support the detected address format.

If the address is flagged as testnet, verify you are not about to send mainnet funds to a testnet address.

Testing your result

Test with known valid addresses from your own wallet. Generate a receive address in your wallet app, paste it into the validator, and confirm it shows green with the correct type. Then deliberately alter one character in the middle of the address and confirm the validator flags it as invalid with a red status. Test a testnet address (starting with 'tb1') and verify the tool correctly identifies it as testnet rather than mainnet. These three tests cover the happy path, the error path, and the cross-network detection path.

Common mistakes

Confusing testnet addresses with mainnet addresses — sending BTC to a 'tb1' address on mainnet results in permanent fund loss.

Assuming a valid checksum means the address belongs to you or your recipient — the validator confirms format integrity, not ownership.

Truncating or line-wrapping long Bech32 addresses when copying from email or chat, which breaks the checksum.

Expecting the tool to show balance or transaction history — it only validates format and checksum, not on-chain state.

Mixing up Bech32 and Bech32m: Native SegWit uses Bech32 (bc1q), while Taproot uses Bech32m (bc1p), which has a different checksum constant.

Edge cases and options

Bech32 and Bech32m differ in their checksum polynomial: Bech32 uses the original BIP173 constant for witness version 0 (Native SegWit), while Bech32m uses the BIP350 constant for witness version 1 and above (Taproot). This validator implements both and selects the correct one based on the witness version encoded in the address. The tool cannot determine which wallet software generated an address, since wallet identity is not encoded in the address format. It also cannot check whether an address has ever received funds, since that requires querying the blockchain.

Real-world use cases

Crypto users double-checking a withdrawal address before sending Bitcoin from an exchange to a personal wallet.

Developers verifying that their application generates correctly formatted addresses before deploying to production.

Support agents troubleshooting failed transactions by checking whether the destination address passed format validation.

Educators teaching students about the different Bitcoin address formats and their checksum mechanisms.

Frequently asked questions

Q: What address types does this validator support?

A: All four mainnet Bitcoin address types: Legacy P2PKH (starting with 1), Nested SegWit P2SH (starting with 3), Native SegWit Bech32 (bc1q), and Taproot Bech32m (bc1p). Testnet variants are also detected.

Q: What is the difference between Bech32 and Bech32m?

A: Bech32 is the encoding used for Native SegWit addresses (bc1q) defined in BIP173. Bech32m is a strengthened variant with a different checksum constant, used for Taproot addresses (bc1p) defined in BIP350 for witness version 1 and above. Both are verified correctly.

Q: Does this check the balance or transaction history of an address?

A: No. The validator only checks address format and checksum integrity. Checking balance requires querying the blockchain via a node or API, which needs a network call that this tool deliberately avoids.

Q: Why does my address show as testnet?

A: Testnet addresses start with m, n, 2, or tb1 instead of 1, 3, or bc1. They are valid addresses on Bitcoin's test network but will not work on mainnet. Sending mainnet funds to a testnet address results in permanent loss.

Q: Can this tool identify which wallet generated an address?

A: No. Wallet identity is not encoded in the address format. The validator can only determine the address type (Legacy, SegWit, Taproot) and the network (mainnet or testnet).

Q: Is my address sent to any server?

A: Never. The Base58Check and Bech32/Bech32m verification is computed entirely in JavaScript within your browser. You can verify this by checking the Network tab in your browser's developer tools — there will be zero outgoing requests.

Start using it now

Want the extended step-by-step tutorial? Read it here.

Why use this tool

Private by design

All processing happens locally in your browser. Open DevTools → Network and you'll see zero file uploads. Ever.

Instant

No upload wait, no queue, no server round-trip. Results appear the moment you drop a file.

Free & unlimited

No accounts, no watermarks, no daily caps. Use it as many times as you like, forever.

Works everywhere

Desktop, tablet or phone — every tool is responsive and installable as a PWA for offline use.

Frequently asked questions

Everything you might want to know about bitcoin address validator.

❤️ This tool is free — forever.

Sharing it helps more people discover it, and ad revenue from visitors is what keeps it free. No accounts, no catch.

Want to learn more?

Read our complete Bitcoin Address Validator tutorial with tips, use cases, and FAQs.