GitBook: [#70] Adding Nova + Smart contract addresses

This commit is contained in:
bt11ba 2022-02-06 18:16:46 +00:00 committed by gitbook-bot
parent da4bb406f1
commit fadc99e839
No known key found for this signature in database
GPG Key ID: 07D2180C7B12D0FF
19 changed files with 586 additions and 88 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 585 KiB

BIN
.gitbook/assets/logos.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

@ -1,4 +1,4 @@
# Introduction of Tornado.Cash # Introduction of Tornado Cash
![](.gitbook/assets/image.png) ![](.gitbook/assets/image.png)
@ -14,25 +14,43 @@ Tornado Cash improves transaction privacy by breaking the on-chain link between
To preserve privacy, few good practices are in order, such as the use of a relayer for gas payments to withdraw funds towards an address with no pre-existing balance.  To preserve privacy, few good practices are in order, such as the use of a relayer for gas payments to withdraw funds towards an address with no pre-existing balance. 
More details are available in _Behind the scenes: _[_How does Tornado.Cash work?_](how-does-tornado.cash-work.md)_** **_& [Tips to remain anonymous](tips-to-remain-anonymous.md). More details are available in _Behind the scenes:_ [_How does Tornado.Cash work?_](general/how-does-tornado.cash-work.md) _****_ & [Tips to remain anonymous](general/tips-to-remain-anonymous.md).
## Where is Tornado.Cash at? ## Where is Tornado.Cash at?
The protocol has been operating on the **Ethereum blockchain** since its inception in 2019. It was recently deployed, in June 2021, on **Binance Smart Chain** & **Polygon**. Since its inception in 2019, Tornado Cash has been operating **on the Ethereum blockchain**. The protocol has been offering diversified fixed amount pools for six tokens (ETH, DAI, cDAI, USDC, USDT & WBTC) handled by the Ethereum blockchain.
As of today, Tornado.Cash can be used with the following tokens: From June 2021, in addition to the Ethereum blockchain, Tornado Cash smart contracts **have also been deployed on other side-chains & blockchains**. Theses deployments enabled the tool to either support new tokens or benefit from Layer-2 advantages such as faster and cheaper transactions.
* On Ethereum : **ETH** _(Ethereum)_, **DAI** _(Dai)_, **cDAI** _(Compound Dai)_, **USDC** _(USD Coin)_, **USDT** _(Tether)_ & **WBTC** _(Wrapped Bitcoin)_ Therefore, as of today, Tornado Cash is currently operating on:
* On Binance Smart Chain: **BNB** _(Binance Coin)_.
* On Polygon Network: **MATIC** _(Polygon)_
* On xDai Chain : **XDAI** (_Stake_)
* On Avalanche : **AVAX**
![](.gitbook/assets/non-custodial-anonymous-transactions-on-ethereum-3-.png) * **Ethereum Blockchain** : **ETH** (Ethereum), **DAI** (Dai), **cDAI** (Compound Dai), **USDC** (USD Coin), **USDT** (Tether) & **WBTC** (Wrapped Bitcoin),
* **Binance Smart Chain**: **BNB** (Binance Coin),
* **Polygon Network**: **MATIC** (Polygon),
* **Gnosis Chain (former xDAI Chain)**: **xDAI** (xDai),
* **Avalanche Mainnet**: **AVAX** (Avalanche),
* **Optimism**, as a Layer-2 for **ETH** (Ethereum),
* **Arbitrum One**, as a Layer-2 **ETH** (Ethereum).
The protocol also includes an **anonymity mining system for some of its token**, allowing its users to earn a **governance token**. Thanks to TORN tokens, Tornado Cash users actively participate in shaping the protocol. The community has a strong weight regarding the evolution of Tornado Cash and the improvement of its features. Indeed, protocol parameters & token distribution are completely under the community's control through this governance. ![](.gitbook/assets/logos.png)
_More information about _[_Anonymity mining_](anonymity-mining.md)_ & _[_Tornado.Cash token_](torn.md)_ are available._ Until December 2021, the protocol included an anonymity mining system for some of these tokens, allowing its users to earn a governance token (**TORN**). Users were able to ultimately earn TORN on the Blockchain network by depositing in the ETH, DAI, cDAI & WBTC pools.
_More information about_ [_Anonymity mining_](tornado-cash-classic/anonymity-mining.md) _&_ [_Tornado.Cash token_](general/torn.md) _are available._
**Thanks to the TORN token, Tornado Cash users can actively participate in shaping the protocol**. The community has a strong weight regarding the evolution of Tornado Cash and the improvement of its features. Indeed, protocol parameters & token distribution are completely under the communitys control through this governance.
All pools mentioned above can be accessed on [tornadocash.eth.link](https://tornadocash.eth.link). They operates **under the principle of fixed amount deposits & withdrawals**. It means that each token has 2 to 4 different pools, allowing transactions of only 2 to 4 different fixed amounts _(e.g. ETH has four different pools, one for each of these amounts: 0.1, 1, 10 & 100 ETH)_.
### Tornado Cash Nova
With the [**release of Tornado Cash Nova** (beta version) on December 2021](https://tornado-cash.medium.com/tornado-cash-introduces-arbitrary-amounts-shielded-transfers-8df92d93c37c), an **upgraded pool with unique new features** has been added to the protocol. Users are no longer constrained by fixed amount transactions. With the addition of Tornado Cash Nova, they can benefit from the use of **an arbitrary amount pool & shielded transfers**.
Tornado Cash Nova operates on the Gnosis Chain (former xDai Chain) as a Layer2 to optimize speed and cost. It allows **deposits and withdrawals of completely customized amounts in ETH**. This pool also enables shielded transactions where users can **transfer the custody of their token while remaining in the pool**.
Tornado Cash Nova (beta version) can be accessed on [nova.tornadocash.eth.link](https://nova.tornadocash.eth.link). You can find further informations related to the functioning of Tornado Cash Nova in the dedicated section of our docs.
## How does Tornado.Cash run? ## How does Tornado.Cash run?
@ -44,4 +62,4 @@ User interface is hosted on **IPFS** (InterPlanetary File System) by the communi
_Written by _[_@ayefda_](https://torn.community/u/ayefda)__ _Written & edited by_ [_@ayefda_](https://torn.community/u/ayefda)__

@ -1,11 +1,25 @@
# Table of contents # Table of contents
* [Introduction of Tornado.Cash](README.md) ## General
* [How does Tornado.Cash work?](how-does-tornado.cash-work.md)
* [Tips to remain anonymous](tips-to-remain-anonymous.md) * [Introduction of Tornado Cash](README.md)
* [Deposit & Withdraw](deposit-withdraw.md) * [Tornado Cash Smart Contracts](general/tornado-cash-smart-contracts.md)
* [Anonymity mining](anonymity-mining.md) * [How Does Tornado Cash Work?](general/how-does-tornado.cash-work.md)
* [TORN](torn.md) * [Tips to Remain Anonymous](general/tips-to-remain-anonymous.md)
* [Governance](governance.md) * [Governance](general/governance.md)
* [Community Involvement](community-involvement.md) * [Community Involvement](general/community-involvement.md)
* [Compliance Tool](compliance-tool.md) * [TORN](general/torn.md)
* [Minified UI Hosted Locally](general/minified-ui-hosted-locally.md)
## Tornado Cash Classic
* [Deposit & Withdraw](tornado-cash-classic/deposit-withdraw.md)
* [Anonymity Mining](tornado-cash-classic/anonymity-mining.md)
* [Compliance Tool](tornado-cash-classic/compliance-tool.md)
## Tornado Cash Nova
* [Logging In Tornado Cash Nova](tornado-cash-nova/logging-in-tornado-cash-nova.md)
* [Fund & Withdraw on Nova](tornado-cash-nova/fund-and-withdraw-on-nova.md)
* [Shielded Transfers on Nova](tornado-cash-nova/shielded-transfers-on-nova.md)
* [More Anonymity Tips](tornado-cash-nova/more-anonymity-tips.md)

@ -41,25 +41,25 @@ Tornado.Cash Community Fund has been allocated 5% of total available TORN of the
The monthly allocation of the Fund was programmed through [Sablier](https://sablier.finance), a protocol built on Ethereum that allows a live stream of remaining TORNs (second by second) over 12 months.  The monthly allocation of the Fund was programmed through [Sablier](https://sablier.finance), a protocol built on Ethereum that allows a live stream of remaining TORNs (second by second) over 12 months. 
In total, an amount of approximatively** 78k TORN** was allocated to this Community Fund. As of the end of August 2021, the balance of the Community Fund is about \~12.6k TORN vested in Sablier & 15.5k TORN in the Gnosis safe. In total, an amount of approximatively **78k TORN** was allocated to this Community Fund. As of the end of August 2021, the balance of the Community Fund is about \~12.6k TORN vested in Sablier & 15.5k TORN in the Gnosis safe. As of the beginning of 2022, the Community Fund (on Gnosis Safe) balance amounts to \~36.4k TORN.
Tornado.Cash Community Contract is: [0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4](https://gnosis-safe.io/app/#/safes/0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4/balances).  Tornado.Cash Community Contract is: [0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4](https://gnosis-safe.io/app/#/safes/0xb04E030140b30C27bcdfaafFFA98C57d80eDa7B4/balances). 
Funds are handled through a Multi-signature Wallet on Gnosis Safe. Keys to manage this wallet were put between the hand of 5 peer-elected community members. To validate a transaction, a consensus of 4-of-5 signatures is needed. Funds are handled through a Multi-signature Wallet on Gnosis Safe. Keys to manage this wallet were put between the hand of 5 peer-elected community members. To validate a transaction, a consensus of 4-of-5 signatures is needed.
Those multi-signatures key holders were chosen for their contribution & commitment to Tornado.Cash and its Community. They pledged to sign off transaction following the community instructions. Those guidelines are expressed through forum discussion and corroborated by a Snapshot vote.  Those multi-signatures key holders were chosen for their contribution & commitment to Tornado.Cash and its Community. They pledged to sign off transaction following the community instructions. Those guidelines are expressed through forum discussion and corroborated by a Snapshot vote.
All signers also pledged to resign if they no longer fulfill their allegiance to Tornados prosperity. They can also be dismissed from their role under the decision of the the community. To reward their commitment as signers & key contributors for Tornado.Cash community, 100 TORN per month have been deployed through Sablier All signers also pledged to resign if they no longer fulfill their allegiance to Tornados prosperity. They can also be dismissed from their role under the decision of the the community. To reward their commitment as signers & key contributors for Tornado.Cash community, a minimum of 100 TORN per month per signer has been deployed through Sablier.
The current 5 multi-signatures key holders are:  The current 5 multi-signatures key holders are: 
* [0xd26BaA5F41CC7839CEdb020b6d98E1C6e1642D75](https://etherscan.io/address/0xd26BaA5F41CC7839CEdb020b6d98E1C6e1642D75) * [0xd26BaA5F41CC7839CEdb020b6d98E1C6e1642D75](https://etherscan.io/address/0xd26BaA5F41CC7839CEdb020b6d98E1C6e1642D75)
* [0x0D5bbdBa8Fd6523102A0bb5a0E68b30441a3765F](https://etherscan.io/address/0x0D5bbdBa8Fd6523102A0bb5a0E68b30441a3765F) * [0x7c09bCa28ba3DB1CF7cd793696B161261cAC27b5](https://etherscan.io/address/0x7c09bCa28ba3DB1CF7cd793696B161261cAC27b5)
* [0xAf98Bb4bCeD00A17fFE020499C342CFC3511Fb10](https://etherscan.io/address/0xAf98Bb4bCeD00A17fFE020499C342CFC3511Fb10) * [0x339B45fBEed1ab46Fe9c11f484b0Ea7220e75300](https://etherscan.io/address/0x339B45fBEed1ab46Fe9c11f484b0Ea7220e75300)
* [0x647e9e26DA82C29AAFbbFB1C3f45d916AA9b300d](https://etherscan.io/address/0x647e9e26DA82C29AAFbbFB1C3f45d916AA9b300d) * [0x647e9e26DA82C29AAFbbFB1C3f45d916AA9b300d](https://etherscan.io/address/0x647e9e26DA82C29AAFbbFB1C3f45d916AA9b300d)
* [0xEA27752f7D6687CB3Be2F180B997713b784c9911](https://etherscan.io/address/0xEA27752f7D6687CB3Be2F180B997713b784c9911) * [0xEA27752f7D6687CB3Be2F180B997713b784c9911](https://etherscan.io/address/0xEA27752f7D6687CB3Be2F180B997713b784c9911)
###
### How to Claim a Reward? ### How to Claim a Reward?
@ -71,7 +71,7 @@ Once those terms & conditions are fixed, a vote is conducted on Snapshot to vali
Here is Tornado.Cash Snapshot space:[ https://snapshot.org/#/torn-community.eth](https://snapshot.org/#/torn-community.eth). Here is Tornado.Cash Snapshot space:[ https://snapshot.org/#/torn-community.eth](https://snapshot.org/#/torn-community.eth).
![](.gitbook/assets/page-daccueil.png) ![](../.gitbook/assets/page-daccueil.png)
@ -81,7 +81,7 @@ Each specific funding request is accompanied by a Snapshot vote, where TORN hold
Each snapshot vote has a `window of 3 days` to accumulate TORN holders votes. When the end date is reached, the Snapshot status goes from`Active` to `Closed`. Community members can no longer vote.  Each snapshot vote has a `window of 3 days` to accumulate TORN holders votes. When the end date is reached, the Snapshot status goes from`Active` to `Closed`. Community members can no longer vote. 
![](.gitbook/assets/time-window.png) ![](../.gitbook/assets/time-window.png)
Multi-signature key holders consider that the funding request is validated by the community if: Multi-signature key holders consider that the funding request is validated by the community if:
@ -94,15 +94,15 @@ Steps to vote on Snapshot are quite intuitive. The community member needs to:
* Connect the wallet holding TORNs thanks to either MetaMask, WalletConnect or Torus; * Connect the wallet holding TORNs thanks to either MetaMask, WalletConnect or Torus;
![](.gitbook/assets/connect-wallet.png) ![](../.gitbook/assets/connect-wallet.png)
* Cast the vote, by either clicking on `Accept` or `Refuse`; * Cast the vote, by either clicking on `Accept` or `Refuse`;
![](.gitbook/assets/cast-the-vote.png) ![](../.gitbook/assets/cast-the-vote.png)
* Confirm the vote. * Confirm the vote.
![](.gitbook/assets/confirm-the-vote.png) ![](../.gitbook/assets/confirm-the-vote.png)

@ -1,5 +1,7 @@
# Governance # Governance
The following governance rules apply to all Tornado Cash pools (including Tornado Cash Nova).
### How to suggest a proposal ? ### How to suggest a proposal ?
In order to participate in Tornado.Cash governance, users first need to lock tokens in the governance contract. If a user votes or creates a proposal, the tokens cannot be unlocked before the proposal execution period ends (8.25 days from proposal creation). The locked tokens can also be delegated to another address. In order to participate in Tornado.Cash governance, users first need to lock tokens in the governance contract. If a user votes or creates a proposal, the tokens cannot be unlocked before the proposal execution period ends (8.25 days from proposal creation). The locked tokens can also be delegated to another address.
@ -36,7 +38,7 @@ Click `Manage` -> `Lock Tab`
Approve the governance contract to transfer your TORN tokens by clicking on the `Approve` button. Once the approve is confirmed, chose the amount you want to deposit and click `Lock`. Confirm the transaction in your wallet and wait for the confirmation. Approve the governance contract to transfer your TORN tokens by clicking on the `Approve` button. Once the approve is confirmed, chose the amount you want to deposit and click `Lock`. Confirm the transaction in your wallet and wait for the confirmation.
![](.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2.png) ![](../.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2.png)
Before the vote, the next crucial step is to review the proposal.\ Before the vote, the next crucial step is to review the proposal.\
 Legitimate proposals should have a dedicated post on [Torn.community ](https://torn.community)under the category “Proposal”. The forum post will provide additional context and arguments on the proposal. Read the thread and make your own mind on the issue.  Legitimate proposals should have a dedicated post on [Torn.community ](https://torn.community)under the category “Proposal”. The forum post will provide additional context and arguments on the proposal. Read the thread and make your own mind on the issue.
@ -45,11 +47,11 @@ Once a proposal was submitted it should appear on:\
[https://app.tornado.cash/governance](https://app.tornado.cash/governance)\ [https://app.tornado.cash/governance](https://app.tornado.cash/governance)\
 Proposal are implemented in the form of a smart contract making changes to the system. It is therefore important to verify the address of the smart-contract and review its code. Find the address of the proposal contract here:  Proposal are implemented in the form of a smart contract making changes to the system. It is therefore important to verify the address of the smart-contract and review its code. Find the address of the proposal contract here:
![](.gitbook/assets/181d612b6c57964bab59c8e5b766f5247211083d.png) ![](../.gitbook/assets/181d612b6c57964bab59c8e5b766f5247211083d.png)
Look for the contract address on Etherscan and make sure that the source code is verified and readable. Look for the contract address on Etherscan and make sure that the source code is verified and readable.
![](.gitbook/assets/d2d37d169a94f09156e76fa522b7974cb7c9ac3f.png) ![](../.gitbook/assets/d2d37d169a94f09156e76fa522b7974cb7c9ac3f.png)
Read the source code and make sure that it matches what is described in the forum post. Read the source code and make sure that it matches what is described in the forum post.
@ -75,7 +77,7 @@ You first need to lock your tokens in the governance contract. Click **`Manage`*
Approve the governance contract to transfer your TORN tokens by clicking on the **`Approve`** button. Once the approve is confirmed, chose the amount you want to delegate and click **`Lock`**. Confirm the transaction in your wallet and wait for the confirmation. Approve the governance contract to transfer your TORN tokens by clicking on the **`Approve`** button. Once the approve is confirmed, chose the amount you want to delegate and click **`Lock`**. Confirm the transaction in your wallet and wait for the confirmation.
![](<.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2 (1).png>) ![](<../.gitbook/assets/c05e5a1813edad280544b627b24002dc8d5adcf2 (1).png>)
The last step, is to make the actual delegation. Go again to [https://app.tornado.cash/governance](https://app.tornado.cash/governance) The last step, is to make the actual delegation. Go again to [https://app.tornado.cash/governance](https://app.tornado.cash/governance)
@ -83,7 +85,7 @@ Click **`Manage`** -> **`Delegate`** tab
Fill-in the address to which you want to delegate and click **`Delegate`**. Approve the transaction in your wallet and wait for confirmation. Fill-in the address to which you want to delegate and click **`Delegate`**. Approve the transaction in your wallet and wait for confirmation.
![](.gitbook/assets/43c05d176d7f75a336af7a865565c9b23786b98c.png) ![](../.gitbook/assets/43c05d176d7f75a336af7a865565c9b23786b98c.png)
The totality of your locked balance will be delegated. The totality of your locked balance will be delegated.

@ -1,4 +1,4 @@
# How does Tornado.Cash work? # How Does Tornado Cash Work?
Before diving in tutorials explaining & easing the use of Tornado.Cash, here is an overall overview of the protocol global functioning. Before diving in tutorials explaining & easing the use of Tornado.Cash, here is an overall overview of the protocol global functioning.
@ -8,7 +8,16 @@ To achieve privacy, Tornado.Cash **uses smart contracts that accept tokens depos
Once the funds are withdrawn by a complete new address from those pools, the on-chain link between the source & the destination is broken. The withdrawn crypto-assets are therefore anonymized.&#x20; Once the funds are withdrawn by a complete new address from those pools, the on-chain link between the source & the destination is broken. The withdrawn crypto-assets are therefore anonymized.&#x20;
When a user puts funds into a pool (a.k.a. the deposit), a private note is generated. This private note works as a private key for the user to access those funds later. To withdraw them, the same user can use a different address - an old or a new one - and recover his/her funds thanks to this private key. While tokens are in a Tornado Cash pool, the custody remains in users hands. Users, therefore, have a complete control over their tokens.
**For traditional Tornado Cash fixed amount pools**:
* When a user puts funds into a pool (a.k.a. the deposit), a private note is generated. This private note works as a private key for the user to access those funds later. To withdraw them, the same user can use a different address - an old or a new one - and recover his/her funds thanks to this private key.
**For Tornado Cash Nova, the new ETH pool with arbitrary amounts & shielded transfers**:
* Funds are directly linked to a given wallet address. There is no private note or key. Users can access their funds by connecting to the pool with the appropriate address.
* Custody is either acquired by the act of depositing tokens into the pool or by registering to the pool & receiving shielded transfers from another address.
The strength of such a protocol comes naturally from its number of users and the size of its pool. The more users deposit into the pool the merrier. However, to preserve privacy & anonymity, the user must keep some basic rules in mind such as: The strength of such a protocol comes naturally from its number of users and the size of its pool. The more users deposit into the pool the merrier. However, to preserve privacy & anonymity, the user must keep some basic rules in mind such as:
@ -32,4 +41,4 @@ Deposits are simple on a technological point of view, but expensive in terms of
_Written by _[_@ayefda_](https://torn.community/u/ayefda)__ _Written & edited by_ [_@ayefda_](https://torn.community/u/ayefda)__

@ -0,0 +1,69 @@
# Minified UI Hosted Locally
Tornado Cash protocol can be launched locally on your computer through a minified User Interface version made available by the core developers team.
{% embed url="https://github.com/tornadocash/ui-minified" %}
### Step #1: Clone the Github repository on your computer
By opening your Command Line Interface, you can run the following commands to, first, clone the repository, then go inside the newly copied folder:
```
git clone https://github.com/tornadocash/ui-minified.git
cd ui-minified
```
### Step #2: Serve the Folder with Your Favorite HTTP Server
```
python -m SimpleHTTPServer 8080
```
You can obviously use any other http web server, such as[ npmjs.com/package/http-server](https://www.npmjs.com/package/http-server).
### Step #3: Run the UI on Localhost on your Favorite Web Browser
To finish, you just need to run [http://localhost:8080](http://localhost:8080) on your Web Browser & let the magic happens 🪄
## Running a TOR service
If you wish to serve tornado cash UI on an .onion domain, there is an easy way to do it using docker-compose.
* You need to paste the following into `docker-compose.yml`
```
version: '2'
services:
tornado_ui:
image: tornadocash/ui
restart: always
container_name: tornado_ui
watchtower:
image: v2tec/watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 60 tornado_ui
tor:
image: strm/tor
restart: always
depends_on: [ tornado_ui ]
environment:
LISTEN_PORT: 80
REDIRECT: tornado_ui:80
# Generate a new key with
# docker run --rm --entrypoint shallot strm/tor-hiddenservice-nginx ^torn
PRIVATE_KEY: |
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
```
* Then, just run the following command:`docker-compose up -d`
Enjoy your Tornado Cash UI 🌪
_This tutorial is inspired from the_[ _README.md document_](https://github.com/tornadocash/ui-minified/blob/gh-pages/README.md) _present in the Github repository._

@ -1,4 +1,4 @@
# Tips to remain anonymous # Tips to Remain Anonymous
The Tornado Cash tool allows you to remain anonymous on-chain. However, if the tool is used without protecting oneself upstream and downstream, there is no point and the anonymity would only be partial. There are practices to avoid this. The Tornado Cash tool allows you to remain anonymous on-chain. However, if the tool is used without protecting oneself upstream and downstream, there is no point and the anonymity would only be partial. There are practices to avoid this.
@ -6,19 +6,19 @@ The Tornado Cash tool allows you to remain anonymous on-chain. However, if the t
Your internet service provider (ISP) identifies you with an IP address. To prevent third parties from knowing that you are using Tornado.cash, you should consider using TOR and/or a VPN for your transfers. Avoid using free VPNs, they tend to keep or even sell your data. There are several VPNs on the market boasting a "no-log policy". Your internet service provider (ISP) identifies you with an IP address. To prevent third parties from knowing that you are using Tornado.cash, you should consider using TOR and/or a VPN for your transfers. Avoid using free VPNs, they tend to keep or even sell your data. There are several VPNs on the market boasting a "no-log policy".
### Save your note in a safe place <a href="save-your-note-in-a-safe-place" id="save-your-note-in-a-safe-place"></a> ### Save your note in a safe place <a href="#save-your-note-in-a-safe-place" id="save-your-note-in-a-safe-place"></a>
Your note provides a record of your original transaction. Anyone who has it can withdraw the funds deposited, but also know the deposit address. Be sure to keep this note away from prying eyes and store it in a secure environment. Your note provides a record of your original transaction. Anyone who has it can withdraw the funds deposited, but also know the deposit address. Be sure to keep this note away from prying eyes and store it in a secure environment.
### Delete data <a href="delete-data" id="delete-data"></a> ### Delete data <a href="#delete-data" id="delete-data"></a>
Your browser is a real source of information for the extensions you use. Delete your data after each deposit or withdrawal. If two transfers are made with the same cookies, the extension you are using will be able to link these two transactions. Your browser is a real source of information for the extensions you use. Delete your data after each deposit or withdrawal. If two transfers are made with the same cookies, the extension you are using will be able to link these two transactions.
### Avoid using the same API token <a href="avoid-using-the-same-api-token" id="avoid-using-the-same-api-token"></a> ### Avoid using the same API token <a href="#avoid-using-the-same-api-token" id="avoid-using-the-same-api-token"></a>
If you use the same API token for two transactions, you will be easily recognized by your extension. For Metamask users, be aware that this extension will use the same token for each of your transactions. To avoid this problem, don't hesitate to uninstall and reinstall Metamask for each transfer, making sure to create a new account each time. If you use the same API token for two transactions, you will be easily recognized by your extension. For Metamask users, be aware that this extension will use the same token for each of your transactions. To avoid this problem, don't hesitate to uninstall and reinstall Metamask for each transfer, making sure to create a new account each time.
### Be patient <a href="be-patient" id="be-patient"></a> ### Be patient <a href="#be-patient" id="be-patient"></a>
![](https://gblobscdn.gitbook.com/assets%2F-MXflGk4w5pDjjlmPCuF%2F-MgQVRqU6Ff6ypW\_Q-fV%2F-MgQW0ko2bOUYlnsuG0F%2Fozxj.png?alt=media\&token=1debad58-aa3c-4638-9d18-1636e87e3d0a) ![](https://gblobscdn.gitbook.com/assets%2F-MXflGk4w5pDjjlmPCuF%2F-MgQVRqU6Ff6ypW\_Q-fV%2F-MgQW0ko2bOUYlnsuG0F%2Fozxj.png?alt=media\&token=1debad58-aa3c-4638-9d18-1636e87e3d0a)

@ -13,11 +13,11 @@ TORN is an ERC20-compatible token with a fixed supply that governs [Tornado.Cash
* **55% (5,500,000 TORN):** DAO treasury, will be unlocked linearly over 5 years with 3 month cliff * **55% (5,500,000 TORN):** DAO treasury, will be unlocked linearly over 5 years with 3 month cliff
* **30% (3,000,000 TORN):** Founding developers and early supporters, will be unlocked linearly over 3 years with 1 year cliff * **30% (3,000,000 TORN):** Founding developers and early supporters, will be unlocked linearly over 3 years with 1 year cliff
![](.gitbook/assets/1-bjggju1rn4\_qoxgcljfneq.png) ![](../.gitbook/assets/1-bjggju1rn4\_qoxgcljfneq.png)
![](.gitbook/assets/1-gmc0jw8zr5xfvrk5zyqmya.png) ![](../.gitbook/assets/1-gmc0jw8zr5xfvrk5zyqmya.png)
## Airdrop <a href="f04d" id="f04d"></a> ## Airdrop <a href="#f04d" id="f04d"></a>
Users who have believed in [Tornado.Cash](https://tornado.cash) from early on should have a say in governing the protocol. For this reason, early adopters of the protocol did receive an airdrop of TORN. Users who have believed in [Tornado.Cash](https://tornado.cash) from early on should have a say in governing the protocol. For this reason, early adopters of the protocol did receive an airdrop of TORN.
@ -25,7 +25,7 @@ TORN has been airdropped to [all addresses](https://github.com/tornadocash/airdr
The airdropped amount depends on users deposit size and age — larger deposits and older deposits will receive more TORN. Multipliers for deposit size are logarithmic: The airdropped amount depends on users deposit size and age — larger deposits and older deposits will receive more TORN. Multipliers for deposit size are logarithmic:
![](.gitbook/assets/1-ogfrad8p3gez14zh4jndiq-2x.png) ![](../.gitbook/assets/1-ogfrad8p3gez14zh4jndiq-2x.png)
@ -33,10 +33,10 @@ So a 100 ETH deposit get twice as many tokens as a 1 ETH deposit. The multiplier
The exact curve for the time multiplier looks like this: The exact curve for the time multiplier looks like this:
![](.gitbook/assets/1-bje88nlnkbe29-zcs5agkw-2x.png) ![](../.gitbook/assets/1-bje88nlnkbe29-zcs5agkw-2x.png)
The exact airdrop formula is the following: The exact airdrop formula is the following:
![](.gitbook/assets/1-megm4amqrrkx0qxva9iska-2x.png) ![](../.gitbook/assets/1-megm4amqrrkx0qxva9iska-2x.png)
_Written by_ [_**Tornado Team**_](https://tornado-cash.medium.com/tornado-cash-governance-proposal-a55c5c7d0703) _Written by_ [_**Tornado Team**_](https://tornado-cash.medium.com/tornado-cash-governance-proposal-a55c5c7d0703)

@ -0,0 +1,184 @@
# Tornado Cash Smart Contracts
[Codes behind Tornado.Cash functioning](https://github.com/tornadocash) - smart contacts, circuits & toolchain - are fully **open sourced.** This page regroups all information regarding Tornado Cash smart contracts.
## Smart Contracts Adresses
### Pools Contracts
* ETH pools:
* 0.1 ETH: [0x12d66f87a04a9e220743712ce6d9bb1b5616b8fc](https://etherscan.io/address/0x12d66f87a04a9e220743712ce6d9bb1b5616b8fc)
* 1 ETH: [0x47ce0c6ed5b0ce3d3a51fdb1c52dc66a7c3c2936](https://etherscan.io/address/0x47ce0c6ed5b0ce3d3a51fdb1c52dc66a7c3c2936)
* 10 ETH: [0x910cbd523d972eb0a6f4cae4618ad62622b39dbf](https://etherscan.io/address/0x910cbd523d972eb0a6f4cae4618ad62622b39dbf)
* 100 ETH: [0xa160cdab225685da1d56aa342ad8841c3b53f291](https://etherscan.io/address/0xa160cdab225685da1d56aa342ad8841c3b53f291)
* DAI pools:
* 100 DAI: [0xd4b88df4d29f5cedd6857912842cff3b20c8cfa3](https://etherscan.io/address/0xd4b88df4d29f5cedd6857912842cff3b20c8cfa3)
* 1,000 DAI: [0xfd8610d20aa15b7b2e3be39b396a1bc3516c7144](https://etherscan.io/address/0xfd8610d20aa15b7b2e3be39b396a1bc3516c7144)
* 10,000 DAI: [0](https://etherscan.io/address/0x07687e702b410Fa43f4cB4Af7FA097918ffD2730)[x](https://etherscan.io/address/0xfd8610d20aa15b7b2e3be39b396a1bc3516c7144)[07687e702b410Fa43f4cB4Af7FA097918ffD2730](https://etherscan.io/address/0x07687e702b410Fa43f4cB4Af7FA097918ffD2730)
* 100,000 DAI: [0](https://etherscan.io/address/0x23773E65ed146A459791799d01336DB287f25334)[x](https://etherscan.io/address/0xfd8610d20aa15b7b2e3be39b396a1bc3516c7144)[23773E65ed146A459791799d01336DB287f25334](https://etherscan.io/address/0x23773E65ed146A459791799d01336DB287f25334)\
* cDAI pools:
* 5,000 cDAI: [0x22aaA7720ddd5388A3c0A3333430953C68f1849b](https://etherscan.io/address/0x22aaA7720ddd5388A3c0A3333430953C68f1849b)
* 50,000 cDAI: [0x03893a7c7463AE47D46bc7f091665f1893656003](https://etherscan.io/address/0x03893a7c7463AE47D46bc7f091665f1893656003)
* 500,000 cDAI: [0x2717c5e28cf931547B621a5dddb772Ab6A35B701](https://etherscan.io/address/0x2717c5e28cf931547B621a5dddb772Ab6A35B701)
* 5,000,000 cDAI: [0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af](https://etherscan.io/address/0xD21be7248e0197Ee08E0c20D4a96DEBdaC3D20Af)\
* USDC pools:
* 100 USDC: [0x4736dCf1b7A3d580672CcE6E7c65cd5cc9cFBa9D](https://etherscan.io/address/0x4736dCf1b7A3d580672CcE6E7c65cd5cc9cFBa9D)
* 1,000 USDC: [0xd96f2B1c14Db8458374d9Aca76E26c3D18364307](https://etherscan.io/address/0xd96f2B1c14Db8458374d9Aca76E26c3D18364307)\
* USDT pools:
* 100 USDT: [0x169AD27A470D064DEDE56a2D3ff727986b15D52B](https://etherscan.io/address/0x169AD27A470D064DEDE56a2D3ff727986b15D52B)
* 1,000 USDT: [0x0836222F2B2B24A3F36f98668Ed8F0B38D1a872f](https://etherscan.io/address/0x0836222F2B2B24A3F36f98668Ed8F0B38D1a872f)\
* WBTC pools:&#x20;
* 0.1 WBTC: [0x178169B423a011fff22B9e3F3abeA13414dDD0F1](https://etherscan.io/address/0x178169B423a011fff22B9e3F3abeA13414dDD0F1)
* 1 WBTC: [0x610B717796ad172B316836AC95a2ffad065CeaB4](https://etherscan.io/address/0x610B717796ad172B316836AC95a2ffad065CeaB4)
* 10 WBTC: [0xbB93e510BbCD0B7beb5A853875f9eC60275CF498](https://etherscan.io/address/0xbB93e510BbCD0B7beb5A853875f9eC60275CF498)\
* BNB pools:
* 0.1 BNB: [0x84443CFd09A48AF6eF360C6976C5392aC5023a1F](https://bscscan.com/address/0x84443CFd09A48AF6eF360C6976C5392aC5023a1F)
* 1 BNB: [0xd47438C816c9E7f2E2888E060936a499Af9582b3](https://bscscan.com/address/0xd47438C816c9E7f2E2888E060936a499Af9582b3)
* 10 BNB: [0x330bdFADE01eE9bF63C209Ee33102DD334618e0a](https://bscscan.com/address/0x330bdFADE01eE9bF63C209Ee33102DD334618e0a)
* 100 BNB: [0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD](https://bscscan.com/address/0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD)\
* xDAI pools:
* 100 xDAI: [0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD](https://blockscout.com/xdai/mainnet/address/0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD/transactions)
* 1,000 xDAI: [0xdf231d99Ff8b6c6CBF4E9B9a945CBAcEF9339178](https://blockscout.com/xdai/mainnet/address/0xdf231d99Ff8b6c6CBF4E9B9a945CBAcEF9339178/transactions)
* 10,000 xDAI: [0xaf4c0B70B2Ea9FB7487C7CbB37aDa259579fe040](https://blockscout.com/xdai/mainnet/address/0xaf4c0B70B2Ea9FB7487C7CbB37aDa259579fe040/transactions)
* 100,000 xDAI: [0xa5C2254e4253490C54cef0a4347fddb8f75A4998](https://blockscout.com/xdai/mainnet/address/0xa5C2254e4253490C54cef0a4347fddb8f75A4998/transactions)\
* MATIC pools:
* 100 MATIC: [0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD](https://polygonscan.com/address/0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD)
* 1,000 MATIC: [0xdf231d99Ff8b6c6CBF4E9B9a945CBAcEF9339178](https://polygonscan.com/address/0xdf231d99Ff8b6c6CBF4E9B9a945CBAcEF9339178)
* 10,000 MATIC: [0xaf4c0B70B2Ea9FB7487C7CbB37aDa259579fe040](https://polygonscan.com/address/0xaf4c0B70B2Ea9FB7487C7CbB37aDa259579fe040)
* 100,000 MATIC: [0xa5C2254e4253490C54cef0a4347fddb8f75A4998](https://polygonscan.com/address/0xa5C2254e4253490C54cef0a4347fddb8f75A4998)\
* AVAX pools:
* 10 AVAX: [0x330bdFADE01eE9bF63C209Ee33102DD334618e0a](https://snowtrace.io/address/0x330bdFADE01eE9bF63C209Ee33102DD334618e0a)
* 100 AVAX: [0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD](https://snowtrace.io/address/0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD)
* 500 AVAX: [0xaf8d1839c3c67cf571aa74B5c12398d4901147B3](https://snowtrace.io/address/0xaf8d1839c3c67cf571aa74B5c12398d4901147B3)\
* ETH pools on Arbitrum:
* 0.1 ETH: [0x84443CFd09A48AF6eF360C6976C5392aC5023a1F](https://arbiscan.io/address/0x84443CFd09A48AF6eF360C6976C5392aC5023a1F)
* 1 ETH: [0xd47438C816c9E7f2E2888E060936a499Af9582b3](https://arbiscan.io/address/0xd47438C816c9E7f2E2888E060936a499Af9582b3)
* 10 ETH: [0x330bdFADE01eE9bF63C209Ee33102DD334618e0a](https://arbiscan.io/address/0x330bdFADE01eE9bF63C209Ee33102DD334618e0a)
* 100 ETH: [0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD](https://arbiscan.io/address/0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD)
* ETH pools on Optimism:
* 0.1 ETH: [0x84443CFd09A48AF6eF360C6976C5392aC5023a1F](https://optimistic.etherscan.io/address/0x84443CFd09A48AF6eF360C6976C5392aC5023a1F)
* 1 ETH: [0xd47438C816c9E7f2E2888E060936a499Af9582b3](https://optimistic.etherscan.io/address/0xd47438C816c9E7f2E2888E060936a499Af9582b3)
* 10 ETH: [0x330bdFADE01eE9bF63C209Ee33102DD334618e0a](https://optimistic.etherscan.io/address/0x330bdFADE01eE9bF63C209Ee33102DD334618e0a)
* 100 ETH: [0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD](https://optimistic.etherscan.io/address/0x1E34A77868E19A6647b1f2F47B51ed72dEDE95DD)\
### Tornado Cash Nova Pool (bêta version)
* Contract: [0xD692Fd2D0b2Fbd2e52CFa5B5b9424bC981C30696](https://blockscout.com/xdai/mainnet/address/0xD692Fd2D0b2Fbd2e52CFa5B5b9424bC981C30696/transactions)
* L1 Omnibridge Helper: [0xca0840578f57fe71599d29375e16783424023357](https://etherscan.io/address/0xca0840578f57fe71599d29375e16783424023357)
* Verifier 2: [0xDF3A408c53E5078af6e8fb2A85088D46Ee09A61b](https://blockscout.com/xdai/mainnet/address/0xDF3A408c53E5078af6e8fb2A85088D46Ee09A61b/transactions)
* Verifier 16: [0x743494b60097A2230018079c02fe21a7B687EAA5](https://blockscout.com/xdai/mainnet/address/0x743494b60097A2230018079c02fe21a7B687EAA5/transactions)
* Hasher: [0x94C92F096437ab9958fC0A37F09348f30389Ae79](https://blockscout.com/xdai/mainnet/address/0x94C92F096437ab9958fC0A37F09348f30389Ae79/transactions)
### Pools on Goerli Network (for testing):
* ETH pools:
* 0.1 ETH: [0x6Bf694a291DF3FeC1f7e69701E3ab6c592435Ae7](https://goerli.etherscan.io/address/0x6Bf694a291DF3FeC1f7e69701E3ab6c592435Ae7)
* 1 ETH: [0x3aac1cC67c2ec5Db4eA850957b967Ba153aD6279](https://goerli.etherscan.io/address/0x3aac1cC67c2ec5Db4eA850957b967Ba153aD6279)
* 10 ETH: [0x723B78e67497E85279CB204544566F4dC5d2acA0](https://goerli.etherscan.io/address/0x723B78e67497E85279CB204544566F4dC5d2acA0)
* 100 ETH: [0x0E3A09dDA6B20aFbB34aC7cD4A6881493f3E7bf7](https://goerli.etherscan.io/address/0x0E3A09dDA6B20aFbB34aC7cD4A6881493f3E7bf7)
* DAI pools:
* 100 DAI: [0x76D85B4C0Fc497EeCc38902397aC608000A06607](https://goerli.etherscan.io/address/0x76D85B4C0Fc497EeCc38902397aC608000A06607)
* 1,000 DAI: [0xCC84179FFD19A1627E79F8648d09e095252Bc418](https://goerli.etherscan.io/address/0xCC84179FFD19A1627E79F8648d09e095252Bc418)
* 10,000 DAI: [0xD5d6f8D9e784d0e26222ad3834500801a68D027D](https://goerli.etherscan.io/address/0xD5d6f8D9e784d0e26222ad3834500801a68D027D)
* 100,000 DAI: [0x407CcEeaA7c95d2FE2250Bf9F2c105aA7AAFB512](https://goerli.etherscan.io/address/0x407CcEeaA7c95d2FE2250Bf9F2c105aA7AAFB512)\
* cDAI pools:
* 5,000 cDAI: [0x833481186f16Cece3f1Eeea1a694c42034c3a0dB](https://goerli.etherscan.io/address/0x833481186f16Cece3f1Eeea1a694c42034c3a0dB)
* 50,000 cDAI: [0xd8D7DE3349ccaA0Fde6298fe6D7b7d0d34586193](https://goerli.etherscan.io/address/0xd8D7DE3349ccaA0Fde6298fe6D7b7d0d34586193)
* 500,000 cDAI: [0x8281Aa6795aDE17C8973e1aedcA380258Bc124F9](https://goerli.etherscan.io/address/0x8281Aa6795aDE17C8973e1aedcA380258Bc124F9)
* 5,000,000 cDAI: [0x57b2B8c82F065de8Ef5573f9730fC1449B403C9f](https://goerli.etherscan.io/address/0x57b2B8c82F065de8Ef5573f9730fC1449B403C9f)\
* USDC pools:
* 100 USDC: [0x05E0b5B40B7b66098C2161A5EE11C5740A3A7C45](https://goerli.etherscan.io/address/0x05E0b5B40B7b66098C2161A5EE11C5740A3A7C45)
* 1,000 USDC: [0x23173fE8b96A4Ad8d2E17fB83EA5dcccdCa1Ae52](https://goerli.etherscan.io/address/0x23173fE8b96A4Ad8d2E17fB83EA5dcccdCa1Ae52)
* USDT pools:
* 100 USDT: [0x538Ab61E8A9fc1b2f93b3dd9011d662d89bE6FE6](https://goerli.etherscan.io/address/0x538Ab61E8A9fc1b2f93b3dd9011d662d89bE6FE6)
* 1,000 USDT: [0x94Be88213a387E992Dd87DE56950a9aef34b9448](https://goerli.etherscan.io/address/0x94Be88213a387E992Dd87DE56950a9aef34b9448)\
* WBTC pools:
* 0.1 WBTC: [0x242654336ca2205714071898f67E254EB49ACdCe](https://goerli.etherscan.io/address/0x242654336ca2205714071898f67E254EB49ACdCe)
* 1 WBTC: [0x776198CCF446DFa168347089d7338879273172cF](https://goerli.etherscan.io/address/0x776198CCF446DFa168347089d7338879273172cF)
* 10 WBTC: [0xeDC5d01286f99A066559F60a585406f3878a033e](https://goerli.etherscan.io/address/0xeDC5d01286f99A066559F60a585406f3878a033e)
### Governance Contracts:
* Governance Contract: [0x5efda50f22d34f262c29268506c5fa42cb56a1ce](https://etherscan.io/address/0x5efda50f22d34f262c29268506c5fa42cb56a1ce)
* Governance Vault (for locked TORN): [0x2f50508a8a3d323b91336fa3ea6ae50e55f32185](https://etherscan.io/address/0x2f50508a8a3d323b91336fa3ea6ae50e55f32185#tokentxns)
* Governance Impl: [0xffbac21a641dcfe4552920138d90f3638b3c9fba](https://etherscan.io/address/0xffbac21a641dcfe4552920138d90f3638b3c9fba)
* Governance Vesting: [0x179f48c78f57a3a78f0608cc9197b8972921d1d2](https://etherscan.io/address/0x179f48c78f57a3a78f0608cc9197b8972921d1d2)
* TORN token:[0x77777feddddffc19ff86db637967013e6c6a116c](https://etherscan.io/address/0x77777feddddffc19ff86db637967013e6c6a116c)
* vTORN token: [0x3efa30704d2b8bbac821307230376556cf8cc39e](https://etherscan.io/address/0x3efa30704d2b8bbac821307230376556cf8cc39e)
* Mining v2: [0x746aebc06d2ae31b71ac51429a19d54e797878e9](https://etherscan.io/address/0x746aebc06d2ae31b71ac51429a19d54e797878e9)
### Team Vesting Contracts:
* [0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2](https://etherscan.io/address/0x5f48c2a71b2cc96e3f0ccae4e39318ff0dc375b2)
* [0x00d5ec4cdf59374b2a47e842b799027356eac02b](https://etherscan.io/address/0x00d5ec4cdf59374b2a47e842b799027356eac02b)
* [0x77c08248c93ab53ff734ac555c932f8b9089d4c9](https://etherscan.io/address/0x77c08248c93ab53ff734ac555c932f8b9089d4c9)
* [0xc3877028655ebe90b9447dd33de391c955ead267](https://etherscan.io/address/0xc3877028655ebe90b9447dd33de391c955ead267)
* [0xb43432ec23e228fb7cb0fa52968949458b509f4f](https://etherscan.io/address/0xb43432ec23e228fb7cb0fa52968949458b509f4f)\
### Other Contracts:
* Tornado.Cash Trees: [0x527653ea119f3e6a1f5bd18fbf4714081d7b31ce](https://etherscan.io/address/0x527653ea119f3e6a1f5bd18fbf4714081d7b31ce)
* Tree Update Verifier: [0x653477c392c16b0765603074f157314cc4f40c32](https://etherscan.io/address/0x653477c392c16b0765603074f157314cc4f40c32)
* Withdraw Verifier: [0x09193888b3f38c82dedfda55259a82c0e7de875e](https://etherscan.io/address/0x09193888b3f38c82dedfda55259a82c0e7de875e)
* Reward Verifier: [0x88fd245fedec4a936e700f9173454d1931b4c307](https://etherscan.io/address/0x88fd245fedec4a936e700f9173454d1931b4c307)
* Reward Swap: [0x5cab7692d4e94096462119ab7bf57319726eed2a](https://etherscan.io/address/0x5cab7692d4e94096462119ab7bf57319726eed2a)
* Echoer: [0x756c4628e57f7e7f8a459ec2752968360cf4d1aa](https://etherscan.io/address/0x756c4628e57f7e7f8a459ec2752968360cf4d1aa)
* Proxy: [0x722122df12d4e14e13ac3b6895a86e84145b6967](https://etherscan.io/address/0x722122df12d4e14e13ac3b6895a86e84145b6967)
* Mixer 1: [0x94a1b5cdb22c43faab4abeb5c74999895464ddaf](https://etherscan.io/address/0x94a1b5cdb22c43faab4abeb5c74999895464ddaf)
* Mixer 2: [0xb541fc07bc7619fd4062a54d96268525cbc6ffef](https://etherscan.io/address/0xb541fc07bc7619fd4062a54d96268525cbc6ffef)
* Poseidon 2: [0x94c92f096437ab9958fc0a37f09348f30389ae79](https://etherscan.io/address/0x94c92f096437ab9958fc0a37f09348f30389ae79)
* Poseidon 3: [0xd82ed8786d7c69dc7e052f7a542ab047971e73d2](https://etherscan.io/address/0xd82ed8786d7c69dc7e052f7a542ab047971e73d2)
* Gitcoin Grants: [0xdd4c48c0b24039969fc16d1cdf626eab821d3384](https://etherscan.io/address/0xdd4c48c0b24039969fc16d1cdf626eab821d3384)
## GitHub links
* Tornado Cash core code:
{% embed url="https://github.com/tornadocash/tornado-core" %}
* Tornado Cash Command Line to make transactions in the protocol:
{% embed url="https://github.com/tornadocash/tornado-cli" %}
* To become a relayer for Tornado Cash:
{% embed url="https://github.com/tornadocash/tornado-relayer" %}
* Minified web UI for Tornado Cash protocol:
{% embed url="https://github.com/tornadocash/ui-minified" %}
* All about the TORN token:
{% embed url="https://github.com/tornadocash/torn-token" %}
* All about the anonymity mining program (this program has ended mid-December 2021):
{% embed url="https://github.com/tornadocash/tornado-anonymity-mining" %}
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)__

@ -1,8 +1,8 @@
# Anonymity mining # Anonymity Mining
Anonymity mining is an incentive to increase the level of privacy in any coin-joining or coin-mixing protocols by rewarding participants anonymity points (AP) dependent on how long they hedge their assets in a pool. Anonymity mining is an incentive to increase the level of privacy in any coin-joining or coin-mixing protocols by rewarding participants anonymity points (AP) dependent on how long they hedge their assets in a pool.
_This incentive began on December 18, 2020 and will end on December 18, 2021._ _Tornado Cash anonymity mining program began on December 18, 2020 and has ended on December 18, 2021._
Individuals deposit to any one of the anonymity pools that are supported (ETH, WBTC, DAI or cDAI) and are rewarded a fixed amount of AP per block, over the period their deposit remains in the pool. These points can then be exchanged for TORN once claimed. Individuals deposit to any one of the anonymity pools that are supported (ETH, WBTC, DAI or cDAI) and are rewarded a fixed amount of AP per block, over the period their deposit remains in the pool. These points can then be exchanged for TORN once claimed.
@ -16,17 +16,17 @@ One of the community members created the resource of [a mining spreadsheet 13](h
1\. Decide what amount and asset to deposit by selecting it through the dropdown menu, before clicking on "Connect" and "Deposit". 1\. Decide what amount and asset to deposit by selecting it through the dropdown menu, before clicking on "Connect" and "Deposit".
![](.gitbook/assets/m3fh0gl.png) ![](../.gitbook/assets/m3fh0gl.png)
2\. Take a record of your depositing note and back it up safely, **do not share this with anyone or risk losing your deposit and reward.** 2\. Take a record of your depositing note and back it up safely, **do not share this with anyone or risk losing your deposit and reward.**
![](.gitbook/assets/vhustru.png) ![](../.gitbook/assets/vhustru.png)
3\. Generate the proof and submit the transaction. 3\. Generate the proof and submit the transaction.
4\. Your deposit should now be viewable on the bottom of the page, you can track how much AP it earns here; remember the longer your deposit remains active, the more AP you earn. 4\. Your deposit should now be viewable on the bottom of the page, you can track how much AP it earns here; remember the longer your deposit remains active, the more AP you earn.
![](.gitbook/assets/k6juetp.png) ![](../.gitbook/assets/k6juetp.png)
_Notes that are active (not withdrawn) are known as “unspent” notes._ _Notes that are active (not withdrawn) are known as “unspent” notes._
@ -34,41 +34,41 @@ _Notes that are active (not withdrawn) are known as “unspent” notes._
1\. First you must create a mining account and store those credentials on-chain for easy recovery (requires a transaction), **like depositing notes, you should never share your mining recovery key with anyone** and ensure to back it up in a safe place. This feature is not supported by hardware wallets so its encouraged to store the information as presented_._ 1\. First you must create a mining account and store those credentials on-chain for easy recovery (requires a transaction), **like depositing notes, you should never share your mining recovery key with anyone** and ensure to back it up in a safe place. This feature is not supported by hardware wallets so its encouraged to store the information as presented_._
![](.gitbook/assets/lskzkgk.png) ![](../.gitbook/assets/lskzkgk.png)
2\. Take an active deposit through providing an unspent note and withdraw to an address of preference and decide whether to use a relayer or not (_to maintain a deposits anonymity it is always advised to use a relayer_), this will bring the note into a “spent” state. 2\. Take an active deposit through providing an unspent note and withdraw to an address of preference and decide whether to use a relayer or not (_to maintain a deposits anonymity it is always advised to use a relayer_), this will bring the note into a “spent” state.
![](.gitbook/assets/aid86cj.png) ![](../.gitbook/assets/aid86cj.png)
**Remember to still keep your depositing notes a secret even after withdrawing, as they still retain the ability to redeem AP.** **Remember to still keep your depositing notes a secret even after withdrawing, as they still retain the ability to redeem AP.**
![](.gitbook/assets/bpsqxxr.png) ![](../.gitbook/assets/bpsqxxr.png)
3\. Visit the mining route of the application and enter your spent note, you may be faced with one of the following situations. 3\. Visit the mining route of the application and enter your spent note, you may be faced with one of the following situations.
* **The ability to claim your spent note**: click the “Claim reward” button and submitting the transaction either by using a relayer or not, once confirmed your AP balance should update to reflect the action. * **The ability to claim your spent note**: click the “Claim reward” button and submitting the transaction either by using a relayer or not, once confirmed your AP balance should update to reflect the action.
![](.gitbook/assets/e9jyqhu.png) ![](../.gitbook/assets/e9jyqhu.png)
&#x20; &#x20;
* **The inability to claim a spent note:** _“Warning: The note is not yet ready for anonymity mining. You can wait few days before trying again”_ - This means the Merkle trees are out of sync and require a transaction to be updated. * **The inability to claim a spent note:** _“Warning: The note is not yet ready for anonymity mining. You can wait few days before trying again”_ - This means the Merkle trees are out of sync and require a transaction to be updated.
![](.gitbook/assets/i6qtr0f.png) ![](../.gitbook/assets/i6qtr0f.png)
Updating the trees can be an expensive process, **it is recommended that users with small deposits wait for the larger miners to update the trees, this could take anywhere from a few days to a week**. If you want to view your event relative to the current pending batches. Click the _“Show mining note information”_ hyperlink, here you can also pay the transaction fees to sync the tree relative to your withdrawal through the “Update trees” button. Updating the trees can be an expensive process, **it is recommended that users with small deposits wait for the larger miners to update the trees, this could take anywhere from a few days to a week**. If you want to view your event relative to the current pending batches. Click the _“Show mining note information”_ hyperlink, here you can also pay the transaction fees to sync the tree relative to your withdrawal through the “Update trees” button.
![](.gitbook/assets/d8dmxjj.png) ![](../.gitbook/assets/d8dmxjj.png)
### How to exchange AP ### How to exchange AP
1\. Navigate over to the “Swap” tab on the mining page which can be accessed through the second navigation bar from the top of the page. 1\. Navigate over to the “Swap” tab on the mining page which can be accessed through the second navigation bar from the top of the page.
![](.gitbook/assets/ahrjxbq.png) ![](../.gitbook/assets/ahrjxbq.png)
2\. Enter the amount of AP requested to exchange or select the “Maximum” option to convert your active balance. Below this input, information regarding the current AP/TORN rate and reward output will be displayed. Provide an address of preference to receive the reward, finalise by generating the proof and submitting the transaction through a relayer or not. 2\. Enter the amount of AP requested to exchange or select the “Maximum” option to convert your active balance. Below this input, information regarding the current AP/TORN rate and reward output will be displayed. Provide an address of preference to receive the reward, finalise by generating the proof and submitting the transaction through a relayer or not.
![](.gitbook/assets/wo55lao.png) ![](../.gitbook/assets/wo55lao.png)
3\. If all steps were followed correctly, TORN will be transferred to the address of preference provided in step 2 of this section. 3\. If all steps were followed correctly, TORN will be transferred to the address of preference provided in step 2 of this section.

@ -10,7 +10,7 @@ You can visit the Medium post related to this tool to learn more about its devel
Therefore, if you are ever in need to prove the origin of held assets withdrawn from one of Tornado.Cash pools, we invite you to use the following [Compliance Tool](https://app.tornado.cash/compliance/): Therefore, if you are ever in need to prove the origin of held assets withdrawn from one of Tornado.Cash pools, we invite you to use the following [Compliance Tool](https://app.tornado.cash/compliance/):
![https://app.tornado.cash/compliance/](.gitbook/assets/capture-de-cran-2021-09-02-a-14.57.11.png) ![https://app.tornado.cash/compliance/](../.gitbook/assets/capture-de-cran-2021-09-02-a-14.57.11.png)
## How To Use the Compliance Tool? ## How To Use the Compliance Tool?
@ -30,9 +30,9 @@ If the Note wasn't spent yet (i.e. assets have still not been withdrawn), the Co
The commitment is the hashed random area of bytes generated at each deposit that is sent to Tornado.Cash smart contract to characterize the transaction. The commitment is the hashed random area of bytes generated at each deposit that is sent to Tornado.Cash smart contract to characterize the transaction.
![https://app.tornado.cash/compliance/](.gitbook/assets/capture-de-cran-2021-09-02-a-15.07.01.png) ![https://app.tornado.cash/compliance/](../.gitbook/assets/capture-de-cran-2021-09-02-a-15.07.01.png)
_You can find more information about how Tornado.Cash achieve to provide privacy by reading _[_How does Tornado.Cash work?_](how-does-tornado.cash-work.md)__ _You can find more information about how Tornado.Cash achieve to provide privacy by reading_ [_How does Tornado.Cash work?_](../general/how-does-tornado.cash-work.md)__
### After Withdrawal ### After Withdrawal
@ -44,12 +44,12 @@ If the Note was spent (i.e. assets were withdrawn to a given address using the N
The nullifier hash is a public input that is sent on-chain to get checked with the smart contract & the Merkle tree data to allow the withdrawal. The nullifier hash is a public input that is sent on-chain to get checked with the smart contract & the Merkle tree data to allow the withdrawal.
![https://app.tornado.cash/compliance/](.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.23.png) ![https://app.tornado.cash/compliance/](../.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.23.png)
Therefore, the tool allows users to re-link source & destination addresses in order to prove transaction history for assets used on Tornado.Cash. Therefore, the tool allows users to re-link source & destination addresses in order to prove transaction history for assets used on Tornado.Cash.
This information can also be downloaded under a PDF format, making it is easier to get sent to any desired third part: This information can also be downloaded under a PDF format, making it is easier to get sent to any desired third part:
![https://app.tornado.cash/compliance/](.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.53.png) ![https://app.tornado.cash/compliance/](../.gitbook/assets/capture-de-cran-2021-09-02-a-15.12.53.png)
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)__ _Written by_ [_@ayefda_](https://torn.community/u/ayefda)__

@ -8,13 +8,13 @@ This tutorial is a step-by-step explanation of how to deposit & withdraw your fu
Tornado.cash is available on several blockchains, so you will have to choose among 4 chains: Tornado.cash is available on several blockchains, so you will have to choose among 4 chains:
![](.gitbook/assets/azpoj.gif) ![](../.gitbook/assets/azpoj.gif)
### Select a token ### Select a token
Choose the token you want to deposit and its amount: Choose the token you want to deposit and its amount:
![](.gitbook/assets/abdce.gif) ![](../.gitbook/assets/abdce.gif)
### Connect your wallet ### Connect your wallet
@ -24,7 +24,7 @@ Click on `Connect` and choose between wallet providers such as Metamask or Walle
Click on `Deposit` and store your note on a secure place before clicking on `I backed up the note`. You can also save encrypted notes on-chain by setting up a Note Account, by clicking on `Settings` (top-right corner). Click on `Deposit` and store your note on a secure place before clicking on `I backed up the note`. You can also save encrypted notes on-chain by setting up a Note Account, by clicking on `Settings` (top-right corner).
![](.gitbook/assets/aaaab.gif) ![](../.gitbook/assets/aaaab.gif)
### Be patient ### Be patient
@ -38,7 +38,7 @@ Congrats ! You did it. Now your tokens are on the Tornado.Cash pool.
Tornado.cash is available on several blockchains, so you will have to choose among 4 chains: Tornado.cash is available on several blockchains, so you will have to choose among 4 chains:
![](.gitbook/assets/enregistrement-de-le-cran-2021-08-25-a-16.15.15-1-.gif) ![](../.gitbook/assets/enregistrement-de-le-cran-2021-08-25-a-16.15.15-1-.gif)
### Paste your note ### Paste your note
@ -46,7 +46,7 @@ Use your deposit note by pasting it in the corresponding box. Click on `Withdraw
### Confirm the withdrawal ### Confirm the withdrawal
![](.gitbook/assets/abdaaaa.png) ![](../.gitbook/assets/abdaaaa.png)
Done ! Done !

@ -0,0 +1,73 @@
# Fund & Withdraw on Nova
Tornado Cash works by breaking the on-chain link between source & destination addresses. To do so, the protocol needs tokens to be deposited in a pool from one address, then to be withdrawn through another address.
This principle remains the same for Tornado Cash Nova. As for traditional fixed amount pools, these two actions are core to the efficiency of the tool:
* The “Funding” process,
* The “Withdrawing” process.
## Funding Process <a href="#funding-process" id="funding-process"></a>
The great novelty compared to traditional Tornado Cash pools is that **deposited amounts are no longer predefined.** Users can choose a customized amount within the capacity of their wallet balance.
Therefore, if you want to put 0.4 ETH in the pool, you can do it all at once rather than making four separate transactions with the traditional 0.1 ETH pool.
![](https://i.imgur.com/rqmzdgG.gif)
### How Does It Work? <a href="#how-does-it-work" id="how-does-it-work"></a>
#### **The First Deposit 💰**
* The first step is to log in Tornado Cash Nova through a Metamask account.
* Your account is not set yet (button `Set up account` available on the top right corner). To set up your account, you can either:
* **Click on `Set up account`**: your logged-in address will be registered to Nova without needing to deposit any tokens. This action will enable you to receive transfers or deposits within the pool from any another address.
* **Choose your logged-in address as a recepient address**: by depositing tokens into the pool, your account (with its shielded address & shielded key) will be automatically created. The deposited funds will come top up your shielded balance.
* **Choose another registered address:** tokens will be added to the shielded balance of the chosen recipient address. This recipient address needs to be a shielded address that was formerly registered to the pool.
When you log in, the `Recipient address` is filled by default with your logged-in address. You can change it depending on how you want to use the tool.
If you set a new account, you will be able to log into the pool later, check your Tornado shielded balance or receive shielded transfers by using either your shielded address or shielded key.
_All information about how to use these elements to log in or where to find your shielded key are available on_ [logging-in-tornado-cash-nova.md](logging-in-tornado-cash-nova.md "mention")_._
#### **The following deposits 💸**
The following deposits answer to the same rules that the first one, except that the account is already set.
By logging into the pool with your shielded address / key, you can deposit your chosen amounts to your chosen shielded address as you wish to.
⚠️ Since it is a beta version, deposits are currently limited to 1 ETH/transaction.\
However, if the community wishes to increase this limit, the 1 ETH cap amount can always be changed through a governance proposal.
## Withdrawing Process <a href="#withdrawing-process" id="withdrawing-process"></a>
![](https://i.imgur.com/qn9eJXS.gif)
To withdraw funds from the Nova pool, you can either:
* choose from a set of four predetermined amounts (0.1, 0.3, 0.5 & 1 ETH),
* choose a completely customized amount by going through the button `Set custom`.
### Custom Option For Withdrawal <a href="#custom-option-for-withdrawal" id="custom-option-for-withdrawal"></a>
**The custom option should only be chosen with full knowledge of the following facts and in complete confidence in your actions.**
To maintain your privacy, choosing one of the four suggested amounts is strongly recommended as it will allow your withdrawal to blend with the crowd.
Indeed, ddepending on the chosen amount, a connection might be deduced between your initial fund transaction and your withdrawal if:
* the initially funded amount & the withdrawn amount are exactly the same,
* the funded & withdrawn amounts can be easily linked through a sum.
_For instance, a deposit of 0.42 ETH can be linked to a withdrawal of exactly 0.42 ETH or two times 0.21 ETH, which might compromise anonymity. However, with a withdrawal of 0.391 ETH, privacy is better preserved as there is no obvious link between the 0.42 & 0.391 amounts._
### Transctions through Gnosis Chain (L2) <a href="#transctions-through-gnosis-chain-l2" id="transctions-through-gnosis-chain-l2"></a>
For cheaper transactions, Gnosis Chain (former xDAI Chain) is used as a Layer-2. To this end, a bridge is used between ETH from the Mainnet & WETH from Gnosis Chain.
Therefore, to prevent spam attacks that will overload the bridge, the withdrawal amount has to be larger than 0.05 ETH.
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)__

@ -0,0 +1,66 @@
# Logging In Tornado Cash Nova
Launched in December 2021, Tornado Cash Nova offers the freedom to choose customized amounts for transactions, as well as the ability to transfer tokens without leaving the anonymity pool. With such unique features, this new pool requires its own set of instructions.
Tornado Cash Nova (beta version) can be accessed through its own decentralized app at[ nova.tornadocash.eth.link](https://nova.tornadocash.eth.link).
![](https://i.imgur.com/F8pojDs.png)
First of all, welcome to Tornado Cash Nova pool & lets discover how this brand new tool functions 🌪
## Log In <a href="#log-in-nova" id="log-in-nova"></a>
![](https://i.imgur.com/uHPTk13.png)
You can log into your Tornado Cash Nova account either by:
* **connecting the MetaMask Wallet** with the address linked to your Nova account,
* **using the Shielded Key** that was generated alongside the creation of your account.
Each account is connected to a unique **shielded address** (as well as a unique **shielded key**) that can both be used to log in & manage your balance within the Nova pool.
### Tornado Cash Nova Account <a href="#tornado-cash-nova-account" id="tornado-cash-nova-account"></a>
Logging into the Nova pool will allow you to:
* **check your shielded balance** which represents the amount of tokens currently owned in the Nova pool,
* **fund your balance** with further tokens,
* **transfer the custody of tokens** to another shielded address registered to the pool,
* **withdraw any desired amount of tokens** through the destination address of your chosing.
Only those who have access to your Metamask wallet or to your Shielded key will be able to access these informations regarding your account (i.e. your shielded balance).\
⚠️ Be aware of which information you share with whom.
### MetaMask Wallet <a href="#metamask-wallet" id="metamask-wallet"></a>
Each Tornado Cash Nova account is linked to a shielded address. As mentionned above, users have two ways to access their account & its balance. One of these ways is **through a MetaMask wallet connected to the appropriate shielded address**.
![](https://i.imgur.com/idXaco8.png)
A shielded address is automatically created when users log in a given address, then deposit tokens to funs this address pool balance.
_More information about the Funding action is availaible on “Fund & Withdraw on Nova (put link)”_
However, shielded addresses can also be created from scratch as a separate action by logging in a new address with no prior link to Tornado Cash Nova, then by clicking on `Set up account`.
By confirming this action through your Metamask account, your shielded address will be crypted & created with the generation of a shielded key.
![](https://i.imgur.com/8q7DYeh.png)
Once the account set, you will be able to receive shielded transfers of tokens from any another address registered to the pool. You will also be able to fund, transfer & withdraw tokens as you wish.
### Shielded Key <a href="#shielded-key" id="shielded-key"></a>
As seen above, the other way to log in is **through the generated Shielded Key** that is created when an account is created through the set up of a new shielded address.
Once you are logged in with your address & your account is set up, you can download this shielded key at any time by accessing your account data (by clicking on your address, next to your shielded balance).
![](https://i.imgur.com/RFac1HU.png)
![](https://i.imgur.com/F2Scf8w.png)
To obtain full privacy, the same good practices that were recommended for traditional Tornado Cash pools are still required. _You can find guidelines to maintain privacy in the protocols documentation:_ [_Tips to remain anonymous_](../general/tips-to-remain-anonymous.md) _&_ [_More anonymity tips_](more-anonymity-tips.md)_._
__
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)__

@ -0,0 +1,46 @@
# More Anonymity Tips
For this section, we refer you to the [tips-to-remain-anonymous.md](../general/tips-to-remain-anonymous.md "mention") tutorial as a first step. All points mentioned in this tutorial still apply to Tornado Cash Nova.
As a quick reminder, these tips include:
* Using of a VPN,
* Not sharing the shielded key or the access to this shielded address
* If downloaded, keeping this shielded key in a safe place,
* Deleting data after use,
* Avoiding the use of the same API token for all transactions,
* Being patient between the moment of deposit & withdrawal,
* Using multiple addresses for withdrawal.
However, with its new features, Tornado Cash Nova requires further precautions to maintain anonymity.
## Use of Relayers <a href="#use-of-relayers" id="use-of-relayers"></a>
Gas fees payments are necessary for transactions. For shielded transfers & withdrawals, two payment methods are available to provide ETH for gas fee. You can either **connect your wallet or use a Relayer**.
Going through your wallet for this gas fee can compromise the anonymity of the transaction if used ETH are linkable to your identity. Therefore, **it is recommended to use a Relayer to preserve privacy**
![Tips1](https://i.imgur.com/PsZ89Ym.png)
## Choice of Withdrawal Amounts <a href="#choice-of-withdrawal-amounts" id="choice-of-withdrawal-amounts"></a>
The customized amounts feature offers more flexibility & freedom of usage. However, it can compromise your privacy if used carelessly.
### Choosing predefined amounts for withdrawals <a href="#choosing-predefined-amounts-for-withdrawals" id="choosing-predefined-amounts-for-withdrawals"></a>
![Tips2](https://i.imgur.com/dKYvNQT.png)
Choosing one of the four predefined amounts is strongly recommended as it will allow your withdrawal to blend with the crowd and remain anonymous.
You still have the freedom to `Set custom` to withdraw a customized amount of you choice. However, depending on the chosen amount, a connection might be deduced between your initial fund transaction and your withdrawal if:
* the initially funded amount & the withdrawn amount are exactly the same,
* the funded & withdrawn amounts can easily be linked through a sum.
For instance, a deposit of 0.42 ETH can be linked to a withdrawal of exactly 0.42 ETH or two times 0.21 ETH, which might compromise anonymity. However, with a withdrawal of 0.391 ETH, privacy is better preserved as there is no obvious link between the 0.42 & 0.391 amounts.
The custom option should only be chosen with full knowledge of these facts and in complete confidence in your actions.
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)__

@ -0,0 +1,17 @@
# Shielded Transfers on Nova
One of the specificity of Tornado Cash Nova is the introduction of shielded transfers. It allows shielded transactions of deposited tokens while staying within the pool.
So far, to transfer the custody of deposited funds, tokens needed to be withdrawn first. With Nova, you will be able to transfer a chosen amount of your shielded balance (not necessarily all of it) to another address without needing to withdraw them from the pool.
![](https://i.imgur.com/cf99tOn.gif)
These shielded transfers can be made to any address of your choice, as long as this address is shielded (i.e. already registered to Tornado Cash Nova pool).
As a reminder, a shielded address is registered either through the `Set up account` action or alongside an initial deposit from a wallet address.
We advise you to double-check the shielded address to which you transfer tokens as this action is irreversible.
_Written by_ [_@ayefda_](https://torn.community/u/ayefda)__