Producing private, provably secure randomness with an electronic
device is extremely challenging due to its black-box nature. A
seed phrase generated from unsound randomness is insecure, and a
flaw in the random number generation, whether intentional or
accidental, can take years to discover.
Penlock offers a simple and straightforward way to generate a
seed phrase by hand, eliminating any doubts about its security.
Components
In addition to printing and cutting the components linked below,
you will need a pen, a pencil, an eraser, and the wallet that
will store the seed phrase.
This worksheet can be used to generate, split, and recover a
seed phrase. However, if you do not intend to split your
seed phrase with Penlock, we recommend using the 12-word
recovery card provided by your wallet instead.
These tiles are used to generate random numbers. After
printing and cutting, ensure the value on the tiles is
identical on both sides. A detailed check of every tile is
not required; if the document was misprinted, none of the
tiles will be correct.
Procedure
Doing This Well
Prefer a private space where you won't be disturbed
Keep cameras and prying eyes away
Avoid pronouncing the results out loud
A. Generate the 11 first words
The first 11 words of a seed phrase are fully random and can be
generated without further processing. Each tile has a number and
a dot, and each word is tied to a number-number-dot combination.
Then:
Shuffle the tiles thoroughly and pick up a random tile.
On the wordlist, identify the column that starts with the
number on the tile (we ignore the dot for now).
Put the tile back, shuffle, and pick up a random tile again.
In the column you previously identified, find the word that
matches the number+dot combination on the tile.
On the worksheet, write down the first 6 characters under
the 'Seedphrase' section, respecting the gray & white
backgrounds coding.
Repeat steps 1 to 5 until you have generated 11 words.
B. Generate the 12th word
The last word is partly random but also contains a checksum that
depends on the previous words. We are going to select a random
group of 16 candidate words, out of which only one can be
accepted by the wallet. On the wordlist, these groups are
delimited by black horizontal separators.
Use the tiles to generate a random word, as previously
described.
On the wordlist, identify the 16-word group that this word
is part of.
On the wallet, initialize the recovery process and enter the
first 11 words, without the grayed characters (checksum),
and without the dashes (-).
For the 12th word, try each of the 16 candidate words until
one is accepted.
On the worksheet, write down the valid 12th word under the
'Seedphrase' section.