
You die. Your crypto dies with you. Your family has no idea how to access it.
Traditional solutions require trusting someone with your seed phrase. That's not acceptable.
Deadhand uses Shamir's Secret Sharing to split your seed phrase into 3 shards. No single entity (including us) has the full key.
Inspired by @PixOnChain
"Un outil open source pour léguer vos cryptos en cas de décès (sans tiers de confiance)." — Korben.info
"Опенсорс-протокол для передачи крипто-наследства." — Habr.com
Deadhand is the protocol of choice for technical operators and sovereign individuals:
- Community Audited: Our cryptographic core is battle-tested and constantly reviewed by the security community.
- Developer Validation: With a statistically significant 1.3x Clone-to-Visitor ratio, Deadhand is built for execution, not just browsing.
- Client-Side Encryption - Your seed phrase never leaves your browser unencrypted
- Shamir's Secret Sharing - Mathematically proven 2-of-3 threshold scheme
- Automated Dead Man's Switch - 30-day heartbeat checks, triggers after 90 days
- PDF Export - Print shards for physical backup
- Beneficiary System - Seamless crypto inheritance
- Zero Trust Architecture - Even we can't access your keys
- Source-Available - Inspect the full code, but commercial use requires a subscription
Imagine your seed phrase is a secret line on a piece of paper.
- 1 point on the paper tells you nothing about the line
- 2 points on the paper reveal the entire line
That's Shamir's Secret Sharing. Your seed phrase is the line. We create 3 points:
| Shard | Who Has It | What They Can Do Alone |
|---|---|---|
| A | You | Nothing |
| B | Your heir | Nothing |
| C | Deadhand server (encrypted) | Nothing |
Any 2 shards → full seed phrase recovered (you don't need all 3) ✅
Any 1 shard → completely useless ❌
Every 30 days, we send you an email: "Hey, you alive?"
- You click the link → Timer resets. All good.
- You don't respond for 90 days → We assume the worst.
When 90 days pass with no sign of you:
- Shard C is automatically released to your beneficiary
- They combine B + C → 2 points → the line is revealed
- They now have your full seed phrase
Result: Your family inherits your crypto. No lawyers, no courts, no guessing passwords.
Deadhand is a protocol, not a person.
- "Please release my shard early, it's urgent!" → No.
- "I'm the beneficiary, can you help me?" → No.
- "I forgot to check in, can you reset my timer?" → No.
The system runs on code, not feelings. We don't respond to emails asking to bypass the rules. The only way to stop the countdown is to click your heartbeat link. That's it.
flowchart LR
subgraph Browser["Client Browser"]
SEED["Seed Phrase"]
SPLIT["Shamir Split (2-of-3)"]
end
SEED --> SPLIT
SPLIT --> A["Shard A<br/>User Keeps"]
SPLIT --> B["Shard B<br/>Beneficiary"]
SPLIT --> C["Shard C<br/>Server"]
style SEED fill:#f59e0b,color:#000
style A fill:#14b8a6,color:#000
style B fill:#eab308,color:#000
style C fill:#8b5cf6,color:#fff
sequenceDiagram
participant U as User
participant S as Deadhand Server
participant B as Beneficiary
Note over U,S: Every 30 days
S->>U: "Are you alive?" Email
alt User Responds
U->>S: Click heartbeat link
S->>S: Reset 30-day timer
else User Missing (90 days)
S->>B: Email Shard C
Note over B: Combines Shard B + C
B->>B: Recovers Seed Phrase
end
flowchart TB
subgraph Valid["Valid Recovery (Any 2 Shards)"]
AB["A + B"] --> RECOVER1["Seed Recovered"]
AC["A + C"] --> RECOVER2["Seed Recovered"]
BC["B + C"] --> RECOVER3["Seed Recovered"]
end
subgraph Invalid["Invalid (Single Shard = Zero Info)"]
A1["A alone"] --> FAIL1["Nothing"]
B1["B alone"] --> FAIL2["Nothing"]
C1["C alone"] --> FAIL3["Nothing"]
end
style RECOVER1 fill:#22c55e,color:#000
style RECOVER2 fill:#22c55e,color:#000
style RECOVER3 fill:#22c55e,color:#000
style FAIL1 fill:#ef4444,color:#fff
style FAIL2 fill:#ef4444,color:#fff
style FAIL3 fill:#ef4444,color:#fff
| Scenario | Outcome |
|---|---|
| Server hacked | Attacker has only Shard C → Useless |
| Beneficiary is malicious | They have only Shard B → Useless |
| You lose Shard A | Combine B + C → Still recoverable |
| You die | Server sends C to beneficiary → B + C = Recovery |
- Backend: FastAPI, PostgreSQL, SQLAlchemy
- Frontend: HTML, TailwindCSS, HTMX
- Cryptography:
secrets.js(Shamir's Secret Sharing) running in browser - Hosting: Vercel
-
Install dependencies:
pip install -r requirements.txt
-
Run the server:
python -m uvicorn app.main:app --reload --port 8000
-
Visit
http://localhost:8000
I am a pragmatic developer. I only use the most reliable and proven tools for the job. This project is built using the simplest Python and HTML possible—no flashy new frameworks or "hyped" stacks that will be obsolete in six months.
By choosing minimal dependencies and low complexity, we ensure that the codebase can stand the test of time and remain auditable by anyone, forever.
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Production-grade email integration
- Multi-language support
- Mobile app wrapper
- Hardware wallet integration
- Additional threshold schemes (3-of-5, etc.)
This project is licensed under the Business Source License 1.1 (BSL 1.1).
| Use Case | Allowed? |
|---|---|
| Personal use | ✅ Free |
| Security auditing | ✅ Free |
| Educational/research | ✅ Free |
| Non-commercial self-hosting | ✅ Free |
| Commercial/production use | ❌ Requires Commercial License |
On January 28, 2030, this code automatically converts to AGPL v3.0 (fully open source).
We believe security software should be transparent. You should be able to verify that your seed phrase is safe by reading the code yourself. But building and maintaining security infrastructure is expensive. BSL ensures:
- Trust: Anyone can audit the code
- Sustainability: The project can be maintained long-term
- Eventual Freedom: Code becomes open source after 4 years
For commercial licensing: [email protected]
See LICENSE for full terms.
Star this repo if you find it useful!
