Introduction
Vestige is an Arc-native inheritance vault protocol for native USDC and ERC20-compatible assets. It gives an owner a self-custodial dead-man switch: keep checking in while active, or let a configured heir claim after the silence window matures.
Current deployment
The active public test deployment used by the frontend is on Arc Testnet. Use this address when testing the current dApp build or integrating manually. If this address changes, the frontend environment and this page must be updated together.
What Vestige does
A user creates a vault, chooses an heir wallet, configures an inactivity period and a grace period, then optionally deposits native USDC and ERC20-compatible tokens. The owner can keep the vault alive by calling checkIn before the claim window matures.
If the owner stops checking in long enough, the heir can activate inheritance and claim assets. The contract does not contact users, resolve disputes, or infer real-world intent. It only enforces the configuration stored onchain.
- One owner address maps to one active vault lifecycle.
- The heir is fixed by the owner but can be updated before the vault becomes claimable.
- Native USDC and ERC20 token balances are accounted separately.
- ERC20 token claims are granular to avoid unbounded claim transactions.
- A drained vault can be disabled so the owner can create a new lifecycle later.
Primary flows
Vestige has two user flows and one builder flow.
Recommended reading order
If you are reviewing the protocol, read Lifecycle, Contract overview, Function reference, and Security model. If you are integrating the dApp, read Deployed contracts, dApp integration, and Deployment.
- Protocol model explains why the dead-man switch exists and what Vestige does not attempt to solve.
- Vault lifecycle defines the state machine and timing formulas.
- Assets and balances explains native USDC, ERC20 balances, tracked tokens, and cleanup requirements.
- Function reference maps every contract function to caller, state, and effect.
