Split your BIP-39 seed phrase into multiple shares using Shamir's Secret Sharing (SLIP-39). Any M shares can reconstruct the original seed, but fewer than M reveals nothing.
A single seed phrase is a single point of failure. If someone finds it, they have full access to your funds. If you lose it, your funds are gone forever.
With Shamir's Secret Sharing, you can:
- Split your 12/24-word seed into N shares (e.g., 5 shares)
- Require M shares to reconstruct (e.g., 3 of 5)
- Distribute shares to different locations/people
- Survive loss of up to N-M shares (e.g., lose 2, still recover with 3)
- Prevent theft unless attacker obtains M shares
Run this tool ONLY on an air-gapped, offline machine.
- Never enter your seed phrase on a computer connected to the internet
- Use a live USB (like Tails) on a machine with no network connection
- Verify the code yourself before trusting it with real funds
- Python 3.8+
- No external dependencies (uses bundled
shamir_mnemoniclibrary)
python shamir_seed.py- Select mode
1(Split) - Enter your BIP-39 seed phrase (12, 15, 18, or 24 words)
- Receive N SLIP-39 shares (each is a 20-word mnemonic)
Example output:
Generated 5 SLIP-39 shares (any 3 can reconstruct):
Share 1:
academic acid acne academic acid beard romp chubby firm install...
Share 2:
academic acid acne academic acid blimp lair intimate duke disaster...
[...]
python3 shamir_seed.py- Select mode
2(Reconstruct) - Enter M SLIP-39 shares (the minimum threshold)
- Receive your original BIP-39 seed phrase
Edit the constants at the top of shamir_seed.py:
M = 3 # Minimum shares needed to reconstruct
N = 5 # Total shares to generateCommon configurations:
- 2-of-3: Lose 1 share, still recover. Simple redundancy.
- 3-of-5: Good balance of security and redundancy.
- 4-of-7: Higher threshold for valuable holdings.
- Your BIP-39 seed phrase is converted to entropy bytes
- The entropy is split using SLIP-39 (Shamir's Secret Sharing)
- Each share is encoded as a 20-word SLIP-39 mnemonic
- To recover, M shares are combined to reconstruct the entropy
- The entropy is converted back to BIP-39 words
| BIP-39 | SLIP-39 | |
|---|---|---|
| Purpose | Seed phrase | Share encoding |
| Wordlist | 2048 words | 1024 words (different!) |
| Words overlap | — | None |
The wordlists are intentionally different so you can tell them apart at a glance.
SLIP-39 shares generated by this tool are compatible with:
- Trezor Model T / Safe 3 / Safe 5
- Other SLIP-39 compatible wallets and tools
KeySplit/
├── shamir_seed.py # Main tool
├── bip39_words.txt # BIP-39 wordlist (2048 words)
├── shamir_mnemonic/ # SLIP-39 library (from Trezor)
└── tests/
├── test_shamir_seed.py # Tests for main tool
└── test_shares.py # Tests for SLIP-39 library
python tests/test_shamir_seed.py
python tests/test_shares.py- Write shares on paper or metal — not digital storage
- Store in separate physical locations — safe deposit boxes, trusted family members, etc.
- Label shares clearly — "Share 1 of 5" with date
- Test recovery — verify you can reconstruct before relying on it
- Document your setup — record M, N, and where shares are stored (separately from shares)
The bundled shamir_mnemonic library is from Trezor and is licensed under their terms. See shamir_mnemonic/ for details.