If you've ever created a crypto wallet, you've seen it happen: 12 or 24 words appear on your screen in a couple of seconds, and you're told to "write them down safely." That phrase is the master key to everything in that wallet — every coin, every token, every transaction history, forever. And yet almost nobody who uses one knows exactly how those words were chosen, or whether the process that chose them can be trusted.
This guide shows a different way to generate that phrase: using ordinary six-sided dice, offline, with a free open-source tool you can inspect line by line. No app store download, no account, no server involved at generation time.
Tool used in this guide: dice-to-seed — a free, open-source, single-file HTML generator.
Why Trust Dice Over Your Wallet's Built-In Generator?
Every crypto wallet app generates your seed phrase using a random number generator (RNG) running on your phone or computer. That RNG needs to produce numbers that are truly unpredictable — because if anyone could guess or reproduce them, they could reconstruct your seed phrase and steal everything the wallet holds.
The problem is that you can't see or verify that RNG. You're trusting:
- That the wallet app's code has no bugs affecting randomness
- That the device's operating system hasn't been compromised by malware
- That no one tampered with the app before you downloaded it
- That the hardware itself has no hidden flaws
Software RNG failures aren't theoretical. There is a well-documented history of wallets, apps, and cryptographic libraries shipping with weakened or predictable random number generation — sometimes by accident, sometimes not. Once a weakness like that is found, every wallet ever created with that flawed generator is retroactively at risk.
Physical dice sidestep this entire category of risk. A die sitting on your desk isn't running software. It can't be hacked, backdoored, or silently weakened by an update. Its randomness comes from physics — the chaotic, unpredictable way it tumbles and bounces — not from code you have to trust blindly.
This is the same principle used by high-security systems like Cloudflare's LavaRand which uses a wall of physical lava lamps as an entropy source specifically because physical, real-world randomness is harder to manipulate than anything purely computational.
What Problem Are We Actually Solving?
Three things, specifically:
1. Verifiable randomness. With dice, you watch the entropy get created. There's no black box between "the random event" and "the number you wrote down."
2. Air-gapped generation. The seed phrase never has to exist on a device connected to the internet at the moment of creation, closing off remote attack vectors entirely.
3. Auditable software. The tool that converts your rolls into words is a single open-source HTML file — anyone can read the code, verify it does exactly what it claims, and confirm nothing is sent anywhere.
What we are not solving: safe storage of the phrase afterward, protection against someone watching you roll, or protection against a compromised device that's used to display the words later. Dice generation is one link in the security chain — a strong one, but not the only one that matters.
The Standard Behind It: BIP39
The 12–24 word phrase format itself follows a specification called BIP39, used by virtually every major crypto wallet (Bitcoin, Ethereum, XDC, and most EVM-compatible chains included). BIP39 defines:
- A standardized list of 2048 English words
- How raw randomness (called "entropy") is mapped to those words
- A built-in checksum so a typo during recovery gets caught instead of silently creating the wrong wallet
Because it's a shared standard, a phrase generated by our dice tool restores correctly in any BIP39-compatible wallet — hardware wallets, MetaMask, Trust Wallet, and XDC-native wallets alike.
Step-by-Step: Generating Your Seed Phrase With Dice
What you need
- A fair six-sided die (a casino-grade die with sharp edges is ideal — avoid rounded "fun" dice, which can be subtly biased)
- A computer you can safely disconnect from the internet for a few minutes, or one that's genuinely air-gapped
- Pen and paper to record the final phrase
- The dice-to-seed tool: github.com/RushabhParmar12/dice-to-seed
Step 1 — Download the tool
Go to the dice-to-seed GitHub repository and download dice-to-seed.html. Because the tool is fully open-source, you (or anyone) can read through the code before running it — there's nothing hidden.
Step 2 — Move to an offline environment
Transfer the file to the computer you'll actually use to generate the phrase, then disconnect Wi-Fi and any Ethernet cable. This step matters: it guarantees the phrase can't leave the machine even if something unexpected happens.
Step 3 — Open the file in your browser
No installation needed — double-click dice-to-seed.html and it opens directly. The page will show a warning if it detects you're still online, as a reminder to disconnect first.
Step 4 — Choose your phrase length
The tool supports both:
- 24 words (256 dice rolls) — the maximum security level
- 12 words (128 dice rolls) — still fully secure and BIP39-standard, just a shorter phrase
Step 5 — Roll the die and enter each result
Roll your die and type the number (1–6) into the page as you go. Do this for all 256 rolls (or 128, for a 12-word phrase). As you type, a live grid on the page fills in — this is your entropy being generated in real time, so you can visually confirm the process is working correctly.
Behind the scenes, each roll becomes a single bit: odd numbers (1, 3, 5) become 0, even numbers (2, 4, 6) become 1. Since a die has exactly three odd and three even faces, this gives a perfectly balanced 50/50 result every roll — no bias toward any outcome.
Step 6 — Let the tool calculate your phrase
Once all rolls are entered, the tool automatically:
- Runs a standard checksum calculation over your entropy (this step uses your browser's built-in cryptographic function, not randomness — it's the same every time for the same rolls)
- Looks up each 11-bit group in the official BIP39 word list
- Displays your full recovery phrase
Step 7 — Write it down by hand
Copy the words onto paper — never a screenshot, never a note app, never a password manager during this step. There is no copy button in the tool, deliberately, to keep the phrase off the clipboard.
Step 8 — Verify independently before funding a wallet
This step is not optional if real funds are involved. Restore the same phrase on a hardware wallet, or a second independent BIP39 tool, and confirm both produce identical wallet addresses. Only fund the wallet after two independent methods agree.
Step 9 — Close the browser
The tool stores nothing — no history, no cache, no saved state. Closing the tab clears everything from that session.
Frequently Asked Questions
Is dice-generated randomness actually better than my wallet app's randomness?
It's not necessarily "better" in a mathematical sense — a properly implemented software RNG can also produce excellent randomness. The advantage of dice is verifiability: you don't have to trust code you can't see. For high-value wallets, treasury keys, or long-term cold storage, that verifiability is worth the extra effort.
Does this work for Bitcoin, Ethereum, and XDC Network?
Yes. BIP39 is a shared standard across virtually all major chains, including EVM-compatible networks like XDC. The resulting phrase restores identically wherever BIP39 is supported.
What if I make a mistake typing a roll?
The tool only accepts digits 1–6 and shows your progress live, so mistakes are easy to catch before finishing. If you do notice an error after generating the phrase, simply start over — dice are free and the process only takes a few minutes.
Is a 12-word or 24-word phrase better?
Both are considered cryptographically secure by current standards. 24 words offer a larger security margin and are generally preferred for high-value or long-term storage; 12 words are still standard and widely used.
Can I trust an HTML file I downloaded from the internet?
That's exactly why the project is open source — the code is fully readable on GitHub, so you (or someone you trust) can review exactly what it does before running it, instead of taking a claim on faith.
Try It Yourself
The full tool, source code, and technical documentation are available on GitHub:
👉 github.com/RushabhParmar12/dice-to-seed
It's free, open-source, and designed to be read before it's trusted.
Discussion (0)