← Back to Glossary

Bech32m

Bech32m is the modified version of the Bech32 address format, defined in BIP 350 and adopted for bitcoin addresses using witness version 1 and higher. It is the format of Taproot addresses, the ones beginning with bc1p, and differs from the original by a single constant in the checksum calculation.

Why it matters

After Bech32 shipped, researchers found an edge case: if an address ended in the character p, an attacker or an accident could insert or delete characters immediately before it without invalidating the checksum, potentially routing funds to an unintended destination. The flaw did not affect deployed SegWit version 0 addresses, whose lengths are fixed, but it mattered for the future address types Taproot would introduce. Bech32m closed the hole before those addresses went live in 2021, an example of bitcoin's habit of fixing theoretical weaknesses before they become practical ones.

How it works

Bech32's checksum is computed by evaluating the address as a polynomial and comparing the result to the constant 1. Bech32m keeps the identical machinery but compares against the constant 0x2bc830a3 instead, which breaks the algebraic pattern that allowed the insertion trick. Wallets now apply a simple rule from BIP 350: addresses carrying witness version 0, the bc1q family, must validate under original Bech32, while addresses with witness version 1 or higher, including every bc1p Taproot address, must validate under Bech32m. An address valid under the wrong variant is rejected outright, so the two formats coexist without ambiguity.

Ready to convert your gold to Bitcoin?

Get Your Free Kit →