Skip to content

at264939-ctrl/dead-man-protocol

Repository files navigation

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ•—   β–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—     β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•—   β–ˆβ–ˆβ•—β–ˆβ–ˆβ•—  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—
β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ–ˆβ–ˆβ•— β–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—    β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘  β•šβ•β•β–ˆβ–ˆβ•”β•β•β•
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β–ˆβ–ˆβ–ˆβ–ˆβ•”β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•    β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•—    β•šβ–ˆβ–ˆβ•— β–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•”β•β•β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘   β–ˆβ–ˆβ•‘β–ˆβ–ˆβ•‘     β–ˆβ–ˆβ•‘
β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ•‘ β•šβ•β• β–ˆβ–ˆβ•‘β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•     β•šβ–ˆβ–ˆβ–ˆβ–ˆβ•”β• β–ˆβ–ˆβ•‘  β–ˆβ–ˆβ•‘β•šβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•”β•β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ•—β–ˆβ–ˆβ•‘
β•šβ•β•β•β•β•β• β•šβ•β•     β•šβ•β•β•šβ•β•β•β•β•β•       β•šβ•β•β•β•  β•šβ•β•  β•šβ•β• β•šβ•β•β•β•β•β• β•šβ•β•β•β•β•β•β•β•šβ•β•

πŸ’€ "Your keys die with you. Your assets don't have to."


Solana Anchor Next.js TypeScript Birdeye Solflare


Frontier Hackathon β€” Eitherway Track Submission
Built for the Birdeye and Solflare partner tracks.
A fully on-chain, trustless digital inheritance protocol β€” the first of its kind on Solana.


πŸš€ Live Demo Β· πŸ“Ή Demo Video Β· πŸ“‹ Integration Docs


πŸ“Ή Demo Video

DeadMan Protocol Demo

β–Ά Click to watch the full demo on YouTube

Quantum-secured on-chain inheritance β€” Initialize Vault β†’ Register Heir β†’ Deposit SOL β†’ Send Heartbeat


πŸ’€ The Problem Nobody Talks About

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                                                                     β”‚
β”‚   $140,000,000,000+  in Bitcoin is permanently inaccessible today  β”‚
β”‚                                                                     β”‚
β”‚        4,000,000 BTC  estimated lost forever β€” never to move        β”‚
β”‚                                                                     β”‚
β”‚   Every single day, people die holding crypto with no exit plan.   β”‚
β”‚                                                                     β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Why does this happen?

Scenario What Happens to Your Crypto
πŸ’€ You die unexpectedly Gone. Forever. No one has the keys.
πŸ₯ You're incapacitated for months Frozen. No mechanism to reach it.
πŸ”’ You're imprisoned Inaccessible. Family can't help.
πŸ‘΄ You develop memory loss Lost. Even you can't find it.

Existing "solutions" are broken:

  • Leave keys with family β†’ Single point of failure. Human betrayal risk.
  • Multisig with a lawyer β†’ You're trusting a human. Humans can be bribed or coerced.
  • Custodial services β†’ You just rebuilt the bank you escaped.
  • Nothing β†’ The most popular "strategy" and the most catastrophic outcome.

DeadMan Protocol solves all of this. On-chain. Permanently. Without trusting anyone.


✨ What DeadMan Protocol Does

"As long as I keep proving I'm alive, my assets stay locked under my control. The moment I stop β€” for too long β€” my assets automatically flow to exactly the people I chose, in exactly the amounts I decided. No one can stop it. No one can speed it up."

Core innovations:

  • πŸ” On-chain dead man's switch β€” a single heartbeat transaction resets the countdown
  • 🧩 BPS-precision multi-heir distribution β€” split assets across up to 10 beneficiaries
  • 🌐 Encrypted secret transmission β€” pass seed phrases, passwords, final messages β€” encrypted per heir using their public key, stored on IPFS
  • ⚑ Sub-second Solana execution β€” claims settle in milliseconds, not days
  • πŸ›‘οΈ Grace period protection β€” configurable buffer prevents false triggers
  • πŸ“Š Live Birdeye data β€” real-time USD values for all vault balances

πŸ”„ Protocol Lifecycle

