Mobile wallet for BitcoinSilver (BTCS)
Built with Flutter for Android & iOS
- BIP39 Seed Phrase Support: Create or restore wallets using 12 or 24-word recovery phrases.
- Cross-Platform Compatibility: Uses standard derivation path
m/44'/0'/0'/0/0(same as Web Wallet 2.2). - Advanced Recovery: Support for raw private key (WIF) recovery and generation.
- Local Transaction Signing (No Node Key Exposure): Transactions are built and signed in-app using local keys, then broadcast as raw hex.
- Seed + WIF Wallet Modes: Users can create/use both mnemonic-based and WIF-based wallets.
- Advanced Send / Coin Control: Select specific confirmed UTXOs, paginate inputs, estimate fees, and preview net send amount.
- Send and Receive: Seamless BTCS transfers for both legacy and SegWit destination types.
- BTCS Address Compatibility: Supports BTCS Bech32 (
bs1...) and legacy Base58 address handling in signer and send flow. - Address Validation Improvements: Debounced validation, scanner/address-book parity, and resilient fallback validation for BTCS RPC edge cases.
- QR Code Scanning: Supports BIP21 URI format for easy transfers.
- Transaction Tracking: Real-time history with smart confirmation tracking and pending-state management.
- Smart Pending Handling: Tracks local pending spends, avoids double-spend UTXO reuse, and keeps balances accurate during mempool transitions.
- Biometric Security: Protect your wallet and recovery phrase with fingerprint or face recognition.
- Secure Storage: Sensitive keys and mnemonics are stored in encrypted secure storage.
- Upgraded to Flutter 3.44.4 • channel stable
- Upgraded to Android Gradle Plugin (AGP) 9.6.0
- Upgraded to Kotlin 2.4.0
- Fee Estimation Hardening:
- Handles
estimatesmartfeefailures explicitly (RPC errors, missingfeerate, andfeerate: -1/ no estimate). - Adds send-time manual fee entry fallback when estimation is unavailable.
- Shows fee estimation status on Send screen with loading state and warning indicator.
- Blocks signing/broadcast until a valid fee rate is provided (estimated or manual).
- Fee-bump retry dialog only runs for transactions that started from estimator-provided fee rates.
- Handles
- Manual Fee UX Improvements:
- Unit toggle for
sat/vBandBTCS/kvBwith conversion. - Network-condition presets tuned to current conditions:
- Low:
0.085 BTCS/kvB - High:
0.10 BTCS/kvB
- Low:
- Unit toggle for
- Performance improvements and dependency updates.
# Install dependencies
flutter pub get
# Run in development (uses public RPC)
flutter run
# Build APK
flutter build apk
# Build with custom RPC
flutter build apk --release --obfuscate --split-debug-info=build/app/outputs/symbols --dart-define-from-file=dart_defines.jsonThe wallet connects to the public RPC proxy at https://bitcoinsilver.eu/btcs-rpc by default (no authentication required).
For custom RPC node, create dart_defines.json:
{
"RPC_URL": "http://your-rpc:port",
"RPC_USER": "your_user",
"RPC_PASSWORD": "your_password"
}# Android APK
flutter build apk --release --dart-define-from-file=dart_defines.json
# Android App Bundle (Play Store)
flutter build appbundle --release --obfuscate \
--split-debug-info=build/app/outputs/symbols \
--dart-define-from-file=dart_defines.json
# iOS
flutter build ios --release --dart-define-from-file=dart_defines.jsonOutput locations:
- APK:
build/app/outputs/flutter-apk/app-release.apk - AAB:
build/app/outputs/bundle/release/app-release.aab
- Private keys stored in encrypted secure storage (Keychain/KeyStore)
- Optional biometric authentication
- RPC credentials injected at build time, never hardcoded
- No personal data collected
Never commit dart_defines.json or .env to version control.
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes (
git commit -m 'Add my feature') - Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
For bugs or feature requests, please open an issue.
- Current Google Play version 5.5
MIT
