# 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. -------- **<h3>LANGUAGE:&nbsp;&nbsp;<a href="https://hackmd.io/@gozzy/tornado-cash-制裁后教程">ZH</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="https://hackmd.io/@gozzy/tornado-cash-tras-la-censura">ES</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="https://hackmd.io/@gozzy/tornado-cash-после-цензуры">RU</a>&nbsp;&nbsp;</h3>** -------- ## Community build _The source code for the community build can be found on [the offical community git](https://development.tornadocash.community/tornadocash/classic-ui). For a tutorial on how to audit the changes [see Micah's guide](https://notes.ethereum.org/@GW1ZUbNKR5iRjjKYx6_dJQ/Bk8zsJ9xj)_. * Current build version: **ea97a39** * Changelog: [#003](https://development.tornadocash.community/tornadocash/classic-ui/pulls/10) **See [instructions on RPC configuration](#RPC) if transacting with sanctioned addresses**. ### ENS resolvers The latest community builds are available at: * Classic: * [tornadocash.3th.ws](https://tornadocash.3th.ws) (recommended) * [tornadocashcommunity.eth.link](https://tornadocashcommunity.eth.link) * Nova: * [nova.tornadocash.3th.ws](https://nova.tornadocash.3th.ws) (recommended) * [nova.tornadocashcommunity.eth.link](https://nova.tornadocashcommunity.eth.link) ### TOR network **Browser history must be enabled when using TOR browser for event caching**. It is now possible to access the builds via onion hidden services with the community resolver (3th.ws), if there is no response see the [network status page](https://status.torproject.org/) for possible disruption. * [onion.tornadocash.3th.ws](https://onion.tornadocash.3th.ws) * [h76qqhctmyehsaoazm7fqtncitt3vrdixoshwhuu7vpgzh3mld7dt2qd.onion](https://h76qqhctmyehsaoazm7fqtncitt3vrdixoshwhuu7vpgzh3mld7dt2qd.onion/) * [onion.nova.tornadocash.3th.ws](https://onion.nova.tornadocash.3th.ws) * [tytltckkqi3g6djjmiaorobu5jgshgwpdqelgmdcabnp2l7whj6sdhid.onion](https://tytltckkqi3g6djjmiaorobu5jgshgwpdqelgmdcabnp2l7whj6sdhid.onion) ### IPFS details To get the IPFS content hash and link from the domain details. Visit the ENS application domain page at either: * Classic: [tornadocash.eth](https://app.ens.domains/name/tornadocash.eth/details) * Nova: [nova.tornadocash.eth](https://app.ens.domains/name/nova.tornadocash.eth/details) The IPFS link for Classic (tornadocash.eth) for example, will look like: ``` ipfs://bafybeiguelxw5aanwnhvaea5vjhknmcdmwvujne36wgabnkmcbt3563toa ``` The content hash of this link is `bafybeiguelxw5aanwnhvaea5vjhknmcdmwvujne36wgabnkmcbt3563toa` ### Local IPFS deployment (recommended) * 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](https://chrome.google.com/webstore/detail/ipfs-companion/nibjojkomfdiaoajekhjakgkdhaomnch?hl=en) / [Firefox](https://addons.mozilla.org/en-US/firefox/addon/ipfs-companion/)) * Ensure IPFS Desktop is open and has an internet connection * Navigate to the IPFS link in the browser ### IPFS gateway usage * Take the content hash and prefix it followed by a `.` to one of the following IPFS gateways: * `ipfs.dweb.link` * https://bafybeiguelxw5aanwnhvaea5vjhknmcdmwvujne36wgabnkmcbt3563toa.ipfs.dweb.link * `ipfs.tornadocash.is` (community gateway) * https://bafybeiguelxw5aanwnhvaea5vjhknmcdmwvujne36wgabnkmcbt3563toa.ipfs.tornadocash.is * `ipfs.cf-ipfs.com` * https://bafybeiguelxw5aanwnhvaea5vjhknmcdmwvujne36wgabnkmcbt3563toa.ipfs.cf-ipfs.com ## RPC -------- **<h3>LANGUAGE:&nbsp;&nbsp;<a href="https://hackmd.io/@gozzy/tornado-cash-制裁后教程">ZH</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="https://hackmd.io/@gozzy/tornado-cash-tras-la-censura">ES</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href="https://hackmd.io/@gozzy/tornado-cash-после-цензуры">RU</a>&nbsp;&nbsp;</h3>** -------- * 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 do not prohibit transactions to and from the protocol, governance and the TORN token**. * Try searching for a working endpoint on [Chainlist](https://chainlist.org/), 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. ![](https://i.imgur.com/zOwfk4k.gif) * Sometimes visiting the application you could be greeted with the following message, to fix this click "OPEN SETTINGS". ![](https://i.imgur.com/xcNzhNG.png) * You'll then be displayed a dropdown selection, defaulted to a selection. Click on it and select the "Custom" option. ![](https://i.imgur.com/zrY5GEi.png) * Here enter a non-censoring RPC provider depending on your network and this will resolve application issues. ![](https://i.imgur.com/dE13HsA.png) * Then you are freely able to withdraw, deposit, stake or participate in decentralised governance like nothing ever happened. ## FAQ > 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. .