Generate a Seed Phrase Using Dice: A Secure Offline Method for Crypto

·

In the world of cryptocurrency, your seed phrase is the master key to your digital assets. If compromised, it can lead to irreversible loss. While most wallets generate seed phrases automatically, relying on software-based random number generators (RNGs) introduces potential vulnerabilities. A more secure alternative? Generate a seed phrase using dice—a completely offline, air-gapped method that eliminates digital attack vectors.

This guide walks you through a trusted, manual process to create a BIP39-compliant 12-word seed phrase using only physical dice, pencil, paper, and a BIP39 word list. By removing computers from the initial entropy generation, you ensure true randomness and maximum security.


Why Use Dice for Seed Phrase Generation?

Traditional wallet-generated seed phrases depend on pseudo-random number generators (PRNGs), which are deterministic algorithms running on potentially compromised devices. Even if your device is clean today, future exploits could expose past-generated keys.

Using dice bypasses all digital vulnerabilities:

👉 Discover how secure crypto storage begins with true randomness.


How Random Is Rolling Dice?

Rolling dice is a time-tested method of generating unpredictable outcomes. Each throw involves countless variables: hand motion, surface friction, air resistance, and die balance. Even with perfect technique, replicating the exact same result repeatedly is practically impossible.

Casinos rely on this principle daily. If dice rolls weren’t effectively random, games like craps wouldn’t be viable. The unpredictability of physical dice makes them ideal for cryptographic entropy generation—especially when you need provable randomness free from algorithmic flaws.

Entropy per Roll

To meet BIP39 standards, we need 128 bits of entropy plus a 4-bit checksum, totaling 132 bits across 12 words (each representing 11 bits).

Using the following dice setup:

Each roll yields approximately 10.97 bits of entropy, which over 12 rolls comfortably exceeds the required threshold. The slight deficit (~0.03 bits per word) is negligible and doesn’t compromise security.


What You’ll Need

Before starting, gather these essential items:


Step-by-Step: Generating Your Seed Phrase

Step 1: Establish Reading Rules

Consistency eliminates bias. Decide in advance how to read each die:

Stick to this order for every roll.

Step 2: Understand the Dice Rules

🔹 Indicator Die Rule

If the indicator D20 shows 1, ignore the second D20’s result. This simulates lower probability values in the 1–2048 range (~4.8%), aligning closely with statistical needs.

🔹 D20 Value Rule

If the indicator is not 1, use the second D20’s result (1–20) as the first two digits of your BIP39 index (e.g., 8 → "08").

🔹 D100 Rule

The two 10-sided dice form a number from 00 to 99, representing the last two digits of your word index.

Example:

  • Indicator: 3 (not 1 → valid)
  • D20: 8 → "08"
  • D100: 79 → "879"
    → Word #879 from BIP39 list

Another example:

  • Indicator: 1 → disregard D20
  • D100: 29 → "0029" → Word #29

👉 Learn how offline generation protects your crypto from digital threats.


Step 3: Roll and Record (12 Times)

Repeat this process 12 times:

  1. Roll all dice.
  2. Apply rules to determine word index.
  3. Write down the full four-digit number (e.g., 0879).
  4. Find the corresponding word on the BIP39 list.
  5. Record words in order—do not rearrange.

Order matters. Rearranging reduces entropy and invalidates the cryptographic structure.


Calculating the Checksum: Finalizing Your Seed Phrase

The 12th word isn’t fully random—it includes a 4-bit checksum derived from the first 11 words’ entropy. Since your initial 12th word was guessed, it likely fails validation. Here’s how to fix it.

Option 1: Guess the Correct Last Word

You already have the first 11 words and an approximate 12th. Because BIP39 uses 2048 words grouped into 16-word segments with matching checksum prefixes, only one of 16 possible words will validate correctly.

Use a Hardware Wallet

This keeps your seed phrase entirely offline.

Use an Offline Mnemonic Tool

Tools like Ian Coleman’s BIP39 Converter are open-source and trusted—but must run offline. Load it via Tails OS or disconnected browser.

Enter your 11 words + each candidate last word until validation passes.


Option 2: Run a Checksum Script (Advanced)

For technical users, run this script in an offline browser console:

function checksum12words(data) {
  if (data.length != 12) return console.log("ERROR: Need 12 word numbers")
  let binstr = (s,l=8) => s.toString(2).padStart(l,'0')
  let tohex = (bytes) => bytes.map(x => x.toString(16).padStart(2,'0')).join('')
  let bytes = data.map(x => binstr(x - 1, 11)).join('').match(/.{1,8}/g).map(x => parseInt(x, 2))
  if (bytes.length != 17) return console.log("ERROR: Check input")
  bytes.pop()
  console.log("Entropy:", tohex(bytes))
  window.crypto.subtle.digest("SHA-256", new Uint8Array(bytes).buffer).then(x => {
    let hash = new Uint8Array(x)
    let cs = binstr(hash[0]).substr(0,4)
    let bits = binstr(bytes[15]) + cs
    console.log("Correct 12th word index:", 1 + parseInt(bits.substr(1), 2))
  })
}

Then input your numbers:

data = [879, 502, 962, ..., 29] // Replace with your 12 indices
checksum12words(data)

Output gives you the correct final word index.

After use:


Post-Generation Security Protocol

Once you have your valid seed phrase:

  1. Write it down permanently on a metal backup or secure medium.
  2. Destroy all paper traces: Burn or shred every note containing rolls, numbers, or partial phrases.
  3. Wipe any temporary digital files.
  4. Store backups in geographically separate locations.

Your seed phrase should exist only in secure, tamper-evident storage—not on sticky notes, phones, or cloud drives.


Frequently Asked Questions (FAQ)

Q: Can I use regular household dice?
A: Yes, but verify balance using the saltwater test. Imbalanced dice may skew results and reduce entropy quality.

Q: Why can’t I just use software RNG?
A: Software relies on PRNGs that may have hidden flaws or backdoors. Physical dice offer verifiable, non-deterministic randomness.

Q: Is this method compatible with all wallets?
A: Yes—BIP39 is standard across most hardware and software wallets (Ledger, Trezor, MetaMask, etc.).

Q: How long does it take?
A: About 30–45 minutes including setup and verification.

Q: Can I generate more than one word per roll?
A: Yes—by using multiple full sets of dice (e.g., three sets for three words per roll), you can speed up the process.

Q: Do I need internet at any point?
A: Only if downloading tools beforehand. The actual generation and checksum calculation must be done offline.


Core Keywords

👉 Secure your crypto future with proven offline methods.