# Bech32 and Bech32m

bc1 addresses use Bech32 (SegWit v0) or Bech32m (Taproot and later). They are lowercase, QR-friendly and catch typos. Learn how they are built.

Canonical page: https://mybitcoinexplorer.com/learn/bech32-and-bech32m
Topic: Keys and addresses
Published: 2026-10-29
Updated: 2026-10-30


## Anatomy of a bc1 address
> Diagram: Parts of a Bech32 address — bc:2,1:1,Witness version:1,Program (data):var,Checksum:6

- **bc**: human-readable part for mainnet (tb on testnet).
- **1**: separator.
- **Witness version**: `q` = version 0 (SegWit), `p` = version 1 (Taproot).
- **Program**: the key hash, script hash, or Taproot key.
- **Checksum**: 6 characters.

## Why it's better than Base58
- 32 characters only, all lowercase: easier to read aloud and to fit in QR codes.
- Guaranteed to detect up to 4 character errors, and good at catching more.
- No ambiguous characters like 1/l or 0/o.

## Why Bech32m?
A small weakness was found in Bech32: in certain cases inserting or removing `q` characters before a final `p` might go undetected. That doesn't matter for v0 addresses, which have fixed lengths, but it could for future versions. **Bech32m** (BIP 350) changes one constant to fix it, and is used for v1 ([Taproot](https://mybitcoinexplorer.com/learn/taproot)) and later.

| Version | Letter | Encoding | Example prefix |
|---|---|---|---|
| 0 | q | Bech32 | bc1q… |
| 1 | p | Bech32m | bc1p… |


## Why bc1 addresses suit QR codes
QR codes have a compact alphanumeric mode that only supports uppercase letters. Writing a bc1 address in uppercase (`BC1Q…`) lets wallets make smaller, easier-to-scan QR codes, and it's still a valid address.

## Testnet and signet prefixes
| Network | Prefix |
|---|---|
| Mainnet | bc1 |
| Testnet and signet | tb1 |
| Regtest | bcrt1 |


## Key takeaways

- bc1 addresses are Bech32 (v0) or Bech32m (v1+).
- The character after bc1 gives the witness version.
- The checksum detects up to 4 errors.

## Common questions

### Why are some bc1q addresses longer?

P2WPKH has a 20-byte program (42 characters); P2WSH has a 32-byte program (62 characters).

### Can I type a bc1 address in capitals?

Yes, all-uppercase is valid and makes QR codes smaller. Mixed case is invalid.

### Can old wallets send to bc1 addresses?

Almost all modern wallets and exchanges can. Very old software may not.

### Why is a Taproot address longer than a SegWit one?

A P2TR address holds a 32-byte key, while P2WPKH holds a 20-byte hash.

## Related lessons

- [Bitcoin address types compared](https://mybitcoinexplorer.com/learn/address-types)
- [Segregated Witness (SegWit)](https://mybitcoinexplorer.com/learn/segwit)
- [Taproot](https://mybitcoinexplorer.com/learn/taproot)
- [Base58Check encoding](https://mybitcoinexplorer.com/learn/base58check)
