Game · easy · 5 min

Checksum Catcher

Sort addresses before the clock runs out, and let the checksum catch the typos

  • What a bech32m checksum catches, and what it can't tell you
  • prl1, tprl1 and rprl1 prefixes name the network
  • Pearl has only prl1p and prl1z addresses carrying 32 bytes
  • Why bc1… and prl1q… addresses are never Pearl

Checksum Catcher

Sort the addresses before the timer runs out

Best—

Arcade · addresses and checksums

You run a wallet’s send screen. Catch every bad address before it costs someone their coins.

Each address gets a quick wallet scan: prefix, checksum and size. Sort it into one of four bins before the bar runs out.

Faster answers and combos of 3+ score more. Three misses end the level.

  • 1V Valid
  • 2T Typo
  • 3W Wrong network
  • 4N Not Pearl
  • Enter next, after a miss

Real mainnet addresses plus fresh ones made with the same bech32m code. Nothing is sent anywhere.

Levels

Best —

Runs in your browser · scores stay on this device src/lib/bech32m.ts · decodeAddress is the referee

How to play

You are the last check before a wallet sends coins. Addresses arrive one at a time, each with a short wallet scan underneath: the prefix and the network it names, the result of the checksum calculation, and how many bytes the address carries. Sort each one into a bin before the bar runs out:

  • Valid: a mainnet Pearl address, prl1p… or prl1z…, checksum fine.
  • Typo: a character is wrong, missing or extra. The checksum fails.
  • Wrong network: a real Pearl address for testnet (tprl1…) or regtest (rprl1…). Its checksum is fine, but mainnet coins sent there would never arrive.
  • Not Pearl: a Bitcoin address (bc1…), a witness-version-0 address (prl1q…) or one that carries the wrong number of bytes.

The prefix is readable at a glance. A typo isn’t, so you can wait for the scan or trust your eyes. Faster answers score more, three right in a row starts a combo, and three misses end the level. Each level shortens the clock, and in level 3 the scanner shows only the raw checksum result: 0x2bc830a3 is the number that means “bech32m, valid”.

Keyboard: 1–4 (or V, T, W, N) sort the address. After a miss, Enter moves on.

What’s real and what’s simplified

  • Real: the referee is the site’s own address decoder, which follows Pearl’s rules (bech32m only, prl, tprl and rprl prefixes, witness versions 1 and 2, 32-byte programs). The explanations you see are its error messages. The scanner runs the real BCH polymod over the address. The real addresses come from mainnet transactions; the others are encoded fresh in your browser from random bytes.
  • Simplified: the four bins are this game’s grouping. A wallet would just say “invalid” and quote the reason. Nobody controls the random addresses, so never send coins to one.
  • Bech32m is guaranteed to catch any single changed character. Dropping or adding a character is caught with overwhelming odds but not with certainty, and the game only deals typos that the decoder actually rejects.

Suggested

Up and down arrows move through the results, Enter opens one, Escape closes. Anywhere on the site, slash or Command K opens this search, and the square brackets [ and ] go to the previous and next page.