Search for projects by name or address
The tornado.cash website linked from the official project GitHub is malicious. Using it will result in the loss of deposited funds. See Secure frontend section below.
A classic Ethereum mixer design based on fixed-denomination pools and zk withdrawals.
A classic Ethereum mixer design based on fixed-denomination pools and zk withdrawals.
Tornado Cash is a non-custodial mixer on Ethereum built around separate fixed-denomination pools, which prevents linking deposits and withdrawals via the amount. A deposit publishes a commitment into a Merkle tree producing a secret note, and a later withdrawal uses a zk-SNARK proof and the note to send the same denomination to a different address, breaking the deposit-withdrawal link. The note represents ownership of tokens in a Tornado cash pool, and losing it will effectively mean losing the tokens.
The core mixer contracts are immutable and have no admin, pause, or upgrade path, so funds can only move out with a valid proof. However Tornado cash features TORN token governance, which controls peripheral smart contracts: official pool registry, relayer registration requirement and TORN tokenomics.
Tornado cash introduces a permissionless relayer network, which is essential for practical privacy. Relayers process withdrawals from Tornado cash pools on user’s behalf for a fee, which enables withdrawals to fresh addresses without funding them before the withdrawal. Without an active relayer network, practical privacy of Tornado cash deteriorates significantly.
Practical privacy also depends on the timing of deposits and withdrawals, underlying network and browser used to interact with Tornado cash frontend (if used), RPC providers used to send transactions and query public blockchain state. Users are advised to research OPSEC best practice.
The immutable Tornado Cash pools do not charge a protocol-level deposit or withdrawal fee. Withdrawals can include a relayer fee chosen offchain between the user and the relayer and passed to the pool withdrawal call.
Tornado cash does not have any protocol-level compliance features. However, it provides an optional Compliance Tool, which allows users to generate a proof linking a withdrawal to a specific deposit without revealing this information publicly onchain. This enables users to selectively disclose the origin of funds to third parties, such as exchanges or regulators.
Protocol pools were sanctioned by OFAC in August 2022, flagging funds moved through these smart contracts as illicit and resulting in broad censorship (mainly by block builders) of transactions touching the contracts. Sanctions were lifted on March 21, 2025.
A user’s anonymity set consists of all previous deposits into the same bucket (i.e. deposits of the same token and amount). Deposits can be mixed only with other deposits of the same token and denomination. To maximize the anonymity set, users are advised to deposit into the buckets with the most usage.
For average users, the Tornado Cash frontend must be recognized as a critical part of the privacy protocol. If compromised, it can steal user assets and violate user privacy, which was exploited in 2024.
The frontend’s root of trust is the IPFS content hash registered for tornadocash.eth in the ENS smart contract on Ethereum. The latest hash can be fetched from a trusted ethereum node (e.g. your own or trusted light node rpc). There were incidents of malicious frontend hash updates passing onchain governance proposals before, so using a publicly audited or self-audited IPFS hash is advised. An example of an audit process with useful links can be found here or here. The frontend can then be accessed by running a local IPFS node that automatically fetches the verified frontend hash (e.g. dapp3.eth or kubo + ipfs-companion and serves it in the browser locally.
A Tornado Cash note is generated locally at deposit time and kept by the user, so normally nothing has to be discovered to spend it. Users can additionally back up notes onchain: the note is encrypted to a user’s private key and is emitted as an EncryptedNote event on TornadoRouter. The recovery downloads all such events and tries to decrypt each one locally. Because every event is requested, the RPC provider learns neither which events belong to the user, nor into which pool the user has deposited from the queries alone.
2025 Sep 05 — 2026 Sep 05
2025 Sep 05 — 2026 Sep 05
Asset | Buckets | Deposits 7D | Deposits 30D | Deposits Total | Value Locked |
|---|---|---|---|---|---|
| 4 | 1.40 K $39.29 M | 8.86 K $155.45 M | 284.91 K $13.29 B | $668.90 M | |
| 4 | 68 $4.86 M | 166 $13.21 M | 9.57 K $472.32 M | $10.85 M | |
| 3 | 0 $0.00 | 0 $0.00 | 2.39 K $535.41 M | $6.61 M | |
| 2 | 18 $15.29 K | 28 $20.79 K | 1.31 K $966.31 K | $43.49 K | |
| 2 | 13 $5.79 K | 79 $41.17 K | 2.89 K $2.04 M | $32.50 K | |
| 4 | 0 $0.00 | 0 $0.00 | 324 $13.31 M | $25.29 K | |
| Total | 1.50 K $44.18 M | 9.14 K $168.73 M | 301.41 K $14.32 B | $686.48 M |
Tornado cash has a TORN DAO, which does not have the authority to upgrade or modify existing pools in any way. However it controls a significant portion of the Tornado cash protocol and periphery, including:
| Normal upgrade path | Lock and optionally delegate TORN in the Governance contract → submit a proposal with at least 1.00 K TORN → wait 1m 15s → vote for 5d (extended by 6h if the outcome changes during the last 1h) → pass with a simple majority and 100.00 K TORN quorum → wait 2d → permissionless execution within 3d. The DAO controls protocol and periphery components, but cannot upgrade or modify existing pools. |
|---|---|
| Exit window | 2d for DAO-controlled changes — an accepted proposal remains timelocked for this period before it can be executed. Existing Tornado Cash pools are immutable and cannot be upgraded by the DAO. |
| Governance token |
|
|---|---|
| Stake lock | After voting or proposing, staked tokens are locked for 5d 6h after proposal ends, preventing governance hopping. |
| Voting venue | Governance contract on Ethereum. Proposals are viewable on the voting tab of the frontend, see the note on secure frontend above. |
| Proposal threshold | 1.00 K TORN locked in governance. |
| Quorum | 100.00 K TORN, with a simple majority required for acceptance. |
| Execution model | Permissionless execution after an onchain vote and timelock. An accepted proposal waits 2d and can then be executed by anyone within 3d. Proposal executable payload is committed in the |
Circuit-specific trusted setup for Groth16 Tornado Cash circuits. It was publicly announced as a Phase 2 ceremony built on top of the 30th contribution to the Perpetual Powers of Tau ceremony, and completed in May 2020. It collected 1114 contributions over 10 days, with 450 identified contributors and 664 anonymous ones. Tornado Cash published the participant list, archive of contributions and artifacts, and the generated verifier contract.
Verifier | Verification | Used in | Known deployments | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tornado Cash verifier v2.1 | by | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Verifier ID: Tornado Cash verifier 03.07.2026Known deployments Verification steps This regeneration attests that the verifier smart contract verification keys correspond to circuits published in Tornado Cash release. Generally, to regenerate Tornado Cash verifier, the following has to be done:
Helper scripts that implement the flow above and more detailed explanations could be found in this script .zip archive. This .zip must be extracted in | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
New proposal to update DAO-controled tornado cash frontend: https://github.com/tornado-dao/classic-ui/compare/e312df5a4f6caaa7e93f1b5960c603d8dd7ec67a...17c54dae9ad91bb3c6d62a7860df6cd365ab76d4. It replaces RPC queries with Graph queries, sources proposal states from the onchain data, changes source link from Codeberg to GitHub and adds a phishing website notice board for tornado.cash. Sol verified that the published CID matches the changes.
New proposal to update DAO-controled tornado cash frontend: https://github.com/tornado-dao/classic-ui/compare/e312df5a4f6caaa7e93f1b5960c603d8dd7ec67a…17c54dae9ad91bb3c6d62a7860df6cd365ab76d4. It replaces RPC queries with Graph queries, sources proposal states from the onchain data, changes source link from Codeberg to GitHub and adds a phishing website notice board for tornado.cash.
Sol verified that the published CID matches the changes.
| contract GovernanceProposalStateUpgrade (eth:0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce) [tornado-cash/GovernanceProposalStateUpgrade] { | |
| +++ description: Upgradeable Tornado Cash governance contract that manages proposals, voting, execution, and treasury-connected governance modules. If you trust this contract, you trust its upgrade path and proposal rules to change protocol governance behavior. | |
| values.proposalCount: | |
| - | 67 |
| + | 68 |
| } |
Manually verified the Tornado Cash MiMC hasher against the pinned Tornado circomlib MiMC sponge generator and deployment bytecode.
Manually verified the Tornado Cash MiMC hasher against the pinned Tornado circomlib MiMC sponge generator and deployment bytecode.
| contract MiMCHasher (eth:0x83584f83f26aF4eDDA9CBe8C730bc87C364b28fe) [N/A] { | |
| +++ description: MiMC hasher used by newer Tornado pool generations for commitment-tree operations, manually verified against the pinned Tornado circomlib generator. | |
| unverified: | |
| - | true |
| description: | |
| - | "Unverified MiMC hasher used by newer Tornado pool generations for commitment-tree operations. If this contract were malicious or had a backdoor, all pools using it would be compromised." |
| + | "MiMC hasher used by newer Tornado pool generations for commitment-tree operations, manually verified against the pinned Tornado circomlib generator." |
| sourceHashes: | |
| + | ["0x96acbaf2288d4cc44cf8e9634da42d922960c005a6982e0b54a84823be2776f2"] |
| references: | |
| + | [{"text":"Tornado Cash hasher build script","href":"https://github.com/tornadocash/tornado-core/blob/master/scripts/compileHasher.js"},{"text":"Source Code","href":"https://github.com/tornadocash/circomlib/blob/c372f14d324d57339c88451834bf2824e73bbdbc/src/mimcsponge_gencontract.js"}] |
| } |
New proposal, (yet) unverified and malicious, see https://x.com/pcaversaccio/status/2070125180261896246 .
New proposal, (yet) unverified and malicious, see https://x.com/pcaversaccio/status/2070125180261896246 .
| contract GovernanceProposalStateUpgrade (eth:0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce) [tornado-cash/GovernanceProposalStateUpgrade] { | |
| +++ description: Upgradeable Tornado Cash governance contract that manages proposals, voting, execution, and treasury-connected governance modules. If you trust this contract, you trust its upgrade path and proposal rules to change protocol governance behavior. | |
| values.proposalCount: | |
| - | 66 |
| + | 67 |
| } |
Config: use the new flattener implementation. Also cleaned up spammy disco
Config: use the new flattener implementation. Also cleaned up spammy disco
| + | Status: CREATED |
| contract cTornado (eth:0x03893a7c7463AE47D46bc7f091665f1893656003) [tornado-cash/cTornado] | |
| +++ description: Fixed-denomination cToken-based mixer pool. Anyone can sweep accrued COMP rewards, but the claimed COMP is always sent to the governance address. |
| + | Status: CREATED |
| contract ERC20Tornado (eth:0x07687e702b410Fa43f4cB4Af7FA097918ffD2730) [tornado-cash/ERC20Tornado] | |
| +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment. |
| + | Status: CREATED |
| contract TornadoCash_erc20 (eth:0x0836222F2B2B24A3F36f98668Ed8F0B38D1a872f) [tornado-cash/TornadoCash_erc20] | |
| +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |
| + | Status: CREATED |
| contract WithdrawVerifier (eth:0x09193888b3f38C82dEdfda55259A82C0E7De875E) [tornado-cash/WithdrawVerifier] | |
| +++ description: Verifier contract for Tornado anonymity-mining withdrawal proofs. |
| + | Status: CREATED |
| contract TornadoCash_Eth_01 (eth:0x12D66f87A04A9E220743712cE6d9bB1B5616B8Fc) [tornado-cash/TornadoCash_Eth_01] | |
| +++ description: Legacy fixed-denomination ETH mixer for 0.1 ETH deposits. This older pool generation keeps an operator role that can replace the withdrawal verifier and, for this instance, perform a one-time state migration. |
| + | Status: CREATED |
| contract TornadoCash_erc20 (eth:0x169AD27A470D064DEDE56a2D3ff727986b15D52B) [tornado-cash/TornadoCash_erc20] | |
| +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |
| + | Status: CREATED |
| contract ERC20Tornado (eth:0x178169B423a011fff22B9e3F3abeA13414dDD0F1) [tornado-cash/ERC20Tornado] | |
| +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment. |
| + | Status: CREATED |
| contract TornadoCash_erc20 (eth:0x22aaA7720ddd5388A3c0A3333430953C68f1849b) [tornado-cash/TornadoCash_erc20] | |
| +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |
| + | Status: CREATED |
| contract ERC20Tornado (eth:0x23773E65ed146A459791799d01336DB287f25334) [tornado-cash/ERC20Tornado] | |
| +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment. |
| + | Status: CREATED |
| contract cTornado (eth:0x2717c5e28cf931547B621a5dddb772Ab6A35B701) [tornado-cash/cTornado] | |
| +++ description: Fixed-denomination cToken-based mixer pool. Anyone can sweep accrued COMP rewards, but the claimed COMP is always sent to the governance address. |
| + | Status: CREATED |
| contract TornadoVault (eth:0x2F50508a8a3D323B91336FA3eA6ae50E55f32185) [tornado-cash/TornadoVault] | |
| +++ description: Vault that escrows locked TORN on behalf of governance users and serves withdrawals initiated by the governance contract. |
| + | Status: CREATED |
| contract TornadoTreesV1 (eth:0x43a3bE4Ae954d9869836702AFd10393D3a7Ea417) [tornado-cash/TornadoTreesV1] | |
| +++ description: Legacy Tornado Trees contract that records deposit and withdrawal leaves from TornadoProxyV1 and maintains the roots later consumed by migration and mining logic. |
| + | Status: CREATED |
| contract TornadoCash_erc20 (eth:0x4736dCf1b7A3d580672CcE6E7c65cd5cc9cFBa9D) [tornado-cash/TornadoCash_erc20] | |
| +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |
| + | Status: CREATED |
| contract TornadoCash_eth (eth:0x47CE0C6eD5B0Ce3d3A51fdb1C52DC66a7c3c2936) [tornado-cash/TornadoCash_eth] | |
| +++ description: Legacy fixed-denomination ETH mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |
| + | Status: CREATED |
| contract Proposal (eth:0x4B6C07B8940a7602fE4332AFa915b366e56eAce5) [tornado-cash/Proposal] | |
| +++ description: One-off governance proposal payload that deployed the newer Tornado Trees and proxy wiring, migrated legacy tree state, and disabled old mineable instances on the legacy proxy. |
| + | Status: CREATED |
| contract TornadoTreesV2 (eth:0x527653eA119F3E6a1F5BD18fbF4714081D7B31ce) [tornado-cash/TornadoTreesV2] | |
| +++ description: Upgradeable batch-based Tornado Trees contract that reuses legacy tree state, queues new leaves from the newer proxy, and accepts batched root updates proven by a verifier. |
| + | Status: CREATED |
| contract RelayerRegistry (eth:0x58E8dCC13BE9780fC42E8723D8EaD4CF46943dF2) [tornado-cash/RelayerRegistry] | |
| +++ description: Upgradeable registry that tracks registered relayers, their worker addresses, and their staked TORN balances used to service withdrawals. |
| + | Status: CREATED |
| contract TornadoStakingRewards (eth:0x5B3f656C80E8ddb9ec01Dd9018815576E9238c29) [tornado-cash/TornadoStakingRewards] | |
| +++ description: Upgradeable staking rewards contract that holds relayer stake, distributes burn-derived rewards to locked TORN holders, and lets governance recover TORN from the contract. |
| + | Status: CREATED |
| contract RewardSwap (eth:0x5cab7692D4E94096462119ab7bF57319726Eed2A) [tornado-cash/RewardSwap] | |
| +++ description: Liquidity schedule that pays out TORN rewards for anonymity mining. Only the Miner contract can draw from it or adjust the reward weight. |
| + | Status: CREATED |
| contract GovernanceProposalStateUpgrade (eth:0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce) [tornado-cash/GovernanceProposalStateUpgrade] | |
| +++ description: Upgradeable Tornado Cash governance contract that manages proposals, voting, execution, and treasury-connected governance modules. If you trust this contract, you trust its upgrade path and proposal rules to change protocol governance behavior. |
| + | Status: CREATED |
| contract FeeManager (eth:0x5f6c97C6AD7bdd0AE7E0Dd4ca33A4ED3fDabD4D7) [tornado-cash/FeeManager] | |
| +++ description: Upgradeable fee manager that derives relayer burn fees for each Tornado instance from registry settings and Uniswap TWAP data. |
| + | Status: CREATED |
| contract ERC20Tornado (eth:0x610B717796ad172B316836AC95a2ffad065CeaB4) [tornado-cash/ERC20Tornado] | |
| +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment. |
| + | Status: CREATED |
| contract DepositTree (eth:0x6234c4C2734D2B246AE074492F402D8f58ff3226) [N/A] | |
| +++ description: Unverified merkle tree instance that stores legacy Tornado deposit leaves for TornadoTreesV1. |
| + | Status: CREATED |
| contract TreeUpdateVerifier (eth:0x653477c392c16b0765603074f157314Cc4f40c32) [tornado-cash/TreeUpdateVerifier] | |
| +++ description: Verifier contract for Tornado mining account-tree update proofs. |
| + | Status: CREATED |
| contract TornadoProxyV2 (eth:0x722122dF12D4e14e13Ac3b6895a86e84145b6967) [tornado-cash/TornadoProxyV2] | |
| +++ description: Newer immutable Tornado proxy that routes deposits and withdrawals to supported pool instances and records them in the upgraded Tornado Trees contract. |
| + | Status: CREATED |
| contract Miner (eth:0x746Aebc06D2aE31B71ac51429A19D54E797878E9) [tornado-cash/Miner] | |
| +++ description: Mining and reward-distribution contract for Tornado anonymity mining. It verifies reward and withdrawal proofs, maintains account roots, and routes TORN rewards through the swap contract. |
| + | Status: CREATED |
| contract TORN (eth:0x77777FeDdddFfC19Ff86DB637967013e6C6A116C) [tornado-cash/TORN] | |
| +++ description: TORN governance token contract. Transfers start paused and can later be toggled by governance, which also controls the paused-transfer allowlist and token rescue functions. |
| + | Status: CREATED |
| contract MiMCHasher (eth:0x83584f83f26aF4eDDA9CBe8C730bc87C364b28fe) [N/A] | |
| +++ description: Unverified MiMC hasher used by newer Tornado pool generations for commitment-tree operations. |
| + | Status: CREATED |
| contract RewardVerifier (eth:0x88fd245fEdeC4A936e700f9173454D1931B4C307) [tornado-cash/RewardVerifier] | |
| +++ description: Verifier contract for Tornado anonymity-mining reward proofs. |
| + | Status: CREATED |
| contract TornadoProxyV1 (eth:0x905b63Fff465B9fFBF41DeA908CEb12478ec7601) [tornado-cash/TornadoProxyV1] | |
| +++ description: Legacy immutable Tornado proxy that routes deposits and withdrawals to pool instances and records them in the legacy Tornado Trees contract. |
| + | Status: CREATED |
| contract TornadoCash_eth (eth:0x910Cbd523D972eb0a6f4cAe4618aD62622b39DbF) [tornado-cash/TornadoCash_eth] | |
| +++ description: Legacy fixed-denomination ETH mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |
| + | Status: CREATED |
| contract TornadoCash_eth (eth:0xA160cdAB225685dA1d56aa342Ad8841c3b53f291) [tornado-cash/TornadoCash_eth] | |
| +++ description: Legacy fixed-denomination ETH mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |
| + | Status: CREATED |
| contract GnosisSafe (eth:0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4) [GnosisSafe] | |
| +++ description: None |
| + | Status: CREATED |
| contract InstanceRegistry (eth:0xB20c66C4DE72433F3cE747b58B86830c459CA911) [tornado-cash/InstanceRegistry] | |
| +++ description: Upgradeable registry of supported Tornado Cash pool instances and their mutable per-instance fee and routing configuration. |
| + | Status: CREATED |
| contract ERC20Tornado (eth:0xbB93e510BbCD0B7beb5A853875f9eC60275CF498) [tornado-cash/ERC20Tornado] | |
| +++ description: Fixed-denomination ERC20 mixer pool from the newer Tornado Cash pool generation. Funds are governed by the withdrawal verifier and the immutable verifier/hasher pair configured at deployment. |
| + | Status: CREATED |
| contract WithdrawalTree (eth:0xbFA347D89Ac54F7C2De2433458cb98A85fc03CEd) [N/A] | |
| +++ description: Unverified merkle tree instance that stores legacy Tornado withdrawal leaves for TornadoTreesV1. |
| + | Status: CREATED |
| contract Verifier (eth:0xce172ce1F20EC0B3728c9965470eaf994A03557A) [tornado-cash/Verifier] | |
| +++ description: Groth16 verifier contract used by Tornado Cash pool withdrawal proofs. |
| + | Status: CREATED |
| contract cTornado (eth:0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af) [tornado-cash/cTornado] | |
| +++ description: Fixed-denomination cToken-based mixer pool. Anyone can sweep accrued COMP rewards, but the claimed COMP is always sent to the governance address. |
| + | Status: CREATED |
| contract TornadoCash_erc20 (eth:0xD4B88Df4D29F5CedD6857912842cff3b20C8Cfa3) [tornado-cash/TornadoCash_erc20] | |
| +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |
| + | Status: CREATED |
| contract PoseidonHasher (eth:0xD82ed8786D7c69DC7e052F7A542AB047971E73d2) [N/A] | |
| +++ description: Unverified Poseidon hasher used by the legacy Tornado Trees merkle trees. |
| + | Status: CREATED |
| contract TornadoRouter (eth:0xd90e2f925DA726b50C4Ed8D0Fb90Ad053324F31b) [tornado-cash/TornadoRouter] | |
| +++ description: Router contract that validates supported instances, forwards deposits and withdrawals, and burns relayer stake through the relayer registry during withdrawals. |
| + | Status: CREATED |
| contract TornadoCash_erc20 (eth:0xd96f2B1c14Db8458374d9Aca76E26c3D18364307) [tornado-cash/TornadoCash_erc20] | |
| +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |
| + | Status: CREATED |
| contract BatchTreeUpdateVerifier (eth:0xEd3B00B651c4c7AF77c2fDdce4a388de84b507C6) [tornado-cash/BatchTreeUpdateVerifier] | |
| +++ description: Verifier contract for batched Tornado Trees root updates. |
| + | Status: CREATED |
| contract GasCompensationVault (eth:0xFA4C1f3f7D5dd7c12a9Adb82Cd7dDA542E3d59ef) [tornado-cash/GasCompensationVault] | |
| +++ description: Vault that escrows ETH for governance gas-compensation payouts and can return unused funds to governance. |
| + | Status: CREATED |
| contract TornadoCash_erc20 (eth:0xFD8610d20aA15b7B2E3Be39B396a1bC3516c7144) [tornado-cash/TornadoCash_erc20] | |
| +++ description: Legacy fixed-denomination ERC20 mixer from the original Tornado Cash pool generation. It retains an operator role that can replace the withdrawal verifier until renounced. |

Upgradeable Tornado Cash governance contract that manages proposals, voting, execution, and treasury-connected governance modules. If you trust this contract, you trust its upgrade path and proposal rules to change protocol governance behavior. Member of GnosisSafe.
A Multisig with 1/1 threshold.
Participants (1):
GovernanceProposalStateUpgrade

Fixed-denomination Tornado Cash pool for 50K cDAI deposits.
Fixed-denomination Tornado Cash pool for 10K DAI deposits.
Fixed-denomination Tornado Cash pool for 1000 USDT deposits.
Fixed-denomination Tornado Cash pool for 0.1 ETH deposits.
Fixed-denomination Tornado Cash pool for 100 USDT deposits.
Fixed-denomination Tornado Cash pool for 0.1 WBTC deposits.
Fixed-denomination Tornado Cash pool for 5K cDAI deposits.
Fixed-denomination Tornado Cash pool for 100K DAI deposits.
Fixed-denomination Tornado Cash pool for 500K cDAI deposits.
Fixed-denomination Tornado Cash pool for 1000 USDC deposits.
Fixed-denomination Tornado Cash pool for 1 ETH deposits.
Upgradeable registry that tracks registered relayers, their worker addresses, and their staked TORN balances used to service withdrawals. Relayers registered here could be queried by a tornadocash frontend to facilitate discovery for users, but users are free to use any (unregistered) relayer at withdrawal time.
Upgradeable fee manager that derives relayer burn fees for each Tornado instance from registry settings and Uniswap TWAP data.
Fixed-denomination Tornado Cash pool for 1 WBTC deposits.
MiMC hasher used by newer Tornado pool generations for commitment-tree operations, manually verified against the pinned Tornado circomlib generator.
Fixed-denomination Tornado Cash pool for 10 ETH deposits.
Fixed-denomination Tornado Cash pool for 100 ETH deposits.
Upgradeable registry of supported Tornado Cash pool instances and their mutable per-instance fee and routing configuration.
Fixed-denomination Tornado Cash pool for 10 WBTC deposits.
Fixed-denomination Tornado Cash pool for 5M cDAI deposits.
Fixed-denomination Tornado Cash pool for 100 DAI deposits.
Router contract that validates supported instances, forwards deposits and withdrawals, and subtracts from relayer stake through the relayer registry during withdrawals.
Fixed-denomination Tornado Cash pool for 100 USDC deposits.
Fixed-denomination Tornado Cash pool for 1000 DAI deposits.
Staking contract that escrows TORN staked by relayers. With time, their stake is subtracted from for being officially registered as relayers and receiving fees from each withdrawal, and is redirected as TORN rewards for governance participants who are locking their TORN for voting/staking.
TORN governance token contract. Transfers start paused and can later be toggled by governance, which also controls the paused-transfer allowlist and token rescue functions.
Anonymity Mining - Verifier contract for Tornado anonymity-mining withdrawal proofs.
Anonymity Mining - Legacy Tornado Trees contract that records deposit and withdrawal leaves from TornadoProxyV1 and maintains the roots later consumed by migration and mining logic.
Anonymity Mining - Upgradeable batch-based Tornado Trees contract that reuses legacy tree state, queues new leaves from the newer proxy, and accepts batched root updates proven by a verifier.
Anonymity Mining - Liquidity schedule that pays out TORN rewards for anonymity mining. Only the Miner contract can draw from it or adjust the reward weight.
Anonymity Mining - Verifier contract for Tornado mining account-tree update proofs.
Anonymity Mining - Newer immutable Tornado proxy that routes deposits and withdrawals to supported pool instances and records them in the upgraded Tornado Trees contract.
Anonymity Mining - Mining and reward-distribution contract for Tornado anonymity mining. It verifies reward and withdrawal proofs, maintains account roots, and routes TORN rewards through the swap contract.
Anonymity Mining - Verifier contract for Tornado anonymity-mining reward proofs.
Anonymity Mining - Legacy immutable Tornado proxy that routes deposits and withdrawals to pool instances and records them in the legacy Tornado Trees contract.
Anonymity Mining - Unverified Poseidon hasher used by the legacy Tornado Trees merkle trees. The source code of this contract is not verified on Etherscan.
Anonymity Mining - Verifier contract for batched Tornado Trees root updates.
Vault that escrows locked TORN of governance participants who wish to receive voting rights.
Unverified merkle tree instance that stores legacy Tornado deposit leaves for TornadoTreesV1. The source code of this contract is not verified on Etherscan.
Unverified merkle tree instance that stores legacy Tornado withdrawal leaves for TornadoTreesV1. The source code of this contract is not verified on Etherscan.
Vault that escrows ETH for governance gas-compensation payouts and can return unused funds to governance.
The current deployment carries some associated risks:
Funds can be stolen if the source code of unverified contracts contains malicious code (CRITICAL).