Skip to main content

Tornado Nova

Tornado Nova is an experimental privacy pool protocol that enables arbitrary deposit amounts and internal shielded transfers on Ethereum Layer 2. Built on zero-knowledge proofs and a UTXO model, Nova provides enhanced privacy while reducing transaction costs on Gnosis Chain (formerly xDai).

Introduction

Learn about Tornado Nova’s features and capabilities

How it works

Understand the privacy mechanisms and UTXO model

Installation

Get started with Tornado Nova development

API reference

Explore the complete API documentation

Key features

Arbitrary amounts

Deposit and withdraw any amount within configured limits, not just fixed denominations

Shielded transfers

Transfer funds privately between users inside the pool without L1 withdrawals

Zero-knowledge proofs

Verify transaction correctness with zkSNARKs while keeping amounts and identities private

Cross-chain bridge

Seamless L1↔L2 integration with Ethereum mainnet via OmniBridge

Architecture

Architecture overview

Core components and system design

UTXO model

Bitcoin-style privacy with commitments and nullifiers

ZK proofs

zkSNARK circuits and verification

Smart contracts

TornadoPool and verifier contracts

Bridge system

L1↔L2 cross-chain operations

Merkle tree

Commitment tracking and proof generation

Developer resources

Installation guide

Set up your development environment

Making deposits

Deposit funds into the privacy pool

Shielded transfers

Send private transfers between users

Withdrawals

Withdraw funds to L1 or L2 addresses

JavaScript SDK

SDK overview

Overview of the JavaScript SDK

Utxo class

Create and manage UTXOs

Keypair class

Generate and manage keypairs

Transactions

Build and submit transactions

Deployment

L1 deployment

Deploy L1Unwrapper to Ethereum mainnet

L2 deployment

Deploy TornadoPool to Gnosis Chain

Governance

Cross-chain governance operations

Upgrades

Upgrade contracts via governance

Build docs developers (and LLMs) love