free · 3 min readself-custody

test your seed backup: the recovery test nobody does

evergreen ·

nfa. education, not advice. not personal advice.

a seed phrase backup that has never been restored is a theory. many people only find out whether it works on the worst possible day.

the checklist

  • the words, in order, numbered. a bip-39 phrase has 12, 15, 18, 21 or 24 words (12 and 24 are most common) from a fixed list of 2,048. order matters. the last word partly carries a checksum.
  • spelling checked against the word list. in the english list, the first four letters identify each word. a word not on the list is a typo, but a mistake can also produce another valid word, so this catches only some errors.
  • the passphrase, exactly as stored. an optional passphrase (often called the “25th word”) creates a completely different wallet from the same words. it has to be typed exactly as stored, character for character: “Bitcoin” and “bitcoin” are two wallets, and so is a stray space. special characters that are hard to reproduce are a risk. a wrong one gives no error, just another, empty wallet. it needs its own backup, stored apart from the words and just as carefully.
  • the derivation path. the path tells software which addresses to derive. m/84’/0’/0’ is an example of an account path for native segwit bitcoin; the addresses sit below it (…/0/0, …/0/1 and so on). the wrong path shows an empty wallet even with the right words. it belongs in the notes, next to the wallet type.
  • a restore test on the right device only. a hardware wallet: a second unit you trust as much as the first, or the device’s own built-in backup check if it has one, as described in the manufacturer’s documentation. never reset your only device to test a backup. never a phone, a computer or a browser. a second test device gets wiped afterwards, unless it’s meant to stay as a backup device.
  • compare more than one address. with the same passphrase and path, the restored wallet should show the same extended public key (xpub) or the same first few addresses as the original. if they match, the words, passphrase and path recreate the same wallet. no funds need to move.
  • storage that survives. paper or metal, offline. never a screenshot, photo, cloud note or email. retest after any change.

hypothetical example (made-up person, made-up backup)

a person writes down 24 words and swaps words 13 and 14 by accident. years later the restore fails, or opens a wallet nobody recognises.

a test on day one would usually have caught it, through an invalid-phrase error or mismatched addresses, while the original wallet still worked.

where it leaks

  • a valid checksum proves a phrase, not your phrase. roughly 1 in 16 random errors slip through with 12 words, and 1 in 256 with 24. that’s why the address comparison matters.
  • online bip-39 tools are not test tools. a website or “validator” that takes the words is a common way phrases get stolen.
  • watch-only doesn’t test the seed. a watch-only wallet built from an xpub shows balances, but proves nothing about the written words.
  • not every seed is bip-39. electrum seeds and slip-39 (shamir) backups follow their own rules and can’t be restored as bip-39. the test has to match the standard actually used.
  • a passed test proves today, not forever. a working backup can still be lost or stolen.

the boxer’s rule, which is opinion: he digs up his bone every few days to check it’s still there. annoying, but he has never lost one.

what heirs need beyond a working backup is in what your family finds when you die.

nerd corner

  • bip-39: checksum = entropy length ÷ 32 bits, so 4 bits for 12 words and 8 for 24. the seed is pbkdf2 with hmac-sha512, 2,048 rounds, salted with “mnemonic” + passphrase. every passphrase produces a valid wallet (bip-39, english word list).
  • paths: bip-44 (m/44’/…, legacy) and bip-84 (m/84’/…, native segwit).
  • other formats: electrum seed versions · slip-39.

not financial advice. dyor. you can lose all of your money. interests: see /disclosure.

sources

  1. BIP-39: Mnemonic code for generating deterministic keys
  2. BIP-39 English word list
  3. BIP-44: Multi-account hierarchy for deterministic wallets
  4. BIP-84: Derivation scheme for P2WPKH (native segwit)
  5. Electrum docs: Seed version system
  6. SLIP-39: Shamir's secret-sharing for mnemonic codes

more on self-custody

topic page →