Generate a Seed Phrase

Learning time: ~10 minutes              Execution time: ~20 minutes

Introduction

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.

Worksheet-12.pdf, Worksheet-18.pdf, Worksheet-24.pdf (double-sided)

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.

Wordlist.pdf

This file contains the standard wordlist used by most wallets. Each word has been prefixed with a 2-character checksum (the grayed characters).

Tiles.pdf (double-sided)

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:

  1. Shuffle the tiles thoroughly and pick up a random tile.
  2. On the wordlist, identify the column that starts with the number on the tile (we ignore the dot for now).
  3. Put the tile back, shuffle, and pick up a random tile again.
  4. In the column you previously identified, find the word that matches the number+dot combination on the tile.
  5. On the worksheet, write down the first 6 characters under the 'Seedphrase' section, respecting the gray & white backgrounds coding.
  6. 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.

  1. Use the tiles to generate a random word, as previously described.
  2. On the wordlist, identify the 16-word group that this word is part of.
  3. On the wallet, initialize the recovery process and enter the first 11 words, without the grayed characters (checksum), and without the dashes (-).
  4. For the 12th word, try each of the 16 candidate words until one is accepted.
  5. On the worksheet, write down the valid 12th word under the 'Seedphrase' section.