A modern, secure, non-custodial, client-side signing wallet for the Bitcoin Silver network. This version introduces significant architectural improvements, seed phrase support, and a built-in migration tool.
The Official Web-Wallet for BitcoinSilver (BTCS)
Built with Flutter for Web
Full control over which UTXOs are used in a transaction:
- Advanced UI: Manually hand-pick inputs from your confirmed UTXO set.
- Live Summary: Instant updates on total selected inputs and transaction size.
- Management: Scrollable UTXO list with index, TXID, amount, and confirmation status.
- Flexibility: Built-in 'All / None' selectors for rapid management.
- Dynamic Calculation: Real-time vByte estimation based on input/output count.
- Smart Rates: Integrated
estimatesmartfeeintegration for market-accurate fees. - Net Send Display: Always know exactly what the recipient receives after miner fees.
- Real-time RPC Validation: Address format verified via node-side
validateaddress(700ms debounce). - Hard Guards: Prevents dust inputs (< 0.00000546), negative amounts, and insufficient balance errors before the 'Send' button is ever active.
- Confirmation Accuracy: Real-time confirmation tracking calculated via
getblockcount-utxo.height. - Address-Agnostic Routing: Native support for Native SegWit (bs...), Legacy P2PKH (b/B...), and Legacy P2SH (8/3...) address types with automatic script generation.
This version marks a major shift in our security model:
- Client-Side Signing: Transactions are signed locally in the browser. Private keys (WIF) and seed phrases never touch the network/server.
- Zero-Trust Broadcast: The RPC node only receives a signed transaction hex; it never sees your private keys or your balance information.
- Web Runtime Optimized: Logic refactored to support strict
dart2jsenvironment constraints (e.g., custom 64-bit integer handling).
- Derivation: BIP39 Mnemonic Seed / BIP44 Standard Paths.
- Cryptography: PointyCastle (RIPEMD160/SHA256).
- Frontend: Flutter Web (Optimized for performance).
- Communication: JSON-RPC over HTTPS.
- Bitcoin Silver price is aquired directly from LiveCoinWatch and updated every 5 minutes.
- Wallet balance is converted in USD and displayed to keep user informed about price fluctuations.
The project has been refactored from a monolithic structure to a scalable, modular architecture using the Provider pattern:
- Models: Structured data objects for Wallets and Transactions.
- Providers: Centralized state management for UI reactivity.
- Services: Dedicated logic for cryptography, storage, and RPC communication.
- Screens: Dedicated UI layers for Welcome, Setup, Dashboard, and Network Info.
Moving beyond raw private keys, the wallet now supports modern BIP39 Seed Phrases:
- Generate 12 or 24 words: Choose your desired security level.
- BIP44 Derivation: Industry-standard derivation paths for maximum compatibility.
- Secure Backup UI: Dedicated interface to ensure users save their phrases correctly.
A unique tool to help legacy users upgrade to modern security:
- Automatic Sweep: Transfer all funds from a legacy WIF key to a new Seed-derived address in one click.
- Smart Handling: If the wallet is empty, it upgrades the wallet type instantly without requiring a blockchain transaction.
- Forced Backup: Automatically prompts the user to secure their new keys post-migration.
A new dashboard to monitor the BTCS network health directly within the wallet:
- Blockchain Stats: Height, Difficulty, and Median Time.
- Mempool Metrics: Pending transaction count and size.
- Mining Data: Global network hashrate with automatic unit conversion (GH/s, TH/s).
- In-Memory Storage: Sensitive keys now live only in the application's RAM.
- Refresh Protection: Refreshing the browser (F5) now clears the session and logs the user out, preventing "partial state" mnemonic loss.
- Zero Leaks: All debug prints and sensitive logs have been removed for production.
- CORS-Ready RPC: Improved RPC communication that works seamlessly with secure proxies.
- Seed Phrase Wallet: Modern 12/24 word recovery phrases (Recommended).
- Legacy WIF Wallet: Support for existing raw Private Keys (WIF).
- Send/Receive: Full transaction support with Bech32 (bs1...) addresses and QR codes.
- Coin Control: Advanced UTXO selection for privacy and fee optimization.
- Glassmorphism UI: A sleek, dark-themed interface with neon purple and gold accents.
- Private keys exist ONLY in memory during your active session.
- Closing the tab or refreshing the page logs you out instantly.
- Always verify the URL is
https://bitcoinsilver.top. - For large amounts, always use a desktop or hardware wallet.
Run locally:
flutter run -d chrome --dart-define-from-file=dart_defines.jsonor
flutter run -d web-server --web-port 8080 --dart-define-from-file=dart_defines.jsonBuild the web app:
flutter build web --release --base-href "/web-wallet/" --dart-define-from-file=dart_defines.jsonThe wallet uses an RPC proxy to communicate with BitcoinSilver nodes. By default the project expects a secure proxy endpoint such as https://bitcoinsilver.eu/btcs-rpc (or your own proxy).
The proxy must:
- Serve over HTTPS.
- Return a single
Access-Control-Allow-Originheader matchinghttps://bitcoinsilver.top(or the origin you host the wallet from). - Handle preflight
OPTIONSrequests and forward POST JSON-RPC payloads to an upstream node.
MIT License.
