2.5 KiB
2.5 KiB
Phase 5 Complete: Biometric Auth + Mainnet Flip
Date: 2026-03-29 Branch: phase1-dev Commits:
d975d7d761- feat(wallet): require biometric/PIN auth before transaction signingdde0dd9f4f- feat(wallet): flip to Cardano mainnet
Task 1: Biometric Authentication at Transaction Signing ✅
Implementation:
BiometricAuthenticator.ktnow usesBIOMETRIC_WEAK | DEVICE_CREDENTIAL- Works for all device security types:
- Has fingerprint/face → biometric prompt
- PIN only → PIN prompt
- No auth set up → allows through (doesn't block transactions)
- Fires when user taps "Send" on confirmation screen, BEFORE tx is built/signed/submitted
- On auth failure/cancel → stays on confirmation screen, tx not submitted
Location: features/wallet/impl/src/main/kotlin/io/element/android/features/wallet/impl/biometric/BiometricAuthenticator.kt
Wired into: PaymentConfirmationNode.kt - calls biometricAuthenticator.authenticate() in the onConfirm handler
Task 2: Mainnet Flip ✅
Changed in CardanoNetworkConfig.kt:
val NETWORK: CardanoNetwork = CardanoNetwork.MAINNET
All derived values now use mainnet:
- Network ID: 1 (was 0)
- Koios API:
https://api.koios.rest/api/v1/(was preprod.koios.rest) - Explorer:
https://cardanoscan.io(was preprod.cardanoscan.io) - Address prefix:
addr1(wasaddr_test1) - Network name: "Mainnet" (was "Preprod Testnet")
- cardano-client-lib:
Networks.mainnet()(wasNetworks.preprod())
Also fixed: WalletPanelNode.kt now uses CardanoNetworkConfig.EXPLORER_BASE_URL instead of hardcoded URLs
To flip back to testnet: Change one line:
val NETWORK: CardanoNetwork = CardanoNetwork.TESTNET
Task 3: QA Pass ✅
- Build succeeds clean
- No hardcoded
preprodURLs in production code (only in preview providers for UI testing) - Address validation accepts
addr1...format - Explorer links point to mainnet cardanoscan.io
APK
Download: http://192.168.0.5:8888/element-x-ada-mainnet.apk
Size: 220 MB (arm64-v8a debug)
Type: Fdroid Debug (no Google Play services)
Remaining for Production
- Code signing - Need release keystore for Play Store
- Testing - Manual QA on real device with biometric
- Wallet recovery - Users on testnet will need to create new wallets (different addresses)
- Balance migration - Old testnet balances don't exist on mainnet (expected)
This completes Phase 5 of Element X ADA integration.