Status: scaffolded
A stateful inheritance / recovery scaffold where a fallback party may claim funds if the owner does not keep the covenant alive.
Actors:
- owner keeps the switch alive with
ping - fallback claims after inactivity timeout
Paths:
claimfor fallback after timeout agepingfor owner keepalive continuationupdate_fallbackfor owner-managed beneficiary rotation
claimrequires fallback signature andthis.age >= timeout_age.pinglets the owner continue the covenant state.update_fallbacklets the owner rotate the fallback identity.- This scaffold does not yet constrain output shapes, value preservation, or exact reset semantics for the inactivity timer.
last_ping_ageis tracked as state metadata for future richer logic, but this first scaffold still relies onthis.ageas the enforceable timeout primitive.
Keepalive and fallback updates are modeled as singleton state transitions, making this a direct continuation pattern under KIP-20-style state lineage.
init_owner: owner pubkey stored directly in state.init_fallback: fallback pubkey stored directly in state.init_timeout_age: inactivity threshold expressed againstthis.age.init_last_ping_age: tracked metadata for the last keepalive state.
Use this for inheritance flows, contingency treasury recovery, solo-operator failover, and dormant-account release logic.
Benchmarking not yet recorded.
Not externally audited. Internal audit posture is now clean of the earlier byte[32]-state-write compiler hazard: this pattern uses direct pubkey state instead of hashed byte[32] owner/fallback slots, matching the safer workaround already used in Ownable v1 / SocialRecovery.
- Do not use this when recovery should require multiple guardians or a quorum.
- Do not use this when claim conditions depend on off-chain attestations or milestone proof.
- Do not use this if hidden owner/fallback commitments matter more than compiler compatibility; this v1 keeps pubkeys explicit in state.
- Do not treat this scaffold as production-ready until it has output constraints, clearer timer semantics, and testnet exercise.