The Two-Envelope Plan · Edition 2026.11
Check this file
Before you print the kit or pass it on, you can check that your file is exactly the one Knowing Bitcoin published. There are three checks, each a short command in a terminal, the window where you type commands.
Words on this page
- A checksum is a short fingerprint calculated from every byte of a file. If one byte of the file changes, the checksum changes.
- A signature is proof, made with Knowing Bitcoin’s release key (the key it signs each edition with), that the list of checksums is the one Knowing Bitcoin published.
- The key fingerprint is the 40-character identifier of the release key.
- A timestamp is proof that the list existed before a particular Bitcoin block, one of the batches of payments that Bitcoin adds to its shared record.
1 · Put the four files in one folder
Download them from the kit’s page, knowingbitcoin.com/two-envelope-plan/, with the address typed by hand. Each file’s own address starts with knowingbitcoin.com/two-envelope-plan/files/. The four files are:
- your PDF,
the-two-envelope-plan-2026.11-a4.pdforthe-two-envelope-plan-2026.11-letter.pdf SHA256SUMS, the list of checksumsSHA256SUMS.asc, the signatureSHA256SUMS.ots, the timestamp
Then open a terminal in that folder: Terminal on macOS, PowerShell on Windows, or your usual terminal on Linux. The lesson at knowingbitcoin.com/lesson/verify-bitcoin-software-downloads/ shows each step with figures, and how to install GnuPG for step 3.
2 · Check the file
On macOS:
shasum -a 256 --ignore-missing -c SHA256SUMS
On Linux:
sha256sum --ignore-missing -c SHA256SUMS
On Windows, in PowerShell, with the name of your PDF, typed as one line:
Select-String -Path SHA256SUMS -Pattern (Get-FileHash the-two-envelope-plan-2026.11-a4.pdf).Hash
You should see one line that names your PDF and ends in OK. On Windows, PowerShell prints the line of SHA256SUMS that holds your file’s checksum, ending in its name. If it prints nothing at all, your file does not match the list.
The option --ignore-missing skips the files on the list that are not in the folder, without any warning. A renamed or misplaced PDF is skipped the same way. Only a line that names your file counts.
This check alone proves little, because a forged copy can come with a list of its own. Step 3 shows that the list is ours, and the two together prove that your file is.
3 · Check the signature
Download the release key from knowingbitcoin.com/keys/knowing-bitcoin-release.asc into the same folder, then run:
gpg --import knowing-bitcoin-release.asc gpg --verify SHA256SUMS.asc SHA256SUMS
You should see three things:
- a line with
Good signature from "Knowing Bitcoin Releases <hello@knowingbitcoin.com>". Anyone can give a key that name, so this line alone proves nothing. - a line with
WARNINGthat says the key is not certified with a trusted signature. This is normal. It means you have not vouched for the key inside GnuPG. - a line starting with
Primary key fingerprint. This is the result that counts.
Compare that fingerprint, character for character, with a copy this file did not give you: the one on knowingbitcoin.com/two-envelope-plan/, reached by typing the address yourself, or the one in a copy of the kit you checked before. A forger would change the fingerprint printed in this file too. This copy prints it as:
9BDC 88B1 23B4 7303 5B0F 2F30 BFF1 16F1 8103 1D9C
GnuPG may print it with a double space in the middle, or as one unbroken string. The characters are what count.
If GnuPG reports a bad signature, or the fingerprint differs from the one on the kit’s page, the file is not the one we published. Do not use it.
4 · Check the timestamp
This step uses the OpenTimestamps client. Its address is in the chapter “Sources and credits”, and its guide says to install it with pip3 install opentimestamps-client. If you have a Bitcoin node on your computer (a program that keeps its own copy of Bitcoin’s record, even one that keeps only recent blocks), run:
ots verify SHA256SUMS.ots
You should see a line that starts with Success! Bitcoin block, gives a block number and says the block “attests existence as of” a date. It means the list existed before that block. The date is the block’s own date, not the moment we published. It should come soon after the dates on this edition’s cover. A block from long after them means the list was made later than the edition it claims to be.
Without a node, run:
ots --no-bitcoin verify SHA256SUMS.ots
It names the block and a value called the merkle root, a short summary of the block’s contents. Compare that value with the same block on any block explorer, a website that shows Bitcoin’s blocks.
The kit’s web page, knowingbitcoin.com/two-envelope-plan/, gives the block number.
If you have only paper
The pages of this kit that go in Envelope A print no phone number and no email address. The only websites they print are knowingbitcoin.com and the makers’ websites listed in the runbooks. Every number to call is in the holder’s handwriting, and every page sends the seed words to a hardware wallet and nowhere else. A printed page that breaks one of these was changed. The text of every chapter is also at knowingbitcoin.com/two-envelope-plan/read/, typed by hand, for comparison.
What the checks prove
The checks prove that your file is the one Knowing Bitcoin published, unchanged. To check what the kit says, read the sources in the chapter “Sources and credits” and the corrections listed with their dates at knowingbitcoin.com/corrections/.
Anyone may adapt this kit under its licence, and an adapted copy must say that it was changed. Only a copy whose checksum is on our signed list is the Knowing Bitcoin edition. Our name on a cover proves nothing by itself.
If a copy fails any check, or carries a QR code or an on-screen form, it has been altered. Download the kit again from knowingbitcoin.com/two-envelope-plan/ and check it.