Ultimate Self-Custody Method for Generating Seed Phrase Using Dice

Crypto Cutie
4 min readJan 4, 2025

--

Many crypto holders, including very experienced ones, rely on wallets to generate the seed phrase. I also did it. But this question always stays in my head: how can I know the seed generated by Ledger/Trezor/etc. is truly safe? I have no idea how their internal generation process works. Is there enough randomness? Do they know the words generated?

If you have the same paranoia as me, this tutorial will show you how to self-generate a seed phrase using dice. When done correctly, this is the most secure, verifiable, and self-custody approach to seed generation. And it is easy!!

Before diving into the practical steps, a short review of basic concepts.

What Is a Seed Phrase?

A seed phrase (also known as a mnemonic phrase, or BIP-39 mnemonic) is a sequence of simple words that acts like the “master key” to your cryptocurrency wallet. Anyone with access to these words can control the associated crypto funds, so they must be kept secret and secure.

BIP-39 in a Nutshell

BIP-39 defines a standard way to generate and encode these mnemonic phrases. It uses a fixed list of 2048 English words (BIP-39 word list), each corresponding to an index 1…2048. A 12-word phrase encodes 128 bits (2^128) of randomness (plus a checksum), providing extremely strong security.

Entropy and Why Dice?

Entropy measures the randomness of your seed phrase. More randomness means higher security. By rolling dice, you create true physical randomness, ensuring no hidden software or hardware backdoor can interfere. This method is also performed completely offline, boosting security further.

The method I’ll describe uses the BIP-39 standard, which is the dominant approach for mnemonic seed phrases across many cryptocurrencies and blockchains (Bitcoin, Ethereum, Solana, etc.). Each wallet or chain may handle key derivation a bit differently, but the base seed phrase follows BIP-39.

Materials Needed

  • One 8-sided die
  • Two 16-sided dice
  • A printed BIP-39 word table (I use this one, credit to the author Valerio)
  • A paper
  • A pen
  • A flat surface in a private area

Preparation

When generating the seed for an important wallet, be mindful of your surroundings. It’s best to do this in a private, relaxed location — ideally at home — where nobody can observe your rolls or see your notes. Avoid windows, balconies, or any security cameras. The goal is absolute privacy.

Practical Steps

Step 1: Rolling the Dice

I use three dice:

Blue = 8-sided die

Purple = 16-sided die

White = 16-sided die

Each time I roll, I read the numbers in blue → purple → white order. The first number comes from the 8-sided die.

  1. Throw the three dice simultaneously.
  2. Record the result of each die, following the order blue → purple → white.

Step 2: Lookup in the Word Table

Use the table’s columns labeled “First,” “Second,” and “Third” to match your dice results. Each column represents the number you get from rolling the dice.

https://github.com/valerio-vaccaro/TRMG?tab=readme-ov-file#words-table

For example, the result 1–1–6 corresponds to the word absent. Write down that word.

Step 3: Repeat for 11 Words

For a 12-word seed phrase, repeat this process 11 more times, giving you a total of 11 words. Write each word carefully, double-checking the dice rolls and the table lookup.

Step 4: Get The 12th Word (Checksum)

The 12th word is special because it includes the checksum, a small piece of data that helps verify the entire mnemonic. If the checksum doesn’t match the rest, the seed phrase is invalid.

  1. Roll only the 8-sided die and one 16-sided die to get two numbers. For example, 2–5.
  2. In the table, you’ll see there are 16 possibilities for 2–5 (since the third die could be 1 through 16). Each corresponds to a different final word. You need to find which one is correct.

Determining the Correct 12th Word

Wallets only accept valid seed phrases (i.e., correct checksums). Therefore:

  1. Import your first 11 words into a wallet (hardware or software) to start the import seed phrase process.
  2. For the 12th word, systematically try each of the possible 2–5–X entries until the wallet doesn’t show an “invalid seed phrase” message.
  3. Whichever final word is accepted is your correct 12th word.

Since the purpose of dice-generating seed is for cold wallet, do this step in a hardware wallet. You can try using hot wallets as well, so as to practice before doing the real game.

Et Voila. Just as simple as that, you can create a complete self-custody wallet! Keep your seed phrase private and secure — this is your master key to your crypto holdings. With this method, you can be confident you’ve personally overseen the entire process from start to finish, maximizing both security and peace of mind.

--

--

Crypto Cutie
Crypto Cutie

Responses (1)