Roll your own seed
A recovery phrase built from entropy you can see, not randomness you have to trust.
A recovery phrase is only as strong as the randomness underneath it. A hardware wallet asks you to take that randomness on faith, and when its randomness fails, seeds can be far weaker than the label promises. A die has no firmware to fail. Roll one by hand and you become the source of entropy, while this page does nothing but the arithmetic, in front of you, with no request sent anywhere.
Turning dice into a BIP‑39 phrase is an open, well documented procedure, not something unique to any one device, so the words below can be reproduced and checked on independent tools. Supplying your own entropy this way is precisely the step a randomness bug in any wallet cannot weaken, because the randomness comes from your hand rather than the device. Treat this as an educational, self custody exercise rather than a replacement for a vetted hardware wallet.
Dice entropy to BIP‑39 phrase
Roll one six‑sided die and type each result. Your rolls are hashed with SHA‑256 to condition the entropy uniformly, then mapped onto the official 2048‑word list. Everything is computed in this browser.
Your recovery phrase
12 words · 128‑bitHow it works, and how to check it yourself
The steps are deliberately simple, so you never have to trust a black box:
- Your roll digits are joined into a plain string, for example
416253361… - The page takes
SHA-256of that string. Hashing distributes whatever randomness your rolls contain evenly across the output. SHA-256 cannot create entropy that isn't there — a fair die with enough rolls is what provides the security. - The first 128 or 256 bits become your entropy. A standard BIP‑39 checksum is appended, and the bits are split into groups of 11 that index the 2048‑word English list.
To verify the result in Ian Coleman’s BIP‑39 tool: open an offline copy, enable "Show entropy details", set entropy type to Raw/Advanced, and paste the entropy hex that appears below your phrase after generating. You should get the exact same words. Note: Ian Coleman’s "Base 10" or "Dice" modes use a different derivation and will not match — only the raw entropy hex will.
On startup the tool verifies itself against the published BIP‑39 test vectors and refuses to generate anything if a check fails.
The exact code that runs on this page
These are the real functions executing in your browser, printed live from the running page, so what you read is what runs. The entire page, including the full 2048‑word list and the fallback hashing routine, is visible with your browser’s View Source (Ctrl+U, or Cmd+Option+U on a Mac). Hashing itself uses the browser’s built‑in SHA-256 through crypto.subtle, with a verified pure‑JavaScript routine as a fallback.
Loading the running code…
Run it offline, air‑gapped
This page contacts no third party at all — no fonts, no analytics, no CDN. Its typefaces are embedded in the file itself, and the generator sends no requests of its own. To remove all doubt, run it with no network at all:
- Save this page to disk: press Ctrl+S (Cmd+S on a Mac) and choose "Web Page, Complete" so the styles are saved alongside it.
- Copy the saved file onto a device that will stay offline, for example an old laptop or a spare phone kept in airplane mode.
- Turn off Wi‑Fi and unplug any network cable.
- Open the saved file by double‑clicking it. The address bar will begin with
file://and no server is involved. - Roll your dice, generate the phrase, and write the words on paper. The startup self‑test confirms this implementation matches the BIP‑39 standard for known test vectors — it detects implementation errors, not page tampering. A malicious modification could still pass the test, which is why independently verifying the file hash matters.
You can prove the silence for yourself: open your browser’s developer tools, watch the Network tab, and generate a seed. Nothing is requested.