Skip to content

Generate a Bitcoin Wallet Seed Phrase using dice (and a few lines of Python)

License

Notifications You must be signed in to change notification settings

veebch/Bip39-Dice

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Generate a Bitcoin Wallet Using Dice

outline

YouTube Channel Views

Overview

These tools guide you through offline dice-throwing generation of a 24 word seed for a Bitcoin Wallet. The first 23 words are generated using paper and the glorious randomness of dice. Because the 24th is a checksum word, a list of 8 valid candidate words are calculated using the Python script 24thword.py.

The PDF file contains both the instructions for making your seed phrase and the BIP39 list.

To get all the files you'll need, clone this repository with the command

git clone https://github.com/veebch/Bip39-Dice.git

You now have a directory called BIP39-Dice that contains all the required files.

Step 1: First 23 Words

Print this pdf and grab

  • a pen,
  • a pocket calculator (optional and depending on your mental arithmetic skills),
  • some fair dice (Casino Dice are good).

You're now ready to generate the first 23 words. To do so, follow the instructions in the pdf.

Step 2: The Final (24th) Word

To determine the final 24th word, copy the files to an OFFLINE machine, then run:

python3 24thword.py

Enter the 23 words, separated by spaces and hit 'Enter'.

You will be given a list of 8 valid 24th words. Pick one of the 8 words (eg by rolling 3 dice using and using the method above to get a number between 1 and 8 (1+1+2+4)), write your chosen word with the other 23. This is a valid wallet seed, and you can use it with Electrum or some other wallet application.

If you don't have an airgapped (permanently offline) machine, you could use seedsigner.

For more information on how words become seeds, see: https://learnmeabitcoin.com/technical/mnemonic

Step 3: Receiving/ Sending Funds

To receive money to the wallet. You'll need an address (derived from your xpub). To send, you'll need your private key. The keys you'll need to do both of these things can be derived using an offline version of the page https://iancoleman.io/bip39/

Step 4: Storing Your Seed Phrase - Video

The words that you generated need to be stored in a secure way, here's a video of one method:

Alt text

There's a review of other metal seed storage solutions on Jameson Lopp's page

Nothing is Original

The Python code for 24th word was taken from avsync/bip39chk

Further Reading

An excellent article on the practical difficulties of 'Don't Trust, Verify': Finding the Bottom Turtle by David Anderson

License

GPL 3.0

About

Generate a Bitcoin Wallet Seed Phrase using dice (and a few lines of Python)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages