Skip to main content

Bech32 | Bitcoin Glossary | Mapping Bitcoin

Bech32

Protocol

Also known as: Bech32m, bc1 address, native SegWit address

A human-readable address encoding format introduced by BIP173 for native SegWit addresses. Bech32 addresses start with 'bc1' and offer better error detection, are case-insensitive, and result in lower transaction fees compared to legacy address formats.

Overview

Bech32 is an address encoding format specified in BIP173, designed for native SegWit addresses. It replaced the older Base58Check encoding for SegWit-compatible addresses, offering significant improvements in usability and error detection. An updated version, Bech32m (BIP350), was introduced for Taproot addresses.

Key Features

  • Case-insensitive: Bech32 addresses use only lowercase letters and numbers, eliminating confusion between upper and lowercase characters
  • Better error detection: Can detect up to 4 errors and locate up to 2 errors in an address
  • Lower fees: Native SegWit transactions are smaller in terms of weight units, resulting in lower fees
  • QR-friendly: Produces more compact QR codes since the encoding is more efficient

Address Structure

bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
│  │ │
│  │ └── Data (witness program, encoded)
│  └──── Separator (always "1")
└─────── Human-readable part ("bc" for mainnet, "tb" for testnet)

Bech32m (Taproot):
bc1p5cyxnuxmeuwuvkwfem96lqzszee2457nljy653y...
│  │
│  └── "p" indicates witness version 1 (Taproot)
└───── Same "bc" prefix for mainnet

Bech32 vs Bech32m

The original Bech32 encoding had a weakness where certain types of errors in the last character could go undetected for witness version 1 and above. Bech32m (BIP350) fixes this by using a different constant in the checksum calculation. All Taproot (version 1) addresses use Bech32m, while version 0 SegWit addresses continue to use Bech32.

Adoption

Since its introduction, Bech32 adoption has grown steadily. Most modern wallets generate Bech32 addresses by default. Some older services and wallets may not support sending to bc1 addresses, though this is increasingly rare.