Skip to content

bitcoin-silver/web-wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

79 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

BitcoinSilver Web-Wallet

Introduction

A modern, secure, non-custodial, client-side signing wallet for the Bitcoin Silver network.

BitcoinSilver Web-Wallet

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

Website โ€ข Explorer

๐Ÿš€ What's New in v2.7

๐Ÿ’ธ Safer Fee Estimation (Live-Network Ready)

  • Smart Fee Sanity Guard: estimatesmartfee values are now validated against node policy baseline fees.
  • Baseline Fallback: If smart fee is missing/unusable, wallet falls back automatically to a safe baseline derived from relayfee, incrementalfee, and mempoolminfee.
  • Outlier Clamp: Extreme estimator spikes are clamped to baseline to prevent accidental overpay.

๐Ÿงญ Better Send Controls

  • Always-Available Manual Fee: Users can set manual fee even when node fee is available.
  • Quick Revert to Node Fee: One-click switch back from manual fee to node-driven fee mode.
  • Send Preview Improvements: Transaction preview shows selected inputs, amount, estimated fee, fee source, fee rate, and expected change.

๐Ÿ”„ Migration Send Path Hardening

  • Deterministic Fee for Migration Sweep: Migration now resolves fee first, then sends using that exact resolved value.
  • Same Improved Fee Logic: Migration uses the same clamped smart-fee + baseline fallback safety path as normal send.

๐Ÿš€ What's New in v2.6

๐Ÿ›‘ Safe Transfer Guardrails (Migration + Send)

This release prioritizes safety-first transfer behavior for large and complex wallets:

  • Migration Preflight Gates: Migration now blocks early when smart-fee is unavailable, pending transactions exist, or sweep conditions are unsafe.
  • No Automatic Chunked Sweep: If a migration/send would require chained chunked transactions, the wallet now aborts with a clear warning instead of attempting partial multi-step execution.
  • Large Send Safety Block: Near-max sends that exceed safe single-sweep limits are blocked and users are instructed to split manually.

๐Ÿงฎ Satoshi-Level Transaction Math

  • Precision Upgrade: Core send logic now uses satoshi-based arithmetic for fee/input/output calculations to reduce floating-point rounding edge cases.
  • More Deterministic Fees: Sweep/change math is calculated in integer satoshis before final serialization and broadcast.

โœ… Migration Reliability Improvements

  • Pending Transaction Hard Stop: Migration is blocked until mempool activity is confirmed.
  • Controlled Failure Behavior: Unsafe migration states are rejected before broadcast wherever possible.

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.

Optional Remembered Session (Encrypted Local Storage)

You can optionally enable "Remember Wallet On This Device" from the Settings tab.

When enabled:

  • Wallet session data is encrypted and stored in browser local storage.
  • The wallet can auto-restore without re-entering your seed/WIF every time.

Risk notes:

  • If this device is compromised (malware/extensions), local encrypted data can still be attacked.
  • In web builds, dart-define secrets are extractable from shipped assets; this improves resistance but is not absolute secrecy.
  • Never enable remembered sessions on shared/public devices.

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

5 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors