Definition
Bech32, specified in BIP173, is the address encoding introduced for native Segregated Witness. It replaced Base58Check for witness outputs and is used by SegWit version 0 types such as P2WPKH and P2WSH, whose mainnet addresses begin with bc1q. A Bech32 string has three parts: a human-readable prefix (bc for mainnet, tb for testnet), a separator 1, and a Base32 data section ending in a six-character checksum.
Why it was designed
The character set deliberately excludes 1, b, i, and o to reduce visual ambiguity, and addresses are all-lowercase, which makes them compact in QR codes and easier to read aloud. The checksum uses a BCH code that guarantees detection of any error affecting up to four characters and catches larger errors with overwhelming probability, so a single mistyped character almost never produces a valid but wrong address.
Practical notes
Because Bech32 is case-insensitive, wallets may display it in uppercase for denser QR codes while accepting lowercase input. A subtle flaw, where inserting or deleting q characters before a final p could preserve the checksum, led to a refined variant for later witness versions. Self-custody operators reading addresses aloud or transcribing them benefit directly from Bech32's error-detection guarantees.
The refined successor used by Taproot is Bech32m, and the output type it encodes is P2WPKH (Native SegWit).
In Simple Terms
Bech32, specified in BIP173, is the address encoding introduced for native Segregated Witness. It replaced Base58Check for witness outputs and is used by SegWit version…
