Insights on Crypto Payments, Infrastructure, and Operations

Bech32

Pronunciation: BECK thur-tee-TOO

Also known as: Bech32 Address Encoding

Definition

Bech32 is a checksummed text encoding introduced for native Bitcoin SegWit version 0 addresses. It uses a human-readable prefix, a restricted lowercase character set, encoded data, and an error-detecting checksum. Bech32 addresses are easier to use in QR codes and avoid mixed case, but the original checksum design should not be used for witness versions 1 and later, which require Bech32m.

Overview

Bech32 is the address encoding defined by BIP 173 for native SegWit witness version 0 outputs. A string contains a human-readable part, the separator character `1`, encoded data, and a six-character checksum. On Bitcoin mainnet, the human-readable part is commonly `bc`, which gives immediate network context before the witness program.

The data portion uses a 32-character alphabet chosen to reduce visual ambiguity and support efficient error detection. The format is case-insensitive in principle but forbids mixing uppercase and lowercase within one string. Wallets normally display lowercase. Unlike Base58Check, the format was designed with QR efficiency and longer address handling in mind.

Software validates the complete checksum and then interprets the decoded witness version and program length. The checksum can identify many common typing mistakes, but it does not prove that a destination is trustworthy. The network prefix, witness version, and decoded program must all satisfy the expected Address Format rules.

Bech32 has an important scope limitation. Its checksum is appropriate for witness version 0, but researchers found an undesirable error property for future witness versions. BIP 350 introduced Bech32m for version 1 and later. A wallet must choose the checksum variant based on the witness version rather than accepting either format interchangeably.

For merchants and payment processors, Bech32 support reduces compatibility failures when customers use native SegWit wallets. The application should preserve the exact destination, display the selected network, and reject mixed-case or checksum-invalid strings. It should not attempt to rewrite a valid address into another format unless the underlying spending condition is known to be equivalent.

Key Takeaway

Bech32 is the checksummed format for native Bitcoin witness version 0 addresses, while newer witness versions must use Bech32m.

Sources

  1. BIP 173: Base32 Address Format for Native Witness Outputs — Bitcoin Improvement Proposals (2026-08-02)
  2. Bitcoin Developer Guide: Transactions — Bitcoin Developer Documentation (2026-08-02)