Making and keeping a recovery phrase safe — from broken randomness to borders
A recovery phrase can look fine and still be drained if the randomness behind it was weak. Real incidents including the 2026 Coldcard case, the safest way Prof. Oh Tae-min describes, the bitcoin community's extreme methods, hiding a seed, and crossing borders.
A 12- or 24-word recovery phrase is really one huge number written as words. Picked truly at random, no computer on Earth could guess it. But if the randomness behind it is broken, the phrase still looks fine while the number came from a tiny space an attacker can search.
The Coldcard incident (2026)
On 30 July 2026 Coinkite published a security advisory for its Coldcard hardware wallets.
- Cause — a 2021 build mistake made seed generation use a predictable software generator instead of the device’s hardware random number generator.
- How weak — preliminary estimates: about 40 bits for some Mk2/Mk3 firmware (4.0.1–4.1.9), about 72 bits for Mk4/Mk5 before 5.6.0 and Q before 1.5.0Q, against a 128-bit target.
- Losses — attackers recomputed weak seeds offline; about 594 BTC left roughly 500 wallets in the first 25 minutes, and cumulative estimates range from about 1,816 BTC to over 2,055 BTC.
- Advice — a firmware update does not fix an existing seed. Make a new one on fixed firmware, check backups and addresses, send a small test, then move the rest. Seeds made with 50+ fair dice rolls were not considered at risk from this bug.
Motion explainer Why weak randomness gets drained
After a firmware update: Does an update fix the old phrase?
Explainer Why weak randomness gets drained
1 / 5 · A huge number
12 recovery words are one picked number — one of 2¹²⁸ — too many to try with every computer on Earth
Possibilities
2¹²⁸ ≈ 3.4×10³⁸
Searching all
impossible
2 / 5 · Broken dice
Broken randomness shrinks the space — Some Coldcard devices: about 2⁴⁰ — small enough for attackers to search
Possibilities
2⁴⁰ ≈ 1.1 trillion
Searching all
feasible
3 / 5 · Predict
Update the firmware. Is the recovery phrase you already made safe now?
Think first, then show the answer
Answer: no change. Make a new phrase and move the coins.
No — make a new one and move the coins — A weakly made number stays weak. Updates only fix phrases made from now on
Possibilities
2⁴⁰ ≈ 1.1 trillion
Searching all
feasible
4 / 5 · By your hand
Add randomness by your own hand — About 50 dice rolls give 128 bits — on a device that never touches the internet
Possibilities
2¹²⁸ ≈ 3.4×10³⁸
Searching all
impossible once remade
5 / 5 · Recap
A phrase can look fine and still be weak — Where and how it was made decides how safe it is
Possibilities
2¹²⁸ ≈ 3.4×10³⁸
Searching all
impossible
Read the script — full text
- A huge number. Twelve recovery words are one picked number. One of two to the power of one hundred twenty-eight. Too many to try, even with every computer on Earth.
- Broken dice. But when randomness breaks, the space shrinks fast. Some Coldcard devices had about two to the power of forty. Small enough for attackers to search.
- Predict. Your turn to predict. You update the firmware. Is the recovery phrase you already made safe now? Answer: no change. Make a new phrase and move the coins. No. Make a new one and move the coins. A weakly made number stays weak. Updates only fix phrases made from now on.
- By your hand. So add randomness by your own hand. About fifty dice rolls give one hundred twenty-eight bits, on a device that never touches the internet.
- Recap. A phrase can look fine, and still be weak. Where and how it was made decides how safe it is.
The narration is synthesized speech.
Not just Coldcard
| When | What | What happened |
|---|---|---|
| 2013 | Android SecureRandom | Repeated signing randomness exposed private keys in Android wallets |
| 2014 | Blockchain.info | An update reused randomness; about 250 BTC stolen |
| 2015 | Brain wallets | Tools to crack human-made passphrases at scale (DEF CON 23) |
| 2022 | Profanity | Weak randomness in a vanity-address tool; blamed for a ~$160M hack |
| 2022–23 | Trust Wallet browser extension | Only ~4 billion possible phrases (CVE-2023-31290) |
| 2023 | Milk Sad (bx seed) |
32-bit internal entropy; at least ~$900K stolen (CVE-2023-39910) |
The safest way, as Prof. Oh Tae-min puts it
“There is no perfect way to store it,” he says (live, 13 Sep 2025) — but the closest is:
- Get a new laptop Be ready to throw it away.
- Install Python and run key-generation code yourself Make the key on your own machine, not someone else’s.
- Stay offline, and never turn that laptop on again
- Print on a dedicated printer, then destroy the printer
- Keep the paper somewhere safe from fire
- Test with a cheap coin first, and split large amounts across several addresses
The community’s extreme methods
| Method | Upside | Watch out |
|---|---|---|
| Dice entropy (50 rolls ≈ 128 bits, verified offline) | No need to trust the device’s randomness | Biased dice or a written record defeat it |
| Air-gapped devices (e.g. SeedSigner, offline BIP39 tool) | No remote attack path | You must verify the software yourself |
| Glacier Protocol (several new laptops cross-checking) | One device’s flaw is caught by another | Hours of hard procedure |
| Metal plates | Survives fire, water, corrosion | No protection against theft |
| Passphrase (25th word) | A leaked phrase still isn’t enough | Forget it and the coins are gone |
| Decoy wallet | Something to hand over under duress | Effectiveness unproven |
| Multisig across places and countries | Losing one key isn’t fatal | Complex setup and inheritance |
Hiding: dictionaries and memory
- Marking words in a book or dictionary — less obvious, and there is even a book built for it (“Novel Wallet”). But once the method is known it’s over, books get lost or given away, and heirs may never find it.
- Memorizing — nothing on your body to seize, but forgetting or dying loses it forever, and coercion can extract it. Never use a phrase you made up (brain wallets were cracked en masse); memorizing truly random words is different.
Crossing a border
In war or sudden upheaval, gold and cash are heavy, hard to hide and easy to take at a border. Bitcoin needs nothing on your body. In 2022 a young Ukrainian carried bitcoin to Poland on a USB drive and a paper seed and lived on it (CNBC); after August 2021, Afghan women paid in bitcoin used it to help their families escape.
- Don’t carry the phrase written down Paper, photos and phone notes are vulnerable to searches, loss and coercion.
- Spread backups before you leave Two or three trusted places, ideally in different countries.
- Keep a passphrase separately in your head
- Carry devices empty or nearly empty Reset the hardware wallet and restore on arrival.
- Restore on a new device and test with a small amount first
Stop if…
- someone gives you a ready-made recovery phrase, or one comes pre-printed in the box
- you’re asked to save the phrase in photos, notes apps, email or the cloud
- a website asks you to type your phrase
- someone says a firmware update makes an old seed safe
Check yourself
Get them right to add a block to your chain
-
Q1After the Coldcard incident, does a firmware update make an old recovery phrase safe?
A number made with weak randomness stays weak. The maker advised a new seed on fixed firmware, a small test transfer, then moving the rest.
-
Q2About how many dice rolls give 128 bits?
One roll is about 2.585 bits; 128 ÷ 2.585 ≈ 50.
-
Q3Is a phone photo of your recovery phrase a good backup?
Phone photos are usually backed up to the cloud automatically. Keep the phrase off every digital medium.
Sources
- Coinkite · COLDCARD security advisory (seed generation) · 2026-07-30
- Coinkite · Entropy technical backgrounder · 2026-07-30
- TRM Labs · The largest hardware wallet exploit of 2026 · 2026-08-05
- NVD · CVE-2023-39910 (Milk Sad)
- NVD · CVE-2023-31290 (Trust Wallet browser extension)
- COLDCARD docs · Verifying dice roll math
- Jameson Lopp · Metal seed storage stress tests
- Trezor · Passphrases and hidden wallets
- Live (Korean) · No perfect storage — be ready to throw away a laptop · 2025-09-13
- CNBC · Ukrainian flees to Poland with bitcoin on a USB drive · 2022-03-23
Found a mistake or a policy that changed? Tell us by email →