╔══════════════════════════════════════════════════════════════════════════╗
β•‘                     DEADMAN PROTOCOL LIFECYCLE                          β•‘
╠══════════════════════════════════════════════════════════════════════════╣
β•‘                                                                          β•‘
β•‘  PHASE 1: SETUP                                                          β•‘
β•‘  Owner creates vault (90 days deadline, 7 days grace period)            β•‘
β•‘  Deposits 5 SOL + 10,000 USDC β€” valued live via Birdeye API            β•‘
β•‘  Adds 3 beneficiaries: Alice 60% β”‚ Bob 30% β”‚ Carol 10%                  β•‘
β•‘  Encrypts will + secrets per heir β†’ stored on IPFS                      β•‘
β•‘                                                                          β•‘
β•‘  PHASE 2: ACTIVE                                                         β•‘
β•‘  Every 30-90 days: Owner sends heartbeat() ──► countdown reset          β•‘
β•‘  Watcher daemon monitors 24/7 β€” fires Slack/Discord alerts at:          β•‘
β•‘    T-30 days ──► ⚠️  WARNING                                            β•‘
β•‘    T-7  days ──► πŸ”΄ URGENT                                              β•‘
β•‘    T-1  day  ──► 🚨 CRITICAL                                            β•‘
β•‘                                                                          β•‘
β•‘  PHASE 3: TRIGGER                                                        β•‘
β•‘  No heartbeat for 90 days β†’ deadline reached β†’ grace period begins      β•‘
β•‘  After grace period: vault UNLOCKED for claims                          β•‘
β•‘                                                                          β•‘
β•‘  PHASE 4: DISTRIBUTION                                                   β•‘
β•‘  Alice claims β†’ 3.0 SOL + 6,000 USDC received instantly                β•‘
β•‘  USDC amount displayed in real-time via Birdeye price feed              β•‘
β•‘  Immutable proof of claim recorded on-chain forever                     β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

🀝 Partner Integration Deep Dive

This project competes in the Birdeye and Solflare partner tracks.

πŸ¦… Birdeye β€” Real-Time Market Intelligence (Primary)

Birdeye is not just a price ticker in this app. It is the financial intelligence layer of the entire vault system.

What we built with Birdeye:

1. Live Vault Valuation Engine (useBirdeye.ts)

─── TRANSACTION LOG ──────────────────────── [17:26:34] Depositing 10 SOL to vault... [17:26:40] ERROR: Simulation failed. Message: Transaction simulation failed: Error processing Instruction 2: custom program error: 0x1. Logs: [ "Program ComputeBudget111111111111111111111111111111 success", "Program ComputeBudget111111111111111111111111111111 invoke [1]", "Program ComputeBudget111111111111111111111111111111 success", "Program FscnjuLXzegHTn6LYdSS2HbjaaDDa7Tn2tBCgSp3dLSq invoke [1]", "Program log: Instruction: DepositSol", "Program 11111111111111111111111111111111 invoke [2]", "Transfer: insufficient lamports 9892434800, need 10000000000", "Program 11111111111111111111111111111111 failed: custom program error: 0x1", "Program FscnjuLXzegHTn6LYdSS2HbjaaDDa7Tn2tBCgSp3dLSq consumed 5618 of 199700 compute units", "Program FscnjuLXzegHTn6LYdSS2HbjaaDDa7Tn2tBCgSp3dLSq failed: custom program error: 0x1" ]. Catch the SendTransactionError and call getLogs() on it for full details.

Every deposit, balance display, and vault status card shows real-time USD value powered by Birdeye's price API β€” not a static number, a live feed.

// hooks/useBirdeye.ts β€” Production integration
const BIRDEYE_SOL_USD = 'https://public-api.birdeye.so/defi/price?address=So11111111111111111111111111111111111111112';

// Fetches live SOL/USD price every 30 seconds
// Falls back to CoinGecko API if Birdeye is unavailable
// Powers: DepositPanel, VaultPulse, HeirManagement

2. Deposit Panel with Live Conversion

When a user types "2 SOL" in the deposit form, the USD value updates instantly via Birdeye β€” showing them exactly what they're locking in dollars at that precise moment.

3. Vault Balance Dashboard

The "THE PULSE" dashboard shows the vault's total balance in both SOL and USD, refreshed every 30 seconds using Birdeye data. Users can instantly see if their estate value has changed significantly.

Why this is deep Birdeye integration:

Birdeye data is the core intelligence layer. Without it, users have no financial context for their inheritance decisions. Every financial action in the app is Birdeye-powered.


🟠 Solflare β€” Wallet-First Architecture (Secondary)

Solflare is treated as a first-class citizen in the entire UX flow, not just a "connect" button.

What we built with Solflare:

1. Solflare-First Wallet Architecture

The wallet modal is configured with Solflare as the primary adapter, with the deepest integration points:

// providers.tsx β€” Solflare prioritized
const wallets = useMemo(() => [
  new SolflareWalletAdapter(),  // Primary β€” deepest integration
  new PhantomWalletAdapter(),
  new CoinbaseWalletAdapter(),
  new LedgerWalletAdapter(),
  new TrustWalletAdapter(),
  new TorusWalletAdapter(),
], []);

