v1.0.0 — first release
First release.
YubiShard splits a wallet recovery phrase into standard SLIP-39 shares and stores one share on
each YubiKey, using the WebAuthn largeBlob extension. Any threshold of the keys rebuilds the
phrase; fewer reveal nothing at all.
What it does
- Accepts a 12- or 24-word BIP-39 phrase, or a 20-word SLIP-39 share.
- Splits it into a threshold scheme you choose — 3 of 5, say — and writes one share per key.
- Verifies the backup by making you unplug each key and read the share back before finishing.
- Restores from a threshold of keys, re-encoding BIP-39 entropy back into your original words.
- Shows the BIP-32 fingerprint at every stage, so you can see which wallet you are handling.
The shares are ordinary SLIP-39 mnemonics — Trezor, Electrum, Sparrow, Rabby and BlueWallet all
read them.
Requirements
Chrome on macOS or Windows 11, and YubiKeys on firmware 5.7 or newer. The page must be served
over http://localhost or https — file:// cannot work, because a security key identifies a
site by its hostname.
Getting it
Download the source archive below, unzip it, and run serve.command (macOS) or serve.bat
(Windows). Three hand-written files, no dependencies, no build step — what ships is what you
read.
Verification
The SLIP-39 implementation is checked against all 45 official vectors from
trezor/python-shamir-mnemonic, plus RIPEMD-160, BIP-32 and BIP-39 vectors, and cross-checked
against Trezor's shamir-mnemonic package.
Read the README before trusting this with a real seed — in particular "Things you have to know",
which covers the PIN, the BIP-39/SLIP-39 asymmetry, and what a lost key does or does not cost you.