Skip to content

bitcoin-silver/web-wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

60 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

BitcoinSilver Web-Wallet

Introduction

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.

BitcoinSilver Web-Wallet

The Official Web-Wallet for BitcoinSilver (BTCS)
Built with Flutter for Web

Website β€’ Explorer

πŸš€ What's New in v2.5

πŸͺ™ Coin Control (Advanced Send)

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.

πŸ’Έ Fee Estimation

  • Dynamic Calculation: Real-time vByte estimation based on input/output count.
  • Smart Rates: Integrated estimatesmartfee integration for market-accurate fees.
  • Net Send Display: Always know exactly what the recipient receives after miner fees.

βœ… Validation & Guardrails

  • 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.

πŸ“ˆ Precision Data

  • 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.

πŸ›‘οΈ Security Architecture

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 dart2js environment constraints (e.g., custom 64-bit integer handling).

πŸ—οΈ Technical Stack

  • Derivation: BIP39 Mnemonic Seed / BIP44 Standard Paths.
  • Cryptography: PointyCastle (RIPEMD160/SHA256).
  • Frontend: Flutter Web (Optimized for performance).
  • Communication: JSON-RPC over HTTPS.

Major Updates in v2.4

πŸ’° Live price update fetched directly from LiveCoinWatch

  • 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.

πŸ—οΈ Modular Architecture

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.

🌱 Seed Phrase Support (BIP39)

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.

πŸ”„ WIF-to-Seed Migration (Sweep)

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.

πŸ“Š Real-time Network Info

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).

πŸ›‘οΈ Enhanced Security

  • 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.

Features

  • 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.

Security Warning

⚠️ Web wallets are intended for convenience, not long-term high-value storage.

  • 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.

Development

Run locally:

flutter run -d chrome --dart-define-from-file=dart_defines.json

or

flutter run -d web-server --web-port 8080 --dart-define-from-file=dart_defines.json

Building for Deployment

Build the web app:

flutter build web --release --base-href "/web-wallet/" --dart-define-from-file=dart_defines.json

RPC Configuration

The 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-Origin header matching https://bitcoinsilver.top (or the origin you host the wallet from).
  • Handle preflight OPTIONS requests and forward POST JSON-RPC payloads to an upstream node.

License

MIT License.

About

Bitcoin Silver Web Wallet - Simple, secure, decentralized

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors