Zcash Web Wallet

Privacy-preserving Zcash tools running entirely in your browser.

No wallets found. Create or restore a wallet to get started.
Total Balance

0.00

ZEC
Recent Transactions

No transactions yet

RPC Endpoint
Add a custom RPC endpoint. Requires CORS headers or a local proxy.

Transaction Details

Transaction ID:
Transparent
Sapling Outputs
Orchard Actions
No shielded data found in this transaction.

Enter a viewing key and transaction ID to decode

Scan Transaction

Scan transactions to track your notes and compute your balance. Notes are stored in your browser's localStorage.

No wallets saved. Please generate or restore a wallet first.

Enter a transaction ID and viewing key to scan for notes.

How Scanning Works

Trial Decryption: The scanner attempts to decrypt each shielded output using your viewing key. Only outputs addressed to you will successfully decrypt.

Nullifier Tracking: When you spend a note, its nullifier is revealed. By scanning transactions, we can detect which notes have been spent.

Local Storage: All note data is stored in your browser's localStorage. Nothing is sent to any server.

Tracked Notes
Transaction History
Generate New Wallet

Generate a new Zcash wallet with a 24-word seed phrase. Your keys are generated locally and never leave your browser.

A friendly name to identify this wallet.
Testnet is for testing. Mainnet is for real ZEC.
Use different account indices to create separate wallets from the same seed.
Restore from Seed
Select the network for the restored wallet.
Security Notice

Testnet Only: These wallets are for Zcash testnet. Testnet coins have no real value.

Save Your Seed: Download and securely store your wallet file. Without the seed phrase, you cannot recover your wallet.

Local Generation: All keys are generated client-side using official Zcash cryptographic libraries.

Wallet Details

Error:
Wallet generated successfully!
Seed Phrase (Secret!)
Viewing Key
Get Testnet ZEC from Faucet

Generate or restore a wallet to see your keys and addresses

Saved Wallets
Derive Addresses

View transparent and unified addresses derived from a saved wallet. Useful for sharing receiving addresses or verifying address derivation.

No wallets saved. Please generate or restore a wallet first.
About Address Indices

Transparent Addresses: Derived using BIP-32/BIP-44 paths. Each index always produces a unique address.

Unified Addresses: Derived using ZIP-316 diversifier indices. Each contains Orchard and Sapling receivers.

Sapling Diversifier Note: Only ~50% of diversifier indices produce valid Sapling addresses. Invalid indices automatically skip to the next valid one, so consecutive indices may produce the same unified address. This is expected Zcash protocol behavior (ZIP-32).

Tip: Use different indices to generate unique receiving addresses for better privacy.

Derived Addresses

Select a wallet and click "Derive Addresses" to view addresses.

Send Transparent Transaction

Sign a transparent (t-address) transaction. Requires UTXOs from scanned transactions. The signed transaction hex can be broadcast using an external tool or RPC.

No wallets saved. Please generate or restore a wallet first.
Enter a transparent (t-address) or unified address.
Default: 10000 (0.0001 ZEC)
Transaction expires after this block height. Use 0 for no expiry.
Important

Transparent Only: This feature only supports spending from transparent addresses (t-addresses). Shielded spending is not yet supported.

Scan First: You must scan transactions containing your UTXOs before sending. Use the Scanner tab to track your notes.

Broadcast Separately: The signed transaction hex must be broadcast using an RPC endpoint or external tool like zcash-cli sendrawtransaction.

Available UTXOs

Select a wallet to view available UTXOs.

Transaction Signed
Or broadcast manually using zcash-cli sendrawtransaction <hex>

Fill in the form and click "Sign Transaction" to create a signed transaction.

About This Project
How Your Privacy Is Protected

100% Local: This application runs entirely in your browser. No data is sent to any server we control.

Client-Side Decryption: Your viewing key is processed using WebAssembly and never leaves your browser.

Your RPC Endpoint: Transaction data is fetched directly from the RPC endpoint you configure. Only the transaction ID is sent to the node.

Official Zcash Libraries: We use the official Zcash Rust cryptographic libraries (zcash_primitives, orchard, sapling-crypto) compiled to WebAssembly.

Open Source: Full source code available on GitHub. You can audit the code, build it yourself, or run it entirely offline.

Minimal Dependencies: Only essential libraries to reduce attack surface. Vanilla JS with Bootstrap for styling, no heavy frameworks.