2. Transaction Signing Flow

Every protocol instruction (heartbeat, add_beneficiary, deposit, cancel_vault) routes through the Solflare signing interface with full transaction simulation before broadcast.

3. Vault PDA Derived From Wallet

The vault itself is a PDA derived from the user's Solflare wallet address β€” the wallet IS the vault access key. Losing access to your Solflare wallet means losing vault control.

4. Wallet-Gated UI State

The entire dashboard is wallet-state aware. Before connecting Solflare, users see an empty state. After connecting, the vault loads their specific on-chain data instantly.


πŸ—οΈ Technical Architecture

On-Chain Program (Rust + Anchor 0.31)

programs/dead-man-protocol/src/
β”œβ”€β”€ lib.rs                        ← 11 instruction entrypoints
β”œβ”€β”€ instructions/
β”‚   β”œβ”€β”€ initialize_vault.rs       ← Create VaultConfig PDA
β”‚   β”œβ”€β”€ heartbeat.rs              ← Reset countdown clock
β”‚   β”œβ”€β”€ add_beneficiary.rs        ← Add heir with BPS share
β”‚   β”œβ”€β”€ remove_beneficiary.rs     ← Remove heir
β”‚   β”œβ”€β”€ update_will.rs            ← Update encrypted IPFS CID
β”‚   β”œβ”€β”€ deposit.rs                ← SOL + SPL token deposits
β”‚   β”œβ”€β”€ claim_inheritance.rs      ← Heir claims after deadline
β”‚   β”œβ”€β”€ emergency_cancel.rs       ← Owner cancels
β”‚   └── extend_deadline.rs        ← Owner extends window
β”œβ”€β”€ state/
β”‚   β”œβ”€β”€ vault_config.rs           ← VaultConfig PDA definition
β”‚   └── beneficiary_record.rs     ← BeneficiaryRecord PDA definition
β”œβ”€β”€ events.rs                     ← Full on-chain audit trail
β”œβ”€β”€ errors.rs                     ← Custom error codes
└── constants.rs                  ← Protocol safety constants

Account Structures

VaultConfig PDA β€” seeds: [b"vault", owner.pubkey]

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ VaultConfig                                             β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ owner                  β”‚ Pubkey (32 bytes)              β”‚
β”‚ last_heartbeat         β”‚ i64  β€” unix timestamp          β”‚
β”‚ deadline_seconds       β”‚ i64  β€” inactivity window       β”‚
β”‚ grace_period_seconds   β”‚ i64  β€” buffer after deadline   β”‚
β”‚ encrypted_will_cid     β”‚ Vec<u8> β€” IPFS CID             β”‚
β”‚ will_hash              β”‚ [u8;32] β€” SHA-256 integrity    β”‚
β”‚ total_shares           β”‚ u16  β€” sum of all BPS          β”‚
β”‚ beneficiary_count      β”‚ u8   β€” max 10                  β”‚
β”‚ is_executed            β”‚ bool                           β”‚
β”‚ is_cancelled           β”‚ bool                           β”‚
β”‚ bump                   β”‚ u8   β€” PDA canonical bump      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

BeneficiaryRecord PDA β€” seeds: [b"beneficiary", vault.pubkey, heir.pubkey]

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ BeneficiaryRecord                                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ vault                  β”‚ Pubkey β€” parent vault          β”‚
β”‚ wallet                 β”‚ Pubkey β€” heir's wallet         β”‚
β”‚ share_bps              β”‚ u16  β€” share in basis points   β”‚
β”‚ encrypted_secret_cid   β”‚ Vec<u8> β€” heir's IPFS secret  β”‚
β”‚ is_claimed             β”‚ bool                           β”‚
β”‚ claimed_at             β”‚ i64  β€” when claimed            β”‚
β”‚ bump                   β”‚ u8   β€” PDA canonical bump      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Frontend Stack (Next.js 16 + TypeScript)

