Creating a Secure Bitcoin Wallet, using Dice
Overview
Each Bitcoin wallet can be uniquely described by a seed phrase. So if you make a seed phrase, you have a wallet address (the odds of you generating a seed phrase for an existing wallet are tiny).
A 24 word BIP39 seed consists of 23 words, randomly selected from this list, and a 24th word. The 24th word is a ‘check word’. The constraints on this final word make it a little trickier to come up with, but luckily our BitBox02 takes care of helping you choose that one. If you have an air-gapped computer, you can also use the python code in our GitHub Repository.
Because of this, our problem is reduced to choosing 23 truly random words that cannot have been influenced by a computer. These words will never be exposed to a computer that connects to the internet, so can’t be hacked.
(disclaimer: if you’re trusting a hardware wallet, you should probably also trust the random seed it generates. However this is fun, and there is something reassuring about relying on the clatter of dice for a bit of analog entropy)
You’ll need:
six-sided dice (ideally precision dice)
a pencil and paper
the ability to add numbers, or a pocket calculator
a printout of the bitcoin BIP39 list, or a browser pointed at the list on Github (scroll to find words….. no ‘find’ command - remember the typing stuff into the computer rule?)
IMPORTANT: Do not type the words into an internet-connected computer. Do not photograph the words using your phone.
Method
Throw your dice and follow the method in the diagram 23 times. Write those 23 words down on your piece of paper.
The 24th word is a checksum word, and must be calculated from the 23 random words. Follow the instructions on our GitHub repository.
The 24 words that you generate should never be entered on a computer that is connected to the internet.
Conclusion
Generating a genuinely random wallet seed is massively important. Now that you’ve got one, you need to keep it safe. Next step: Etching the seed words onto metal. There’s instructions and a video about how to do that in our next post (link at the bottom of this page).