`TL;DR: We built a self-custodial Zcash wallet that runs entirely in your browser. No backend, no tracking, no account needed. Your keys never leave your device.
Live demo: Zcash Web Wallet
GitHub: GitHub - LeakIX/zcash-web-wallet
Video: https://x.com/dwillems42/status/2006037125762777143 and https://x.com/dwillems42/status/2005966595852513431
Note: This wallet has only been tested on testnet so far. We plan to polish it further before recommending mainnet use. Please test with testnet ZEC first!
Who We Are
This project is developed by the LeakIX team. At LeakIX, we support privacy-focused projects and build tooling and maintain infrastructure for the privacy community. Zcash Web Wallet is part of our commitment to making privacy-preserving technology more accessible to everyone.
This is an independent project - not funded by any grant. We’re building this because we believe in Zcash and privacy-preserving technology.
What is it?
Zcash Web Wallet is a privacy-preserving wallet toolkit that runs 100% client-side in your browser. All cryptographic operations happen locally using the official Zcash Rust libraries (zcash_primitives, orchard, sapling-crypto) compiled to WebAssembly.
This means:
- Your seed phrase never leaves your browser
- Your viewing keys stay on your device
- No backend server to trust (or get hacked)
- No account registration required
- Works offline after initial load
Current Features
Simple View (Default)
Perfect for everyday users:
- Balance display with Mainnet/Testnet indicator
- Receive - Show your address with copy button
- Send - Send transparent transactions
- Recent transactions - View your transaction history with timestamps and explorer links
Advanced Features (Admin View)
For power users who need more control:
Wallet Management
- Generate new wallets (24-word BIP39 seed phrases)
- Restore existing wallets from seed phrase
- Support for both Mainnet and Testnet
- Multiple wallet support
Transaction Scanning
- Scan transactions using your viewing key
- Decrypt shielded outputs (Sapling & Orchard)
- Track notes (spent/unspent status)
- Balance breakdown by pool (Transparent, Sapling, Orchard)
Address Derivation
- Derive transparent addresses (t1/tm)
- Derive unified addresses (u1/utest1)
- Duplicate address detection (Sapling diversifier behavior)
- Save addresses to wallet for scanning
- Export as CSV
Accountant View
- Transaction ledger with running balance
- Export to CSV for tax reporting
- Cost basis tracking
Other Features
- Dark/Light mode
- Mobile-friendly interface
- Multiple RPC endpoint support
- Transaction broadcast capability
The Mindset
Why another wallet?
We wanted a wallet that:
-
Respects privacy by design - Not just in the Zcash protocol sense, but in how the wallet itself operates. No analytics, no telemetry, no usage tracking.
-
Is truly self-custodial - Many “web wallets” are just interfaces to custodial services. This wallet has no backend. Period.
-
Uses official libraries - No reimplementation of cryptography. The WASM module wraps the same Rust libraries used by zcashd and other official tools.
-
Is open source and auditable - Every line of code is on GitHub. You can build it yourself, verify the deployed version matches the source, or host your own instance.
-
Works everywhere - No app store approval needed. Works on any device with a modern browser.
Architecture
Browser Zcash Node
| |
| 1. User enters viewing key + txid |
| |
| 2. JavaScript fetches raw tx via RPC |
|----------------------------------------------â–ş|
| 3. Raw tx hex returned |
|â—„----------------------------------------------|
| |
| 4. WASM decrypts locally |
| (keys never leave browser) |
The wallet connects directly to Zcash RPC endpoints (like lightwalletd or your own node). Transaction data flows from the node to your browser, where it’s decrypted locally. Your keys never touch a server.
Current Status & Roadmap
Current Status
The wallet is functional but still in active development. We have only tested on testnet so far and plan to polish it further in the near future before recommending mainnet use. We’re sharing it now to gather feedback from the community.
Future Plans
We’re actively working on this project. Here’s what’s coming:
Short-term
- QR codes for receiving addresses
- Transaction confirmation tracking
- Automatic UTXO fetching from explorer APIs
- More thorough mainnet testing
Medium-term
- Orchard shielded transaction signing
- Hardware wallet integration (viewing key export)
- Viewing-key-only mode (read-only wallets)
- End-to-end test suite
Long-term
- Native mobile app (Zashi-equivalent experience)
- DEX integration
- Full shielded send support
Check the GitHub Issues for the complete list and to suggest features.
Technical Details
For the developers in the room:
- Frontend: Vanilla JavaScript + Bootstrap 5 + Sass (no framework bloat)
- Crypto: Rust compiled to WASM using wasm-pack
- Libraries: zcash_primitives, zcash_keys, orchard, sapling-crypto
- Storage: localStorage (all data stays in your browser)
- Deployment: GitHub Pages (static hosting, no server)
The codebase is modular - the core Rust library is shared between the WASM module and a CLI tool, making it easy to maintain and test.
Try It Out
- Visit Zcash Web Wallet
- Generate a new testnet wallet (or restore an existing one)
- Get some testnet ZEC from a faucet
- Scan your transactions and watch your balance update
Important: This is experimental software that has only been tested on testnet. Please read the disclaimer and don’t store more funds than you’re willing to lose. Always backup your seed phrase securely.
Get Involved
This is an open source project and contributions are welcome!
- Report bugs: GitHub Issues
- Contribute code: PRs welcome
- Suggest features: Open an issue or comment below
- Spread the word: Share with others who might find it useful
Connect
LeakIX
- Website: leakix.net
- GitHub: github.com/LeakIX
- Twitter/X: @leak_ix
- LinkedIn: linkedin.com/company/leakix
We’d love to hear your feedback, questions, and suggestions. What features would make this most useful for you?
Built with privacy in mind by the LeakIX team. No tracking. No backend. Just Zcash.