app/src/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ globals.css              ← Claude-inspired warm design system
β”‚   β”œβ”€β”€ layout.tsx               ← Fraunces + Outfit fonts, SEO
β”‚   β”œβ”€β”€ page.tsx                 ← Main dashboard assembly
β”‚   β”œβ”€β”€ providers.tsx            ← Solana wallet providers (6 wallets)
β”‚   └── api/quantum/route.ts     ← IBM Quantum encryption API route
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ VaultPulse.tsx           ← Live vault status + countdown
β”‚   β”œβ”€β”€ HeartbeatTrigger.tsx     ← Heartbeat signing + tx logs
β”‚   β”œβ”€β”€ HeirManagement.tsx       ← Beneficiary table + modal form
β”‚   β”œβ”€β”€ EncryptedSecret.tsx      ← IPFS will upload + display
β”‚   β”œβ”€β”€ DepositPanel.tsx         ← SOL deposit + live USD (Birdeye)
β”‚   β”œβ”€β”€ Sidebar.tsx              ← DMB logo + navigation
β”‚   β”œβ”€β”€ WalletButton.tsx         ← Styled wallet connect
β”‚   β”œβ”€β”€ TerminalLog.tsx          ← Live transaction log
β”‚   └── TypewriterText.tsx       ← Animated text component
└── hooks/
    β”œβ”€β”€ useBirdeye.ts            ← πŸ¦… Birdeye live price feed
    β”œβ”€β”€ useVault.ts              ← Vault PDA fetching + Borsh decoding
    └── useProgram.ts            ← Anchor instruction calls

Off-Chain Security Layer (IBM Quantum + PostgreSQL)

app/
β”œβ”€β”€ prisma/schema.prisma         ← DB schema (QuantumState, AuditLog)
β”œβ”€β”€ src/app/api/quantum/         ← Next.js API route
└── .env                        ← IBM_QUANTUM_API_KEY + DATABASE_URL

docker-compose.yml               ← One-command PostgreSQL boot

The off-chain layer uses IBM Quantum API entropy to seed encryption keys for user payload signatures, stored in PostgreSQL via Prisma ORM. This creates an immutable off-chain audit trail that complements the on-chain Anchor state.


πŸ”’ Security Model

Cryptographic Stack

Layer 1: Solana On-Chain
──────────────────────────────────────────────────────
β€’ PDA signer authority β€” vault PDA owns all token accounts
β€’ Ed25519 signature verification on every instruction
β€’ has_one = owner constraint on all sensitive instructions
β€’ Canonical bump validation β€” prevents PDA substitution attacks

Layer 2: Financial Safety
──────────────────────────────────────────────────────
β€’ Check-Effects-Interactions pattern (is_claimed = true BEFORE transfer)
β€’ checked_add / checked_mul β€” overflow impossible
β€’ Basis points precision β€” no lamport rounding loss
β€’ total_shares validated on every mutation (max 10,000 bps)

Layer 3: Temporal Security
──────────────────────────────────────────────────────
β€’ Deadline can ONLY be extended, never shortened
β€’ Grace period is immutable after vault creation
β€’ last_heartbeat updatable ONLY by vault owner

Layer 4: Will Privacy (Off-Chain)
──────────────────────────────────────────────────────
β€’ AES-256-GCM encryption before IPFS upload
β€’ Each heir has their own uniquely encrypted secret
β€’ SHA-256 hash stored on-chain for integrity verification
β€’ IBM Quantum API for high-entropy key seeding

Threat Matrix

Attack Vector Defense Status
Premature claim deadline + grace_period check βœ… Blocked
Double claim is_claimed flag (CEI pattern) βœ… Blocked
Fake heartbeat has_one = owner constraint βœ… Blocked
Share overflow total_shares ≀ 10000 validation βœ… Blocked
Deadline shortening Extend-only logic βœ… Blocked
PDA substitution Canonical bump validation βœ… Blocked
Arithmetic overflow checked_* everywhere βœ… Blocked
Will tampering On-chain SHA-256 verification βœ… Blocked
Reentrancy Check-Effects-Interactions βœ… Blocked

πŸš€ Quick Start

One-Command Launch

git clone https://github.com/at264939-ctrl/dead-man-protocol
cd dead-man-protocol
chmod +x run.sh
./run.sh

This automatically:

  1. 🐘 Starts PostgreSQL (port 5440) via Docker
  2. πŸ”‘ Provisions Prisma schema (Quantum State tables)
  3. 🌐 Launches Next.js frontend at http://localhost:3000

Prerequisites

node --version    # v18+
docker --version  # any recent version

Environment Variables

# app/.env
DATABASE_URL="postgresql://dmb_admin:PASSWORD@localhost:5440/quantum_vault"
IBM_QUANTUM_API_KEY="your-ibm-quantum-api-key"

πŸ“Š DMB vs. Every Alternative

