nullcipher

Wallet recovery phrases (BIP-39 seed words)

12, 15, 18, 21 or 24 consecutive words from the 2,048-word BIP-39 English list whose checksum is valid; the whole phrase becomes one placeholder. Below: the exact rule, a live check, why it matters, and what to do if one already leaked.

Live check: Wallet recovery phrase

What an AI chat would receive after masking

# EXAMPLE: the all-zero test vector from the BIP-39 specification. Never use it for a wallet.
[RECOVERY_PHRASE_1]

1 × Wallet recovery phrase found and masked.

How nullcipher recognises it

12, 15, 18, 21 or 24 consecutive words from the 2,048-word English BIP-39 list, separated by spaces, line breaks or commas, whose built-in checksum is valid: the last word carries the first 4 to 8 bits of the SHA-256 hash of the other words' bits. Only 1 in 16 random 12-word runs passes, so ordinary sentences made of list words are left alone. The whole phrase becomes one placeholder.

This is the rule text of the “Wallet recovery phrase (BIP-39)” detector in the masking engine, copied from the engine when this page was built. Detectors run in a fixed order and, where two overlap, the earlier one wins.

Example (fake)

# EXAMPLE: the all-zero test vector from the BIP-39 specification. Never use it for a wallet.
abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about

nullcipher replaces it with [RECOVERY_PHRASE_1]. This phrase encodes 128 zero bits and is the first test vector in the BIP-39 specification, so it is public and anything sent to its addresses is taken within minutes. Change the last word to abandon and the checksum fails — try it in the box above.

Why it matters in an AI chat

The phrase is not a password to an account: it is the wallet. BIP-39 turns the words into the seed from which every private key and address of the wallet is derived, so anyone who reads the words can take everything in it, on every blockchain the wallet uses, and there is no bank to call.

How nullcipher tells a phrase from a sentence: each word stands for 11 bits, and the last bits are a checksum — the first ENT/32 bits of the SHA-256 hash of the rest, as the specification puts it (4 bits for 12 words, 8 for 24). A random run of 12 list words passes only 1 time in 16, and nullcipher checks it with its own SHA-256 code in your browser.

Limits: a phrase from another word list (Monero's 25-word seeds, non-English BIP-39 lists), a phrase with a typo in any word, or one written with numbers between the words (1. abandon 2. …) is not recognised. Phrases are pasted into AI chats when people ask for help recovering a wallet — which is also the favourite script of recovery scams.

If it already leaked

  1. Assume the wallet is compromised. Trezor's guidance for a backup that may have been compromised is to move your funds to a wallet with a new, never-exposed backup as soon as possible. [2]
  2. Create the new wallet first (a new recovery phrase, generated on your device), check it, then send everything from the exposed wallet to it. Deleting the chat does not help: the words can be copied from the conversation before you act. [2]
  3. Never type the phrase into a website, and ignore anyone who offers to recover funds if you share it; the specification's own design means the words alone are enough to spend. [1]

Sources

  1. BIP-39: Mnemonic code for generating deterministic keys — bitcoin/bips — checked 2026-09-25.
  2. Move crypto to a wallet with a new wallet backup — Trezor — checked 2026-09-25.

Open the full masking tool to mask a whole log, .env file or e-mail — every type at once — and restore the values in the AI's answer. Or see all 229 detectors, with a page for 46 secret types, and how to delete a chat you already sent.