Introduction

Protocol model

Vestige is a narrow onchain primitive: a deterministic inheritance rule for self-custodied assets. It is intentionally smaller than legal estate planning and stricter than a social recovery system.

Problem statement

Self-custody is powerful because the owner controls assets directly. The same property creates an inheritance problem: if the owner disappears, loses access, or dies, the intended heir usually has no safe onchain path to recover those assets.

Vestige does not try to identify death or legal ownership. Instead, it gives the owner a deterministic liveness rule: if this wallet does not check in for a configured amount of time, this heir address can claim the vault.

Core rule

The complete protocol rule can be reduced to one timestamp formula. The vault is claimable when the current block timestamp is greater than or equal to lastCheckIn + inactivityPeriod + gracePeriod.

Before that timestamp, the owner path is available. After that timestamp, owner-side actions that could move assets away from the heir are frozen.

claimableAt(owner) = lastCheckIn + inactivityPeriod + gracePeriod

Roles

The contract recognizes strict roles from addresses, not from names or offchain identity.

Owner
msg.sender that created the vault. Can configure, check in, deposit, and withdraw before claimable.
Heir
address configured by owner. Can activate inheritance and claim after the vault is claimable.
Receiver
address that receives claimed native USDC or ERC20 tokens when a claim function allows explicit receiver.
Contract owner
Ownable admin for pause/unpause only. It cannot claim a user's inheritance by role alone.

Non-goals

Vestige stays intentionally focused. Several things are out of scope for this contract.

  • No identity verification or proof of death.
  • No legal estate planning guarantees.
  • No automatic discovery of all wallet assets.
  • No centralized recovery desk.
  • No automatic bulk claim loop over arbitrary token lists.

Why Arc and native USDC

The current product profile is Arc Testnet with native USDC. This makes the main inheritance asset stable and readable for normal users: balances, deposits, withdrawals, and claims are presented as USDC rather than generic gas-token language.

ERC20 token support remains available, but native USDC is the main settlement path in the current dApp.