Operations

Operational runbook

A practical checklist for running Vestige on Arc Testnet: what to verify before launch, what to watch during usage, and how to safely rotate deployments.

Launch checklist

Before a deployment is treated as active, confirm the contract, frontend, wallet, and docs all point to the same Arc Testnet address.

Contract bytecode
ArcScan shows code at NEXT_PUBLIC_VAULT_ADDRESS.
ABI version
Frontend calls USDC-named functions, not old ETH-named selectors.
Network
Wallet and wagmi config use Arc Testnet chain ID 5042002.
Docs
Deployed contracts page contains the same active address.
Smoke test
Create, deposit, check in, withdraw, claim, and disable with low values.

Routine monitoring

Vestige does not require an operator for user vaults, but the product should still monitor deployment health and frontend correctness.

  • Watch failed transaction reports for stale address or ABI mismatches.
  • Watch Arc RPC availability and fallback behavior.
  • Check that wallet transaction labels still say native USDC in the dApp UI.
  • Review whether users are leaving claimed-but-not-disabled vaults behind.
  • Track support questions around heir owner-address discovery.

Deployment rotation

If a new contract is deployed, treat the address change as a release. Do not silently swap it without updating docs and running smoke tests.

1. Deploy new InheritanceVault
2. Verify bytecode on ArcScan
3. Update NEXT_PUBLIC_VAULT_ADDRESS
4. Restart/rebuild frontend
5. Update /deployed-contracts
6. Smoke test owner and heir flows
7. Publish release note

Incident response

If users report unsafe wallet warnings, stop encouraging transactions until the active address is verified. Most severe frontend incidents start as a wrong address or wrong network problem.

Non-contract address
Freeze guidance, verify env, restart frontend, confirm ArcScan bytecode.
Wrong ABI
Compare deployed selectors with frontend ABI; redeploy or rollback frontend.
RPC outage
Use fallback RPC or wait; do not ask users to retry blindly.
Unexpected claim state
Read getVaultDetails, claimableAt, getVaultState, and block timestamp directly.