Seed phrase generators: why not to use one, and the dice method
A seed phrase is only as safe as the randomness that made it, and a website is the worst place to get randomness.
Do not use an online seed phrase generator for real bitcoin. The site can keep a copy of your words, and browser and software generators have produced guessable seeds before. Let a hardware wallet generate the seed phrase offline, or make your own randomness with dice: SeedSigner builds a seed from 50 rolls (12 words) or 99 rolls (24 words), and Jade calculates the final checksum word after you dice the rest.
Disclosure: I work at Blockstream, the company that makes the Jade wallets mentioned here. I joined after many years as a satisfied user. There are no affiliate links on this site.
Why online seed phrase generators are unsafe
A seed phrase generator website shows you 12 or 24 words in a browser tab. Two things can go wrong, and you cannot check either one from your side of the screen.
First, the site can keep a copy. The words are made by code the site controls, on a page it can change at any time. It can send the words to a server, or generate them from a list it already holds. Your wallet then looks normal until the day it is emptied.
Second, the randomness can be weak even when nobody is malicious, and this has happened at scale. Unciphered disclosed that wallets generated with BitcoinJS and projects built on it between 2011 and 2015 could have weak randomness, caused by a JavaScript random number library combined with weaknesses in how browsers implemented Math.random(). In 2023, the Milk Sad researchers found that the bx seed command in Libbitcoin Explorer 3.x produced seeds from only 32 bits of clock time. That is about 4.29 billion possibilities, which they say a gaming PC can search in a few days at most. Attackers did that on July 12, 2023, and one actor took about 29.65 BTC.
Ian Coleman's BIP39 tool, which SeedSigner's own docs point to, warns against making up your own randomness. Its page says: "You are not a good source of entropy."
Do not make up your own words either
Picking 12 words you like, or using a song lyric or a line from a book, gives you a predictable phrase, and attackers build their guess lists from the things people pick. Ian Coleman's tool lists them: phrases from books, song lyrics, birthdays, street addresses, and keyboard mashing.
The last word of a BIP39 seed phrase also contains a checksum. A list of words you chose yourself will usually fail that check, and a wallet will reject it.
Option 1: let the hardware wallet generate it
For most people this is the right answer. A good hardware wallet generates the seed phrase offline, shows it on its own screen, and never sends it anywhere. Jade, for example, mixes several sources when it creates a seed: CPU counters, battery state, ambient temperature, camera images taken during boot, its hardware random number generator, and entropy from the Blockstream companion app.
A device generator can still fail. Coldcard is delisted on this site after its 2026 seed-generation flaw. If you would rather not trust any device with that job, generate the randomness yourself with dice.
Option 2: the dice method on SeedSigner
SeedSigner, my top pick on the wallets page, takes dice rolls directly. It also forgets everything when you unplug it, so the seed exists only on your written backup.
- 1Get a fair six-sided die and check it for chips or damage, since a biased die weakens the seed. Roll on a flat surface, in private, with no camera or phone pointed at the table.
- 2Power on SeedSigner, open the Tools menu, and select New Seed (the option with the dice symbols).
- 3Choose 12 words (50 rolls) or 24 words (99 rolls).
- 4Roll and enter every result in order, including the ones you do not like, because re-rolling a result on purpose biases the seed.
- 5Write down the words SeedSigner shows you, in order, then copy them to metal. My backup guide covers how.
- 6Optional: SeedSigner's documentation explains how to check its dice-to-words math with Ian Coleman's or Bitcoiner.Guide's tools. For a real seed, it says to do this only on an air-gapped, ephemeral computer such as one booted from Tails, never on an internet-connected one.
Each roll of a six-sided die carries about 2.58 bits of randomness, which is where 50 and 99 come from: 50 rolls give about 129 bits, enough for a 12-word seed (128 bits), and 99 rolls give about 256 bits, the size of a 24-word seed. SeedSigner can also build a seed from camera images if you would rather not roll 99 times.
Option 3: the dice method with Jade
With Jade, the rolling happens off the device. Blockstream publishes an offline guide that turns dice, coins, or playing cards into BIP39 words, and Jade does the one step that is tedious and error-prone by hand: the final checksum word.
- 1Pick a method from Blockstream's offline guide. Options include a single six-sided die, eight-sided dice, a set of two 16-sided dice and one 8-sided die that produces one word per set of rolls, coin flips, and playing cards.
- 2Roll and look up 11 words (for a 12-word seed) or 23 words (for a 24-word seed). Each word is an 11-bit number between 0 and 2,047, read from the guide's table.
- 3On Jade, go to Setup Jade, then Advanced Setup, then Restore Wallet, then 12/24 Words. (Blockstream also lists a second path: Options, then Temporary Signer, then 12/24 Words.)
- 4Enter your 11 or 23 words and select Calculate. Jade's keyboard accepts only final words that produce a valid checksum. Pick one, or click through and Jade picks one at random.
- 5Write down all 12 or 24 words and back them up before you fund the wallet.
The final word is restricted because part of it is checksum. With 12 words, 128 of the 2,048 possible final words are valid, and with 24 words, only 8 are. Blockstream's offline guide does that step with a separate offline, trusted BIP39 tool, so Jade's built-in calculation is the simpler path.
Which method to pick
| Method | Who makes the randomness | What you are trusting |
|---|---|---|
| Online generator website | The website | The site, its server, and your browser. Do not use it. |
| Words you choose yourself | You | Your ability to be unpredictable. Do not use it. |
| Hardware wallet generates it | The device | The device's random number code and hardware |
| Dice on SeedSigner | You, with dice | Fair dice and SeedSigner's open-source conversion |
| Dice with Jade final word | You, with dice | Fair dice, the lookup table, and Jade's checksum step |
Dice take longer, and they remove the device's random number generator from the list of things that can fail. A hardware wallet and dice are both far better than any website.
Frequently asked questions
Is it safe to use an online seed phrase generator?
No, not for real bitcoin. The site can log the words or generate them from a list it already has, and browser-based generators have produced weak seeds before. Use a hardware wallet or dice instead.
Is Ian Coleman's BIP39 tool safe to generate a seed phrase?
It can run offline from a saved file, but it still runs on a general-purpose computer. Use it to check math on an air-gapped computer, as SeedSigner's docs suggest, and let a hardware wallet or dice produce the seed you fund.
How many dice rolls do I need for a 24-word seed phrase?
On SeedSigner, 99 rolls of a six-sided die for 24 words, or 50 rolls for 12 words. With Blockstream's offline guide, the count depends on the dice you use, since you build 23 words and let Jade calculate the 24th.
Can I make up my own seed phrase?
You should not. Human-chosen words are predictable, and they usually fail the BIP39 checksum. If you want control over the randomness, use dice and let the device calculate the last word.
Why does the last word of a seed phrase have to be calculated?
The final word carries a checksum that lets wallets catch typos. With 12 words only 128 final words are valid, and with 24 words only 8, so a randomly chosen last word usually fails: it works 1 time in 16 with 12 words and 1 time in 256 with 24.