Title
[Contract/Recovery] On-Chain M-of-N Weighted Guardian Recovery and Key Rotation for Seedless Enclaves
Description
A hardware-bound WebAuthn passkey in Apple Secure Enclave is permanently tied to a single device. If a user loses their iPhone or MacBook, they must be able to recover their Soroban Smart Wallet without a 12-word seed phrase. This issue implements an on-chain M-of-N Weighted Guardian Social Recovery Contract, enabling trusted devices, secondary security keys, or guardian signers to collectively rotate the owner's public key.
Domain / Component
- Component: Soroban Smart Contracts / Recovery Architecture
- Layer: Account Abstraction & Key Management
Complexity & Priority
- Complexity: Hard (Multi-sig consensus, time-locks, and key rotation)
- Priority: P1 (Essential Account Safety & Loss Prevention)
Estimated Timeframe
- 2 – 3 Weeks (Contract implementation, time-lock state machine, and client UI flow)
Technical Requirements
- Extend
CustomAccountInterface storage to track a list of Guardian structs (address/public key, weight, and status).
- Create
initiate_recovery(new_owner_pubkey) which starts a 48-hour time-locked recovery challenge period.
- Create
support_recovery(recovery_id) allowing registered guardians to cast weighted votes.
- Allow the active owner to veto and cancel any unauthorized recovery attempt during the 48-hour time-lock window.
Acceptance Criteria
Dependencies & Prerequisites
Title
[Contract/Recovery] On-Chain M-of-N Weighted Guardian Recovery and Key Rotation for Seedless EnclavesDescription
A hardware-bound WebAuthn passkey in Apple Secure Enclave is permanently tied to a single device. If a user loses their iPhone or MacBook, they must be able to recover their Soroban Smart Wallet without a 12-word seed phrase. This issue implements an on-chain M-of-N Weighted Guardian Social Recovery Contract, enabling trusted devices, secondary security keys, or guardian signers to collectively rotate the owner's public key.
Domain / Component
Complexity & Priority
Estimated Timeframe
Technical Requirements
CustomAccountInterfacestorage to track a list ofGuardianstructs (address/public key, weight, and status).initiate_recovery(new_owner_pubkey)which starts a 48-hour time-locked recovery challenge period.support_recovery(recovery_id)allowing registered guardians to cast weighted votes.Acceptance Criteria
cancel_recovery()at any point before time-lock expiration to block an attack.new_owner_pubkeysucceed and old key signatures are rejected.Dependencies & Prerequisites
CustomAccountInterface) with On-Chainsecp256r1Passkey Auth #1 (CustomAccountInterfacepublic key rotation support).