Eternal Key
A Bitcoin inheritance vault that works automatically. Built with Charms Protocol
App: https://eternalkeybtc.vercel.app/app
The Problem
Imagine someone holds a large amount of Bitcoin and passes away. Their family knows the assets exist, but cannot access them.
Bitcoin has no recovery system. No support line. No legal override.
If private keys are lost, the funds are permanently inaccessible.
This is not rare. It happens to everyday users.
Bitcoin can outlive its owner. Access does not.
The Solution
Eternal Key is an automated inheritance system for Bitcoin.
It functions like a dead man’s switch:
- You create a vault
- You assign beneficiaries
- You define a timeout period
- You check in periodically
If you stop checking in, the system assumes inactivity and triggers distribution.
Funds are transferred automatically to the selected recipients based on your predefined allocation.
No lawyers No manual key transfer No reliance on memory or hidden backups
How It Works
1. Create a Vault
Define the structure of your inheritance:
- Add beneficiaries
- Assign percentage shares
2. Stay Active
Check in regularly to keep the vault locked
- Each check-in resets the timer
- No action is taken while you remain active
3. Automatic Execution
If the timeout expires:
- Beneficiaries can claim their share
- Distribution follows your predefined split
Technical Overview
- Backend: Rust smart contract using Charms Protocol SDK
- Frontend: React and Next.js
- Network: Bitcoin testnet
The system uses real Bitcoin testnet transactions, not simulations.
Deployed contract:
tb1qb55df1e19a57fa98938f2e776abd07ed
Getting Started
Install and Run
npm install
npm run dev
Open: http://localhost:3000/app
Requirements
A Bitcoin testnet wallet
- Recommended: Unisat Wallet
Switch wallet to testnet mode
Get Testnet Bitcoin
- Coinfaucet.eu
- Mempool testnet faucet
- Any Bitcoin testnet faucet
Testing
Check vault state via API:
curl -X POST http://localhost:3000/api/charms/vault-state \
-H "Content-Type: application/json" \
-d '{"vaultId": "test-vault", "network": "testnet"}'
Or use the UI for a simpler experience.
Current Limitations
- Testnet only
- Not safe for real funds
- Private keys stored in plain text for demo purposes
- Requires a browser wallet extension such as Unisat or Xverse
Roadmap
- Multi-signature support
- Stronger key management
- Mainnet deployment
Why This Matters
Large amounts of Bitcoin are permanently lost when owners die without sharing access.
Traditional assets pass through legal systems. Bitcoin does not.
Existing solutions rely on manual processes such as:
- Writing down seed phrases
- Storing them in physical locations
- Trusting others to find and use them correctly
These methods are fragile and error prone.
Eternal Key replaces them with automation.
- No trust required
- No manual intervention
- Fully deterministic execution
This is inheritance as code.
Log in or sign up for Devpost to join the conversation.