Introduction to Tornado Nova
Tornado Nova is an experimental privacy pool protocol that represents a significant evolution beyond the original Tornado Cash. Unlike fixed-denomination mixers, Nova allows you to deposit arbitrary amounts and perform internal shielded transfers between users—all while maintaining strong privacy guarantees through zero-knowledge proofs.How it works
Learn about the UTXO model, zkSNARKs, and privacy mechanisms
Installation
Get up and running with Tornado Nova in minutes
API reference
Explore the complete API documentation
Smart contracts
Deep dive into the Solidity implementation
Key features
Arbitrary deposit amounts
Unlike traditional Tornado Cash pools with fixed denominations (0.1, 1, 10, 100 ETH), Nova accepts any amount within configured limits:The beta version has a 1 ETH deposit limit that can be increased through governance.
Internal shielded transfers
Users can transfer funds to each other inside the pool without withdrawing to Layer 1. This enables:- Private peer-to-peer payments
- Fund pooling and splitting
- Multi-hop privacy routing
- Gas-efficient privacy operations on L2
UTXO-based privacy model
Tornado Nova uses a UTXO (Unspent Transaction Output) model similar to Bitcoin, where each transaction:- Consumes up to 16 input UTXOs (spent commitments)
- Creates exactly 2 output UTXOs (new commitments)
- Proves correctness using zkSNARKs without revealing amounts or relationships
Zero-knowledge proof verification
Every transaction requires a zkSNARK proof that verifies:- Input UTXOs exist in the commitment tree
- User knows the private keys for all inputs
- Output commitments are correctly formed
- Amounts balance (inputs = outputs + fees)
Tornado Nova supports both 2-input and 16-input transactions for efficient UTXO consolidation.
Cross-chain L1↔L2 bridge integration
Built on xDai (now Gnosis Chain), Nova seamlessly bridges between Ethereum mainnet and L2:- L1 → L2 deposits: Bridge ETH from mainnet, deposit into privacy pool
- L2 → L1 withdrawals: Withdraw from pool, bridge back to mainnet
- Governance integration: L1 governance controls L2 contract upgrades via cross-chain messages
Architecture overview
Tornado Nova consists of three main components:- TornadoPool contract: Core privacy pool logic with UTXO management
- Verifier contracts: zkSNARK verification for 2 and 16 input transactions
- Bridge integration: OmniBridge for cross-chain ETH transfers
Security considerations
Tornado Nova was audited by Igor Gulamov from Zeropool. View the audit report.
- Upgradeable via governance: The L2 contract can be upgraded by Tornado Cash governance through cross-chain messages
- Reentrancy protection: All external calls use
ReentrancyGuard - Nullifier tracking: Prevents double-spending of UTXOs
- Merkle root history: Maintains 100 historical roots to support concurrent transactions
Next steps
Understand the protocol
Deep dive into how Tornado Nova achieves privacy
Start building
Integrate Tornado Nova into your application