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, it is calculated using the Python script 24thword.py.
This repository contains a pdf and a few lines of python code. The pdf contains both the instructions for making your seed phrase and the BIP39 list (English in pdf and English and Japanese in code).
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 files you'll need.
Print this pdf and grab
- a pen,
- a pocket calculator (optional and depending on your mental arithmetic skills),
- some dice.
You're now ready to generate the first 23 words. Follow the instructions in the pdf.
To determine the final 24th word, on an OFFLINE machine, edit rolls.txt
and replace the words with the 23 that you chose using dice. Then run:
python3 24thword.py
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
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/
The words that you generated need to be stored in a secure way, here's a video of one method:
The Python code for 24th word was based on avsync/bip39chk
GPL 3.0