Tornado Cash post-censorship

This is a guide to using Tornado Cash after the 8th August crisis, when the OFAC decided to sanction the organisation and the smart contracts. This led to a widespread wave of censorship from middleware service providers, resulting in users being vulnerable and unable to access their assets.

LANGUAGE:  ZH  |  ES  |  RU  

Community build

The source code for the community build can be found on the offical community git. For a tutorial on how to audit the changes see Micah's guide.

  • Current build version: d0cee4a
  • Stable build version: d0cee4a
  • Changelog

See instructions on RPC configuration if transacting with sanctioned addresses

The latest community builds are available at:

TOR network

Browser history must be enabled when using TOR browser for event caching.

How to use Tornado site via Tor: guide.

IPFS details

To get the IPFS content hash and link from the domain details. Visit the ENS application domain page at either:

The IPFS link for Classic (tornadocash.eth) for example, will look like:


The content hash of this link is bafybeiahmpy4e3p4ao2sqqxc2kb4htwl3oklsjncz2are6vnljecmdgmou

  • Brave

    • Navigate to the IPFS link in the browser
    • When prompted, choose “Use a Brave local IPFS node”
  • Chrome / Firefox

    • Install IPFS Desktop
    • Install IPFS Companion extension (Chrome / Firefox)
    • Ensure IPFS Desktop is open and has an internet connection
    • Navigate to the IPFS link in the browser

IPFS gateway usage

Decentralized sources

All sources (code) of Tornado Cash are also decentralized after proposal #30 and have ENS domains with IPFS contenthash. Full guide available at ENS domain sources.tornadocash.eth, actual IPFS hash: bafybeia2s5em2xypmtdifuyj62xwgveujygs4vzoqhbqd2um45wbdxxb6u.

Gateway (direct link):


LANGUAGE:  ZH  |  ES  |  RU  

  • If you want to deposit you may have to change your wallet RPC, as most providers have censored the smart contracts. The default provider of Metamask, Infura along with Ankr and Alchemy currently do not prohibit transactions to and from the protocol, governance and the TORN token.

  • Try searching for an alternative working endpoint on Chainlist, which could take multiple attempts (take note of the ChainID for network configuration). An example of how to change your RPC provider for MetaMask is shown below.

  • Sometimes visiting the application you could be greeted with the following message, to fix this click "OPEN SETTINGS".

  • You'll then be displayed a dropdown selection, defaulted to a selection. Click on it and select the "Custom" option.

  • Here enter a non-censoring RPC provider depending on your network and this will resolve application issues.

  • Then you are freely able to withdraw, deposit, stake or participate in decentralized governance like nothing ever happened.


Why do I keep recieving the error Failed to fetch relayers?

  • This error is either related to a poor connection or a result of no available relayers on your network. It usually can be solved by refreshing.

Why do I keep recieving the error Failed to fetch proving keys?

  • This error is either related to a poor connection, it usually can be solved by refreshing or changing VPN location for better latency.

Why do I keep recieving the error Failed to fetch all deposit events from contract when trying to withdraw?

  • This error is related to a poor connection or using a censored RPC endpoint. To resolve this either:
    • change VPN location for better latency
    • try a new browser or method of access
    • configure the application RPC configuration to an alternative

Why can't I make a deposit from my wallet?

  • Most RPCs censor transactions to the protocol and governance since the OFAC sanctions, you need to configure your wallet RPC to a uncensored endpoint. .

results matching ""

    No results matching ""