| FUGUSEED-WORDS(1) | General Commands Manual | FUGUSEED-WORDS(1) |
NAME
fuguseed-words —
build the printed word sheet, and check a built
one
SYNOPSIS
fuguseed-words |
build list
[--date YYYY-MM-DD] |
fuguseed-words |
check sheet
list |
DESCRIPTION
fuguseed-words builds the printed word
sheet of a word list, and it proves a built sheet against that list. The
sheet is the address space of three dice: one throw selects one word of the
list, and the person does no arithmetic.
fuguseed-words sees no seed word. It reads
no word of a person and it prints none, so it can run on any computer. The
offline procedure that uses the sheet lives in
fuguseed(7).
Both verbs take a word list file.
fuguseed-words computes the SHA-256 of that file,
and it refuses every list but the English word list of BIP39.
fuguseed-words --help names
the path of the shipped list.
The build verb
fuguseed-words
build list writes the sheet as
HTML to standard output. The sheet is one standalone file: the build inlines
the style sheet.
The option --date
YYYY-MM-DD sets the build date of the two footers. Two
builds of one list on one date give one file, byte for byte. Without the
option, the build takes the date of the day, in UTC.
The check verb
fuguseed-words
check sheet
list proves that sheet is the
sheet of list. The verb reads the whole sheet as one
strict grammar, from the first byte to the last. It compares the inlined
style sheet with the shipped one byte for byte, and it compares each
caption, each header, and each of the 2048 cells with the text of its
position.
The verb is silent on success. On a failure it prints one line for each defect on standard error. A line names the offset of the first unexpected byte, or the block, the row, and the column of a cell.
The sheet
The sheet holds two sides for A4 paper. Side 1 holds the YELLOW blocks 1 to 4, and side 2 holds the YELLOW blocks 5 to 8. Each block is one table of 16 BLUE rows and 16 RED columns, so the eight blocks hold the 2048 words of the list.
Each side holds a legend that names the three dice, and a footer that names the side, the standard, the SHA-256 of the list, and the build date.
The print
Print the sheet on A4 paper, on both sides of one sheet, at 100 percent scale, and in color. The color of a label is a second name of the die: the captions are YELLOW, the column headers are RED, and the row headers are BLUE. A black print keeps the names, because each label holds the name of the color as a word.
Check the print against the file before you use it. Each table must hold 16 rows and 16 columns, and no word may run over two lines.
EXIT STATUS
- 0
fuguseed-wordswrote the sheet, or the check found no defect.- 1
fuguseed-wordscould not read a file, the list had another SHA-256, or the check found a defect.fuguseed-wordsprinted one line for each reason on standard error.- 2
- The command line held no verb, a wrong argument count, or a malformed
option value.
fuguseed-wordsprinted the usage line on standard error.
EXAMPLES
Build the sheet of the shipped word list:
$ fuguseed-words build english.txt > sheet.html
Build the sheet of one date, twice, and compare the two files:
$ fuguseed-words build --date 2026-01-01 english.txt > a.html $ fuguseed-words build --date 2026-01-01 english.txt > b.html $ cmp a.html b.html
Check a sheet before you print it:
$ fuguseed-words check sheet.html english.txt
SEE ALSO
STANDARDS
The word list comes from BIP39, the mnemonic code for the generation of a deterministic key. The sheet is HTML5.
AUTHORS
Dick Olsson <hi@senzilla.io>
CAVEATS
The check proves the sheet, not the print. A printer can drop a color, cut a margin, or scale a page, and no program sees that. Compare the print with the file.
| September 19, 2026 | OpenBSD |