LifeProof
A dead man's switch on Solana. Lock tokens in a vault, prove you're alive on a schedule. Miss the deadline — your nominated wallet inherits everything.
Connect your wallet above to get started
Grace Period
48h
Custody
Zero
Yield Source
Kamino
Execution
Permissionless
How It Works
Create Vault
Stake USDC or SOL, set a nominee wallet and check-in interval. On mainnet, funds immediately enter Kamino to earn yield.
Prove You're Alive
Sign a `proof_of_life` transaction before your deadline to roll it forward by one interval.
Stay Active
Every check-in resets the clock. Your vault accumulates yield on Kamino the entire time.
Or Lose It
Miss the deadline + 48h grace period, and the keeper bot or anyone on the network can execute the transfer to your nominee.
Kamino Yield Strategy
On mainnet, every token deposited into Aegis Vault is automatically routed into Kamino Finance— Solana's largest lending protocol. Your vault doesn't just sit idle. It earns.
kToken Receipt Tokens
When you deposit USDC, Kamino issues kTokens (e.g. kUSDC) as a receipt. The exchange rate grows as interest accrues, so 100 kUSDC today redeems for more than 100 USDC tomorrow.
Auto-Compounding APY
Kamino's reserves automatically compound yields from borrowers. You don't need to do anything — the kToken exchange rate continuously increases.
Full Redemption on Claim
Whether the owner closes their vault or the nominee claims it, the program calls `redeem_reserve_collateral` on Kamino — burning kTokens for the full underlying balance plus all accrued yield.
› deposit_reserve_liquidity flow
Auto Asset Transfer
Once a deadline passes and the 48-hour grace period expires, the vault enters a claimable state. No central server decides this — it's enforced entirely on-chain by the Anchor program.
T + 0
Vault Created
Tokens locked. Kamino deposit executed (mainnet). Clock starts.
T + interval
Check-in Due
Owner signs `proof_of_life`. Deadline rolls forward. Kamino keeps earning.
T + miss
Deadline Missed
Owner did not check in. Vault remains active but clock has expired.
+ 48 hours
Grace Period
48-hour buffer gives the owner one last chance to check in or close.
Claimable
Anyone Executes
`claim_vault` is now callable by anyone. Funds go to nominee.
On-Chain Guarantee
The nominee address is written immutably into the vault PDA at creation. No program instruction exists that allows the nominee to be changed after creation. The `claim_vault` instruction verifies the caller is passing the correct nominee via has_one = nominee on the vault account constraint. The program transfers to the nominee — not to the caller.
The Nominee Will Always Receive the Funds
After a deadline passes and the 48-hour grace period expires, the keeper bot network automatically executes the claim — on a guaranteed schedule, every 48 hours. Even if no one manually triggers it, the nominee will receive their funds. Anyone can also execute it themselves and earn the vault rent as a reward.
GitHub Actions keeper — runs every 48h
Always OnA TypeScript keeper bot is scheduled via GitHub Actions to scan all vaults and execute `claim_vault` for every expired one. No human required. It runs on a fixed schedule — guaranteed.
Good Samaritan dashboard
Any person can visit /keeper, see all claimable vaults in real time, and execute transfers in one click — earning ~0.002 SOL vault rent per claim.
Nominee self-execution
The nominee can always trigger `claim_vault` themselves, the moment the grace period ends. No keeper needed — maximum control for the beneficiary.
# GitHub Actions — every 48h, guaranteed
$ npx ts-node keeper.ts --once
› Connecting to devnet…
› Scanning program accounts…
found 12 active vaults
› Checking deadlines…
✓ vault 3HkdX... expired 26h ago — claimable
· vault 9mPqW... 4d 12h remaining — skip
› Executing claim_vault for 3HkdX...
✓ tx confirmed: 4xKp9m...Bwz
✓ funds → nominee F7mRqz...
✓ rent reclaimed: +0.00203 SOL
Next run: in 47h 59m
Nominee always receives — guaranteed.
Browser Companion (thin extension)
Solves the biggest community problem: forgetting to check in
A lightweight extension that works with Phantom, Solflare, or Backpack — not a new wallet. Deadline countdown on the icon, optional reminders, and deep links into Aegis Vault so check-ins are one click away. Your keys stay in the wallet you already trust.
Works with your existing wallet
Compatible with Phantom, Solflare, and Backpack — no new seed phrase, no custody change
Deadline countdown badge
Persistent badge on the extension icon shows how much time remains until your next check-in
Optional reminders
Browser alerts 24h, 6h, and 1h before your deadline expires — opt in, zero spam
One-click proof of life
Deep links open the right Aegis Vault page instantly — check in without hunting for the dApp
Why it matters
The community problem isn't the smart contract — it's human habit. A thin companion sitting in the toolbar makes check-ins frictionless without asking anyone to trust a new wallet or move their keys. Low barrier, high reliability.
Mobile (later)
A mobile companion app with biometric-gated proof-of-life — one face scan triggers a signed Solana transaction. Zero friction, maximum security.
Trust Model
No Admin Key
The deployed program has no upgrade authority. Once live, the code is immutable. No team wallet can alter rules or drain vaults.
Zero Custody
Tokens never touch a team wallet. They move directly: owner → vault PDA → nominee. The program only authorizes — it never holds.
Anchor Framework
Built with Anchor 0.32. Account constraints (`has_one`, `seeds`, `close`) are enforced at the instruction level — no manual signer checks needed.
Immutable Nominee
The nominee address is set at vault creation and baked into the PDA. No instruction exists to update it. Verified via `has_one` on every claim.
Privilege Escalation Guards
All mutable accounts in each instruction are explicitly declared with `#[account(mut)]`. The Solana runtime rejects any attempt to write to undeclared accounts.
Open Source
Full program source is public. Anyone can audit `claim.rs`, verify the Kamino CPI, inspect the PDA seeds, and reproduce the build.
Devnet Program Address
DHHHbFFGWX2y4HkgdePB61bUZxdJQw8VmfGvgR4cxeof