In Roll Your Own we covered why dice are the one seed generation method you can verify end to end, and why last week's hardware wallet incident makes that worth fifteen minutes of your time. This is the companion piece: the actual steps, written for someone doing it for the first time. No maths, no jargon.
What you need
- One or more six-sided dice. Casino dice, the sharp-edged translucent kind, are machined to be fair and cost around a dollar each. Search any game store or Amazon for "19mm casino dice", or grab a purpose-made set like the Little Box of Entropy, fifty dice sold specifically for seed generation. A board game die is probably fine, but its scooped-out dots make it slightly unbalanced. For real money, buy the good ones.
- Pen and paper. Not your phone, not a notes app.
- Something that turns dice into words. Covered in Step 3, with options whether or not you own any hardware yet.
- A hard, flat surface, ideally with something for the dice to bounce off.
- Optional but smart: a metal backup for the final words, like a Cryptosteel or a SeedHammer plate. Paper burns and fades; stamped steel survives a house fire.
Step 1: Roll 100 times
That is the whole rule. Not 20, not 50. One hundred rolls covers every seed length on every mainstream tool with margin to spare, so you never have to think about it again. Roll one die 100 times or twenty dice five times, either works.
While you roll:
- Roll properly. Shake them, let them bounce and tumble. Don't place them down gently.
- Take whatever comes up. Six 6s in a row is a perfectly normal random result. Write it down. Re-rolling results that "look wrong" is the most common way people quietly weaken their own seed.
- Don't rearrange the dice after they land, and decide before you start how you'll read multiple dice: left to right, top to bottom, then stick to it.
Step 2: Write them down correctly
Write your rolls as one unbroken line of digits. No spaces, no dashes, no tidy groups of five.
This looks like fussiness. It is not. Your device hashes exactly what you type, and a space is a character. Type 1 2 3 instead of 123 and you get a completely different wallet. Worse, tools disagree about separators: some strip them, some hash them. Write one long line of digits and enter it the same way everywhere, and the problem never exists.
Step 3: Turn the rolls into words
You need exactly one of the following. Pick based on what you own or want to own. The first three all convert dice the same way, so any of them can double as the verification tool for any other in Step 4.
Option A: a SeedSigner. Our favourite tool for this job. Dice are its only entropy source, it has no storage so it forgets everything at power off, and it costs about fifty dollars in off-the-shelf parts. On the device: Tools, then New Seed with the dice icon, then 24 words. It asks for exactly 99 rolls; use your first 99 and ignore the spare, it makes no difference.
Option B: a Keystone. A ready-made hardware wallet with a dice mode built into wallet creation, and the company publishes how to verify the result yourself.
Option C: no hardware at all, using a free offline tool. Ian Coleman's BIP39 converter is open source and runs entirely in a browser page with no internet needed. The concrete steps:
- On any computer, download
bip39-standalone.htmlfrom the official releases page. It is a single file. - Copy it to a USB stick and move it to a computer with Wi-Fi off and ethernet unplugged. Ideally an old laptop that never goes back online; at minimum, disconnect before the next step and reboot after.
- Open the file in a browser. Tick Show entropy details, choose Dice as the entropy type, set Mnemonic Length to 24 words, and type your rolls into the entropy box.
- Your 24 words appear in the BIP39 Mnemonic field. Write them down on paper, nothing digital.
Option D: a Coldcard, if one is already in your drawer. The dice path was never affected by the recent bug, so it still works fine as a converter: New Seed Words, Advanced, 24 Word Dice Roll. Write down the words; you can wipe the device afterwards and use any wallet you like.
No dice option on the wallet you actually use? That rules nothing out, and this is the part most guides miss. A Trezor or Ledger will happily accept the words from any option above through its normal "restore from recovery phrase" flow, because seed words follow a standard every wallet implements. Generate with A, B, C or D, then import into the wallet you trust. We covered why this works in Roll Your Own, and the full wallet-by-wallet guide has exact import menus for each brand.
Step 4: Verify before you fund
Two checks, in this order.
Check the conversion. While you still have the paper with your rolls, enter them into a second, independent tool and confirm it produces the exact same words. This is the check that catches a broken or dishonest device. Restoring the words alone can never catch that, because it only proves the words make a wallet, not that your dice made those words.
Concretely: if you generated on a SeedSigner or Keystone, the offline Ian Coleman page from Option C is your second tool, and the words must match exactly. If you generated on the Ian Coleman page, a SeedSigner is the ideal cross-check. For extra diligence, or if you're comfortable with a terminal, Coinkite publishes a public-domain Python script that does the same conversion with no hardware and no internet: download rolls.py, then on an offline machine run echo YOURROLLS | python3 rolls.py and compare the words it prints. Any two of these tools agreeing is your proof; all three agreeing is overkill in the best way.
Test the backup. Wipe the device, restore it from the words you wrote down, and confirm it shows the same first receiving address as before. If you compare addresses across two different wallets, make sure both use the same account type and derivation settings, or the same valid seed will show different addresses and you'll conclude something is broken when nothing is.
Then send a small amount, confirm it arrives, and only then move the rest.
Step 5: Keep the words, destroy the numbers
Once both checks pass, the words are your wallet. Write them on paper or stamped metal and store them somewhere safe. Never photograph them, never type them into anything connected to the internet. And burn the paper with the dice rolls: anyone holding it can recreate your wallet exactly.
The five ways people ruin this
- Typing dice rolls into a website. Any website, ever.
- Spaces or grouping when writing the numbers down.
- Re-rolling results they don't like.
- Photographing the dice, the rolls, or the words. Cloud sync copies your wallet to someone else's computer.
- Keeping the rolls after the checks pass.
Avoid those five and you have something rare in Bitcoin custody: a wallet where you personally witnessed and verified every step that created it. That is the standard we think self-custody should be held to, and it costs ten dollars and fifteen minutes.
For the deeper material, entropy numbers, verification scripts and the firmware bug that started all this, see the technical guide.

