1
0
mirror of https://github.com/bitcoin/bips.git synced 2026-08-03 18:21:54 +00:00
Files
bips/bip-0321.mediawiki
Ferdinando Ametrano 644e484d4a BIP321: make all example addresses intentionally invalid
The base58 example address has an intentionally invalid checksum, but
the bech32 and bech32m examples added later have valid checksums, so
they are spendable addresses that a reader may pay by accident -- the
very hazard that motivated the invalid base58 address in #119. Two of
them are mainnet:

  bc1qufgy354j3kmvuch987xe4s40836x3h0lg8f5n2  (bech32, witness v0)
  bc1p5swkugezn...vep9m4p7339x5qzyrh4g        (bech32m, witness v1)
  tb1qghfhmd4zh7ncpmxl3qzhmq566jk8ckq4gafnmg  (bech32, testnet)

Alter the final checksum character of each, and document the intent
with the note BIP 21 received in #1861. Bech32 detects any
single-character substitution, so the modified strings cannot be valid
addresses. The human-readable part, charset and length are unchanged,
so the examples remain structurally representative of P2WPKH and P2TR.

The uppercase QR-code variants are updated to match, and the changed
testnet address in the "Invalid URIs" section still demonstrates the
same point (a `tb` address in the `bc` parameter).

Alternative to #2228, which leaves the addresses untouched and instead
words the note to match them.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 23:00:39 +02:00

15 KiB