A sticky note
One copy, one thief
Whoever finds it gets everything. Lose it in a move or a fire and it is gone for you too.
Shamir's Secret Sharing · on paper
Your password-manager master key, 2FA recovery codes or wallet seed — turned into printable QR cards for the people you trust. Any K of them recover it. Fewer reveal nothing, not even its length.
A sticky note
Whoever finds it gets everything. Lose it in a move or a fire and it is gone for you too.
Tell one person
They might forget, move away, or be the person who needs protecting against.
heirloom
Give five people one card each. Any three can act together; one lost card changes nothing; one curious holder learns nothing.
Set
These cards together hold your secret. Print them, hand them out, then close this tab — nothing was stored.
For illustration the curve is drawn over real numbers. heirloom does the same over the finite field GF(28), byte by byte, which makes the “every secret equally likely” statement exact.
Shamir over the AES field: carry-less multiplication, inverses by a254, Lagrange interpolation per byte.
Segments, Reed–Solomon over GF(28)/0x11D, block interleaving, zig-zag placement and all eight masks — cross-checked against OpenCV.
Crockford Base32 (no I/L/O/U, case-insensitive) in rows with a mod-37 check symbol, so a typo is reported as “row 3”.
Shares are a Reed–Solomon codeword. With spare cards, a forged or damaged card is outvoted and named.
Type and length are shared along with the secret and padded to 16-byte blocks, so a card does not leak how long the secret is.
A pure, typed core compiled to JavaScript — the same code runs this page and the command-line tool.
The same core ships as a single-file Node.js CLI. Read the secret from stdin, get a printable sheet.
CLI documentation$ heirloom split -k 3 -n 5 --label "Family vault" < secret.txt ✓ 5 cards written to cards.html · any 3 recover · set PG4F-A60 self-test passed: the cards recombine to your secret. $ heirloom combine card1.txt card3.txt card4.txt tulip-anchor-91-ember ✓ recovered · set PG4F-A60 · cards #1 #3 #4 $ heirloom verify card2.txt ✓ card 1: #2 of 5 · set PG4F-A60 · needs 3
This page is static files and a strict Content-Security-Policy (connect-src 'none'): the browser itself blocks it from sending anything anywhere. For the cautious: download the offline copy — the whole tool in one HTML file — and open it from disk on a machine without network, or use the CLI on an air-gapped computer.
Nothing happens as long as enough cards remain. With 3-of-5, any two can be lost. If you lose more, make a new set — cards from different sets never mix.
Every card carries a CRC-32 against accidents. Against deliberate tampering, bring more cards than needed: heirloom cross-checks them and names the card that disagrees.
No. The card format is documented in the repository and the math is textbook Shamir; the CLI, the offline copy of this page, or any reimplementation can recover it.
No — the file contains every card. Print it, check one card with Recover, then delete the file and clear the print queue.