# BLOCKERS.md - Phase 1 Implementation Blockers ## Task 1: Module Scaffolding ### Completed - ✅ Module structure created (api/impl/test) - ✅ Metro DI setup following Element X patterns - ✅ WalletEntryPoint and WalletState APIs defined - ✅ PaymentFlowNode placeholder with Appyx navigation - ✅ FakeWalletEntryPoint for testing - ✅ Cardano client library dependencies added - ✅ ProGuard rules configured - ✅ Basic unit tests added - ✅ Pushed to Gitea phase1-dev branch ### Not Verified (No Android SDK in build environment) - ⚠️ `./gradlew :features:wallet:impl:assemble` - compilation not tested - ⚠️ `./gradlew ktlintCheck --continue` - code style not verified - ⚠️ `./gradlew :features:wallet:impl:test` - unit tests not run ### Action Required When a developer with Android SDK runs this code: 1. Run `./gradlew :features:wallet:impl:assemble` to verify compilation 2. Run `./gradlew ktlintCheck --continue` and fix any code style issues 3. Run `./gradlew :features:wallet:impl:test` to verify tests pass ## Questions Requiring Human Decision ### Q1: Wallet Scope Currently using `SessionScope` for wallet bindings. Should wallets be: - Per-session (current implementation) - each Matrix account has its own wallet - App-wide (`AppScope`) - one wallet shared across Matrix accounts **Recommendation:** Per-session seems correct for a Matrix-integrated wallet. ### Q2: Key Storage Location Currently planning to use `EncryptedSharedPreferences` with Android Keystore. - Should keys be tied to biometric enrollment? (invalidated if biometrics change) - Or should keys persist even after biometric changes? **Recommendation:** Keys should be invalidated on biometric changes for security. ### Q3: Testnet vs Mainnet Phase 1 plan targets mainnet (`Constants.KOIOS_MAINNET_URL`). - Should we build testnet support initially for safer testing? - Or go straight to mainnet? **Recommendation:** Testnet first for safer development, easy switch to mainnet later. --- *Last updated: 2026-03-27*