Run Legacy on a fully air-gapped device you build yourself.
SeedSigner is an open-source Bitcoin signing device built from a Raspberry Pi Zero, a small screen and a camera. It has no WiFi, no Bluetooth and no storage of its own. Legacy provides a build of the SeedSigner firmware with Legacy Encryption added, so you can encrypt and decrypt a seed phrase without it ever touching a computer or the internet.
Payloads are interchangeable with the browser version: encrypt on the device and decrypt in a browser, or the reverse.
This firmware is an independent build of SeedSigner 0.8.6 maintained by the Legacy project. It is not made, reviewed or endorsed by the SeedSigner project.
The pins on the Pi Zero must be soldered (or buy a "pre-soldered header" Pi Zero). The SeedSigner project's shopping list covers assembly and cases.
From the latest release on GitHub, download these three files into one folder:
seedsigner_os.legacy-encryption.pi0.img.gz (the firmware)seedsigner_os.legacy-encryption.pi0.img.gz.sha256 (its checksum)seedsigner_os.legacy-encryption.pi0.img.gz.asc (its signature, for the optional check below)Only download firmware from that page. Do not use a copy someone emails or messages you.
This confirms the file arrived complete and unaltered. Open a terminal in the folder with the files and run the line for your system:
Mac (Terminal):
shasum -a 256 -c seedsigner_os.legacy-encryption.pi0.img.gz.sha256
Linux:
sha256sum -c seedsigner_os.legacy-encryption.pi0.img.gz.sha256
Both should print OK.
Windows (PowerShell):
Get-FileHash seedsigner_os.legacy-encryption.pi0.img.gz -Algorithm SHA256
Open the .sha256 file in Notepad; its long code must match the hash shown, character for character.
If the check fails, delete the files and download them again. Never flash a file that fails.
The checksum proves the file is intact; the signature proves who published it. With GnuPG installed, also download legacy-signing-key.asc from the same release, then:
gpg --import legacy-signing-key.asc gpg --verify seedsigner_os.legacy-encryption.pi0.img.gz.asc seedsigner_os.legacy-encryption.pi0.img.gz
Look for Good signature from "Eric A Summers ..., and check that the key fingerprint shown is:
F367 D8D8 7785 04D9 DDAF AD9F B7E4 66E3 2305 FE1B
A warning that the key "is not certified with a trusted signature" is normal. A BAD signature, or a different fingerprint, means stop: do not flash it.
Use a free flashing app. Both of these write the .img.gz file directly (no need to unzip it), check the write afterwards, and only offer removable drives, so you can't overwrite your computer's disk by mistake.
balenaEtcher (Mac, Windows, Linux):
seedsigner_os.legacy-encryption.pi0.img.gz.Raspberry Pi Imager (Mac, Windows, Linux):
.img.gz file.Your computer may say it can't read the card afterwards, or show a small drive named SEEDSIGNROS. Both are normal. Eject the card.
The device runs entirely from memory. Once the menu is showing you may remove the card, and turning the power off erases everything it held.
Before encrypting a real seed phrase, do a full round trip with a throwaway one (for example the 12 words button on the online demo, written on scrap paper):
Scanning trouble? See the QR scanning tips in the FAQ.
Build and flash the device as above, then choose Tools → Legacy Encryption → Decrypt Seed Phrase, scan the encrypted QR, and enter the benefactor key followed by the beneficiary key. The seed words appear on the screen and can be exported as a SeedQR or loaded straight into SeedSigner. Take your time: nothing here is urgent, and the encrypted QR is useless without both keys.