Background
Even passkey-first users want a paper backup. An optional, opt-in encrypted seed protects against lost cloud sync.
What to build
An opt-in flow that generates a BIP-39 phrase, encrypts it with a user passphrase, stores in IndexedDB, and registers the derived key as a contract signer.
Key files
frontend/wallet/lib/recovery.ts (new)
contracts/wallet/src/signers.rs (extend)
Acceptance criteria
Drips Wave · Complexity: Advanced · 200 points
Background
Even passkey-first users want a paper backup. An optional, opt-in encrypted seed protects against lost cloud sync.
What to build
An opt-in flow that generates a BIP-39 phrase, encrypts it with a user passphrase, stores in IndexedDB, and registers the derived key as a contract signer.
Key files
frontend/wallet/lib/recovery.ts(new)contracts/wallet/src/signers.rs(extend)Acceptance criteria