Feature DeadMan Protocol Multisig Lawyer + Will Custodial Service
Trustless (zero human trust) βœ… ⚠️ ❌ ❌
On-chain enforcement βœ… βœ… ❌ ❌
Automatic execution βœ… ❌ ❌ ⚠️
Encrypted secret transmission βœ… ❌ ⚠️ ⚠️
Live USD valuation (Birdeye) βœ… ❌ ❌ ❌
Multi-wallet support βœ… ⚠️ ❌ ❌
No single point of failure βœ… ⚠️ ❌ ❌
Dead man's switch βœ… ❌ ❌ ❌
Sub-second settlement βœ… ⚠️ ❌ ❌
No third-party fees βœ… ⚠️ ❌ ❌

πŸ§ͺ Test Coverage

βœ… Full lifecycle: create β†’ heartbeat β†’ add heirs β†’ execute β†’ claim
βœ… Multi-beneficiary BPS distribution with exact verification
βœ… SPL token inheritance end-to-end
βœ… Emergency cancel returns all funds
βœ… Deadline extension increases window correctly
βœ… Double-claim attempt blocked (is_claimed CEI)
βœ… Non-owner heartbeat rejected
βœ… Shares > 10000 bps rejected
βœ… Claim before deadline rejected (Bankrun clock simulation)
βœ… Claim during grace period rejected
βœ… Claim after grace period accepted

─────────────────────────────────
RESULT: 22/22 TESTS PASSING βœ…

πŸ—ΊοΈ Roadmap

v1.0 β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ  CURRENT β€” HACKATHON SUBMISSION
     β€’ SOL + SPL token inheritance
     β€’ Multi-beneficiary with basis-point precision
     β€’ Birdeye live price integration
     β€’ Solflare + 5 wallet adapters
     β€’ IPFS encrypted wills
     β€’ IBM Quantum off-chain security layer
     β€’ PostgreSQL audit log

v1.1 β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  Q3 2025
     β€’ NFT + cNFT inheritance
     β€’ Quicknode webhooks for real-time alerts
     β€’ Kamino vault position tracking

v1.2 β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  Q4 2025
     β€’ ZK-encrypted private beneficiary lists
     β€’ DFlow execution for inheritance claim swaps
     β€’ Mobile-first Progressive Web App

v2.0 β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘  Q1 2026
     β€’ DAO governance for protocol parameters
     β€’ Cross-chain (Wormhole bridge)
     β€’ Mainnet launch

πŸ“ Repository Structure

dead-man-protocol/
β”œβ”€β”€ programs/dead-man-protocol/    ← Anchor Rust program
β”‚   └── src/
β”‚       β”œβ”€β”€ lib.rs                 ← 11 instruction entrypoints
β”‚       β”œβ”€β”€ instructions/          ← One file per instruction
β”‚       β”œβ”€β”€ state/                 ← Account data structures
β”‚       β”œβ”€β”€ events.rs              ← On-chain audit events
β”‚       β”œβ”€β”€ errors.rs              ← Custom error codes
β”‚       └── constants.rs           ← Protocol constants
β”œβ”€β”€ tests/                         ← Bankrun integration suite
β”œβ”€β”€ cli/                           ← TypeScript CLI tool
β”œβ”€β”€ watcher/                       ← Monitoring daemon (Docker)
β”œβ”€β”€ app/                           ← Next.js frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/            ← 9 UI components
β”‚   β”‚   β”œβ”€β”€ hooks/                 ← useBirdeye, useVault, useProgram
β”‚   β”‚   └── app/api/quantum/       ← IBM Quantum encryption route
β”‚   └── prisma/schema.prisma       ← PostgreSQL schema
β”œβ”€β”€ docker-compose.yml             ← PostgreSQL container
β”œβ”€β”€ run.sh                         ← One-command project launcher
└── upload_to_github.py            ← GitHub auto-deployment script

⚠️ Disclaimer

This is experimental software deployed on devnet for hackathon purposes. It has not been formally audited. The protocol is trustless by design β€” there is no admin key, no recovery mechanism, no support line if a mistake is made.

Test on devnet first. Read the code. Understand what you're signing.


╔══════════════════════════════════════════════════════════════╗
β•‘                                                              β•‘
β•‘   Your assets should outlive you.                           β•‘
β•‘   Your trust in humans shouldn't have to.                   β•‘
β•‘                                                              β•‘
β•‘   Built on Solana  β€’  Powered by Birdeye  β€’  Solflare-First β•‘
β•‘                                                              β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

Built for the Frontier Hackathon β€” Eitherway Track
Partner Tracks: πŸ¦… Birdeye Β· 🟠 Solflare

⭐ Star this repo if you believe crypto estates deserve better than nothing.

GitHub

About

Trustless Digital Inheritance Protocol on Solana πŸ’€

Resources

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

 
 
 

Contributors