Decentralized crypto inheritance: Secure your legacy with an automated, on-chain dead man's switch.
Decentralized dead man's switch for crypto inheritance. Owner heartbeats monthly. If heartbeats stop, Chainlink Automation triggers recovery on-chain. Heir claims by matching the designated address AND verifying with World ID. No lawyer. No company. Just math.
Built solo in 48 hours after my father passed away last week because losing someone shouldn't mean losing everything they left behind.
Live on www.DeadSwitch.online
DeadSwitch is a real Solidity 0.8.20 contract deployed on Sepolia (0xF957cDA1f676B9EAE65Ab99982CAa3a31A193CB7) with OpenZeppelin's ReentrancyGuard. Each user deploys their OWN InheritanceVault : no shared state. Frontend is Next.js 16 + wagmi v3, connecting users directly to their own deployed contract.
CORE INTEGRATIONS:
Chainlink Automation is the recovery trigger. Our contract implements AutomationCompatibleInterface (checkUpkeep + performUpkeep). When an owner's heartbeat expires, Chainlink's keeper network calls performUpkeep() which executes real state change on-chain: status = RecoveryMode. Live upkeep registered on Sepolia, funded with 2.1 LINK. Bonus: dashboard uses Chainlink ETH/USD Price Feed for live USD conversion.
ENS is the beneficiary identification layer. Heirs are named by ENS ("wife.eth" resolves live to 0x5F2798DFe...) instead of hex addresses. Real-time debounced resolution via ens.domains API, no hardcoded values. Both ENS name AND resolved address are stored on-chain in the vault contract. Heirs can search for their inheritance by their own ENS name.
Ledger ERC-7730 Clear Signing. Manifest submitted to Ledger's official registry as PR #2511, covering all 9 user-facing vault functions. When users sign on a Ledger device, they see "Send heartbeat : prove you are alive" instead of raw hex. Validates against erc7730-v1 schema.
ADDITIONAL INTEGRATIONS (in codebase):
World ID (@worldcoin/idkit) provides sybil-resistant heir verification before claiming : biometric proof of unique humanity. 0G SDK stores encrypted Shamir shards (3-of-5 threshold) for V2 key recovery. Flare TEE attestation module generates SHA-256 hash chains for tamper-proof shard reconstruction.
CLAIM SECURITY (3 layers):
Smart contract onlyBeneficiary modifier: only the designated wallet can call claim()
Frontend check: wallet address must match vault.beneficiary_address before World ID button appears
World ID nullifier must match what was set at vault creation
DEMO REALITY CHECK: The contract enforces a 30-day recovery delay (production safety : gives owner time to cancel if not actually dead) and a 30-day minimum heartbeat interval. So live claims WILL revert on testnet : this is the safety feature working as designed. Judges can verify the revert message "Recovery delay not elapsed" proves the safeguard is functional.
For demo pacing, "Simulate Death" updates backend status while attempting on-chain performUpkeep in parallel. Judges see both the simulated flow and the real on-chain state.
Testnet is appropriate scope : inheritance holds life savings, mainnet requires a formal audit first. Roadmap: Trail of Bits audit -> mainnet -> multi-chain via Chainlink CCIP.
Contract source: github.com/Lastoneparis/deadswitch/blob/master/contracts/contracts/InheritanceVault.sol Etherscan: sepolia.etherscan.io/address/0xF957cDA1f676B9EAE65Ab99982CAa3a31A193CB7 Ledger PR: github.com/LedgerHQ/clear-signing-erc7730-registry/pull/2511 Chainlink Upkeep: automation.chain.link/sepolia/87279356538326214029017935707370766485868215829937943885304798493436723241100

