Rotation vs recovery
The key difference is whether the user can still sign in:
Rotation is simpler and more secure than recovery because the user proves ownership directly with their existing credential. No identity verification from a third party is needed. If your users are about to get a new phone, guide them to rotate before they wipe or dispose of the old device — it’s a much smoother experience than going through recovery afterward.
What rotation changes and what it preserves
Rotation only replaces the authentication credential. Everything else stays exactly the same:The rotation flow
Implementing rotation in your UI
Place credential rotation in a Security section of your account settings — not on the home screen. Users who need it will know to look there; casual users won’t stumble into it accidentally.src/screens/RotateCredentialScreen.tsx
Rotation error handling
src/services/rotation.ts
Monitoring and notifications after rotation
Log every rotation event and notify the user immediately. An unexpected rotation notification — one the user did not initiate — is a strong signal of account compromise.src/server/services/rotationAudit.ts
Production checklist
- ✅ Surface credential rotation in a Security settings section, not on the main dashboard
- ✅ Gate the rotation screen behind an authenticated session — never allow unauthenticated rotation
- ✅ Show clear step-by-step progress so users know which device to complete the steps on
- ✅ Send a notification (email or push) every time rotation completes
- ✅ Log all rotation events with timestamp, wallet address, outcome, and IP
- ✅ Alert on repeated rotation failures for the same wallet
- ✅ Remind users to rotate before disposing of old devices — consider adding a prompt in device/account settings flows
- ✅ Test the full rotation flow on both iOS and Android before launch