Difficulty: Advanced
Type: Feature
Summary
Persist wallet and session state securely so users do not need to reconnect on every app restart while avoiding unsafe storage of sensitive values.
Current Behaviour
Wallet state is held in a plain Zustand store without persistence. On app restart, the user is redirected to onboarding because isConnected resets to false.
Expected Behaviour
The app should restore non-sensitive wallet state on launch and support secure storage for any future session tokens or wallet integration metadata.
Suggested Implementation
Add a storage adapter using an Expo-compatible secure storage option for sensitive fields and async storage for non-sensitive preferences where appropriate. Rehydrate wallet state during app startup and expose a loading state before redirecting.
Files or Areas Likely Affected
src/features/wallet/wallet.store.ts
src/features/wallet/useWallet.ts
app/index.tsx
app/_layout.tsx
app/settings.tsx
src/lib/storage/
tests/
Acceptance Criteria
Additional Notes
Do not store private keys. This issue is about wallet address/session metadata only.
Difficulty: Advanced
Type: Feature
Summary
Persist wallet and session state securely so users do not need to reconnect on every app restart while avoiding unsafe storage of sensitive values.
Current Behaviour
Wallet state is held in a plain Zustand store without persistence. On app restart, the user is redirected to onboarding because
isConnectedresets to false.Expected Behaviour
The app should restore non-sensitive wallet state on launch and support secure storage for any future session tokens or wallet integration metadata.
Suggested Implementation
Add a storage adapter using an Expo-compatible secure storage option for sensitive fields and async storage for non-sensitive preferences where appropriate. Rehydrate wallet state during app startup and expose a loading state before redirecting.
Files or Areas Likely Affected
src/features/wallet/wallet.store.tssrc/features/wallet/useWallet.tsapp/index.tsxapp/_layout.tsxapp/settings.tsxsrc/lib/storage/tests/Acceptance Criteria
Additional Notes
Do not store private keys. This issue is about wallet address/session metadata only.