Deposit, wait, withdraw
Privacy made simple through Zero-Knowledge Proof
Deposit
The user creates a unique cryptographic note and deposits Ether or an ERC-20 token, submitting the note’s hash to the Tornado Cash smart contract.
Wait
To maximize privacy, users should wait for a defined period after depositing before initiating a withdrawal.
Withdraw
The user submits a cryptographic proof of ownership for one of the deposited notes, and the smart contract transfers the corresponding Ether or ERC-20 tokens to the designated recipient.
For the complete understanding of the protocol and the zk-SNARK implementation,
please refer to the 👉 Tornado Cash whitepaper
Tornado Cash's privacy protocol is natively supported across major EVM compatible chains, ensuring broad availability and lower fees for users beyond the Ethereum mainnet.
The Tornado Cash protocol is fully decentralized and community-owned. Initial developers hold no control and run no servers, ensuring the protocol remains censorship-resistant and immutable.
Smart contracts, circuits, and toolchain are entirely open sourced.
Smart contracts are unstoppable: there are no admins and no upgradability to change or shut it down.
The user interface (UI) is hosted by the community on IPFS, accessible as long as at least 1 user is hosting it.
Governance and mining smart contracts were deployed by the community in a decentralized way, with no single deployer.
Protocol parameters and token distribution are controlled by the community via governance.
The zkSNARK trusted setup ceremony had 1,114 contributions, ensuring the keys are secure as long as at least one contribution was honest.
No, Tornado Cash is a decentralized protocol based on zero knowledge proofs. Its smart contracts are immutable, have no admins, and the proofs are based on strong cryptography. Only the user possessing the Note is able to link deposit and withdrawal.
The Tornado Cash project does not collect any user data. The UI is hosted in a decentralized way on IPFS and can be accessed using following link tornadoapp.eth.limo. Users can also run it locally or use the CLI tool.
The Tornado Cash protocol solves only the on-chain piece of privacy. Users also must follow these best practices to achieve full privacy.
The Tornado Cash protocol was audited by multiple professional audit companies. Here are the links of the reports:
The Tornado Cash anonymity mining protocol also was audited multiple times:
The Tornado Cash Nova protocol audited too:
Relayers are used to withdraw to an account with no ETH balance. The relayer sends a withdrawal transaction and takes a part of the deposit as compensation (the protocol itself does not collect any fees). The relayer cannot change any withdrawal data including recipient address. The Tornado Cash initial developers do not control or play any role in relaying transactions, the relay network is independent and run by community. If you want to run your own relayer, follow these instructions.
Yes, the code is open-source and available here: https://github.com/tornadocash
Yes, you can use the compliance tool to generate a report which proves your source of funds.
The TORN token contract addresses are:
Instructions on how to stake are available in the documentation: https://tornado-cash-2.gitbook.io/docs/general/staking
In a world where every click and transaction is recorded, true privacy is power. You deserve the freedom to manage your finances without constant public scrutiny. Our protocol makes that possible.
Ready for financial peace of mind? Just one simple step stands between you and secured, private assets.