Tool · Keys & addresses
Bech32m explorer
Take a prl1 address apart, and watch its checksum catch a typo
What it does
Paste an address, or pick a real one from mainnet. The explorer colors every character by its role, shows each letter’s 5-bit value, and decodes the parts. Press Make a typo, or click any letter, and the checksum check fails. In Encode mode, build an address from a 32-byte program, a version and a network prefix.
How to read it
- Prefix (HRP):
prlfor mainnet,tprlfor testnet,rprlfor regtest. The last1separates it from the data. - Version: the first data letter.
pis 1 (Taproot) andzis 2 (P2MR). - Program: the next 52 letters carry 260 bits: 32 bytes plus 4 zero bits of padding. For Taproot it’s the output key Q; for P2MR it’s the Merkle root of the script tree.
- Checksum: the last 6 letters. Any mistake in up to four characters is always caught; bigger mistakes slip through less than once in a billion tries.
- Show every step runs the decoder one check at a time and stops at the first failure.
Pearl specifics
- Pearl accepts bech32m only, and only two kinds of address: witness version 1 (
prl1p…, Taproot) and version 2 (prl1z…, P2MR), each with a 32-byte program. There are noprl1q…, base58 or Bitcoin addresses, and the explorer says why when you paste one. - The alphabet leaves out 1, b, i and o, characters that are easy to mix up with others (and 1 is the separator).
Under the hood
Runs entirely in your browser. Decoding, encoding, the checksum and every message come from
src/lib/bech32m.ts, which mirrors pearld’s address rules. Its unit tests include the research vectors, the
decoder behaviour of pearld’s own btcutil, and a property test that every single-character substitution in a
real address is detected.