Tornado Cash

Classic

A fully decentralized protocol for private transactions on Ethereum, BSC(BNBChain), Optimism, Polygon, Avalanche, Arbitrum, Gnosis networks.

Tornado Cash App
tornado cash
Tornado Cash Nova

Second-generation privacy protocol supporting arbitrary
amounts and shielded transfers.

Supported Networks

Tornado Cash Ethereum Mainnet
Tornado Cash Binance Smart Chain
Tornado Cash Polygon Network
Tornado Cash Optimism
Tornado Cash Arbitrum One
Tornado Cash Gnosis Chain
Tornado Cash Avalanche Mainnet
Tornado Cash Ethereum Goerli

How Tornado Cash works

Tornado Cash
Deposit A user generates a random key (note) and deposits Ether or an ERC20, along with submitting a hash of the note to the Tornado Cash smart contract.
Wait After depositing, users should wait some amount of time before withdrawing to improve their privacy.
Withdraw A user submits a proof of having the valid key to one of the notes deposited and the contract transfers Ether or the ERC20 to a specified recipient.
Tornado Cash

How Tornado Cash achieves privacy

Tornado Cash improves transaction privacy by breaking the on-chain link between source and destination addresses. It uses a smart contract that accepts ETH deposits that can be withdrawn by a different address. To preserve privacy a relayer can be used to withdraw to an address with no ETH balance. Whenever ETH is withdrawn by the new address, there is no way to link the withdrawal to the deposit, ensuring complete privacy.
Tornado Cash 1,005,116 Total ETH deposited
Tornado Cash 11,583 Unique users
Tornado Cash 41,215 Total deposits

Status of Tornado Cash decentralization

Tornado Cash protocol is fully decentralized and owned by the community: Tornado Cash initial developers have no control over it and are not running any servers
Tornado Cash smart contracts, circuits, and toolchain are fully open sourced.
Tornado Cash smart contracts are unstoppable: there are no admins and no upgradability. Nobody including Tornado Cash initial developers can change it or shut it down.
User interface is hosted by the community on IPFS. It is accessible as long as at least 1 user in the world is hosting it.
Tornado Cash governance and mining smart contracts are deployed by the community in a decentralized way, there is no single deployer.
Protocol parameters and token distribution are controlled by the community via governance.
Trusted setup ceremony for zkSNARKs has 1114 contributions, as long as at least 1 contribution is honest, the zkSNARK keys are secure.
Tornado Cash protocol is developed based on awesome open source research by Zcash team with the help of amazing Ethereum community.

Our Products

Tornado Cash
Governance Tornado Cash is completely decentralized, controlled and governed by its community. By acquiring TORN tokens, you can participate by voting on governance proposals and weighing in on the evolution of the protocol. Read More
Tornado Cash
Anonymity Mining By using Tornado Cash, you also mine TORN, the governance token of Tornado Cash. The more you use it, the more say you have in the evolution of the protocol. Read More
Tornado Cash
Compliance Maintaining financial privacy is essential to preserving our freedoms. Tornado Cash has built-in tools for proving your transaction history and selectively disclosing Tornado deposits. Read More
Tornado Cash
Trusted Setup Ceremony Trusted setup ceremony for zkSNARKs has 1114 contributions, as long as at least 1 contribution is honest, the zkSNARK keys are secure. Read More
Tornado Cash
Initiation Tornado Cash Governance protocol was deployed by community in a decentralized way. It's only possible using CREATE2 opcode and EIP-2470 deployer. Read More
Tornado Cash
Relayers Network Relayers are used to send a withdrawal transaction to an account with no balance, which promotes further user anonymity. To become a relayer, one must register on the Decentralized Relayers Network Registry and meet minimum requirements. Read More

Frequently asked questions

Is it possible to compromise the protocol and find out information about depositors?
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.
Do you collect data?
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 tornado.cash. Users can also run it locally or use the CLI tool.
Which steps can be taken to ensure the anonymity of participation in the protocol?
The Tornado Cash protocol solves only on-chain piece of the privacy. Users also must follow these best practices to achieve privacy.
Has the protocol been audited?
The Tornado Cash protocol was audited by multiple professional audit companies. Here are the links of the reports:
  • Cryptographic overview
  • Smart contract audit
  • Audit of Zk-SNARK schemes
  • Frontend security audit report
The Tornado Cash anonymity mining protocol also was audited multiple times:
  • ABDK 1 2 3 audits
  • Zeropool audit
The Tornado Cash Nova protocol audited too:
  • Zeropool audit
What is a relayer?
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.
Is the code open-source?
https://github.com/tornadocash
Can I prove my source of funds if I use Tornado Cash?
Yes, you can use the compliance tool to generate a report which proves your source of funds.
What is TORN contract address?
https://etherscan.io/token/0x77777feddddffc19ff86db637967013e6c6a116c
https://bscscan.com/token/0x1ba8d3c4c219b124d351f603060663bd1bcd9bbf
https://polygonscan.com/token/0x23fe1ee2f536427b7e8ac02fb037a7f867037fe8
How to stake?
https://docs.tornado.cash/general/staking