Problem
Wallet loss, compromised devices, and inaccessible embedded-wallet sessions can strand a user from investments, repayments, or ownership records. A support-only account reset would create a dangerous unilateral takeover path.
Scope
- Define recovery states: requested, challenged, cooling-off, approved, executed, cancelled, and disputed.
- Require multiple independent factors such as the current session, verified contact channel, recovery key/guardian, and manual high-risk review.
- Bind recovery to the exact old/new wallet, network, user, reason, nonce, and expiry.
- Add a mandatory delay with notifications to every existing channel and a cancellation path from the old wallet.
- Freeze only high-risk actions during recovery while preserving safe read-only access and required repayments.
- Rebind Stellar ownership references through auditable migration records; never rewrite historical ownership.
- Rate-limit attempts and detect repeated or correlated recovery abuse.
Acceptance criteria
- No support agent or single factor can complete recovery alone.
- Old-wallet proof can cancel a pending takeover before execution.
- Historical transactions remain attributable to their original wallet.
- Concurrent recovery attempts resolve deterministically.
- Every transition is tamper-evident and redacts sensitive evidence.
Required tests
Lost device, compromised email, malicious support actor, old-key cancellation, simultaneous requests, expired approvals, partial provider outage, and audit redaction.
Non-goals
Do not store user private keys or seed phrases.
Problem
Wallet loss, compromised devices, and inaccessible embedded-wallet sessions can strand a user from investments, repayments, or ownership records. A support-only account reset would create a dangerous unilateral takeover path.
Scope
Acceptance criteria
Required tests
Lost device, compromised email, malicious support actor, old-key cancellation, simultaneous requests, expired approvals, partial provider outage, and audit redaction.
Non-goals
Do not store user private keys or seed phrases.