<p>The following governance rules apply to all Tornado Cash pools (including Tornado Cash Nova).</p>
<h3 id="how-to-suggest-a-proposal">How to suggest a proposal ?</h3>
<p>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.</p>
<p>To create a proposal, a user needs to have at least <code>1,000 TORN</code>. All proposals must be smart contracts with verified code that are executed from the <a href="https://etherscan.io/address/0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce" target="_blank" rel="noopener noreferrer">governance contract </a>(using <code>delegatecall</code>). This way, it’s easy to audit and test any governance changes.</p>
<p>The voting period for a proposal is 5 days. A proposal will succeed if it receives a simple majority of votes and there are at least <code>25,000 TORN</code> total votes (if turnout is too low, the proposal automatically fails).</p>
<p>After a proposal succeeds, it is subject for a timelock of 2 days. After the timelock, any user is able to execute the proposal (which initiates the changes). If proposal is not executed for 3 days after that, it is considered <em>expired</em> and can no longer be executed.</p>
<p>All of these initial parameters are relatively small, since there won’t be many TORN tokens in circulation early on. But as the circulating supply increases, governance may adjust these thresholds.</p>
<p>A proposal can be of the following nature:</p>
<ul><li>Adding a new Tornado Cash pool in the proxy</li><li>Changing the AP reward rates parameters</li><li>Unpause/Pause the TORN token</li><li>Change some core mining contracts such as the <code>TornadoTrees</code> contract</li><li>A combination of all of the above</li></ul>
<p>And many more can be done. To find out exactly what can be changed through governance in the protocol, look for the functions with the modifier <code>onlyGovernance</code> in the smart contracts.</p>
<p>The governance functions are represented by a red arrow in <a href="https://viewer.diagrams.net/index.html?highlight=0000ff\&amp;edit=_blank\&amp;layers=1\&amp;nav=1\&amp;title=tornado-cash-contract-overview.drawio#Uhttps%3A%2F%2Fraw.githubusercontent.com%2FRezan-vm%2Ftornado-cash-edu%2Fmain%2Ftornado-cash-contract-overview.drawio" target="_blank" rel="noopener noreferrer">this architecture diagram.</a>​</p>
<p>NOTE: Parts of this article was taken from <a href="https://tornado-cash.medium.com/tornado-cash-governance-proposal-a55c5c7d0703" target="_blank" rel="noopener noreferrer">this medium post.</a> Credits goes to the Tornado cash team.</p>
<h3 id="how-to-vote">How to vote ?</h3>
<p>You first need to deposit (or lock) TORN tokens into the governance contract.</p>
<p>Go to: <a href="https://app.tornado.cash/governance" target="_blank" rel="noopener noreferrer">app.tornado.cash/governance</a>​</p>
<p>Click <code>Manage</code> -&gt; <code>Lock Tab</code></p>
<p>Approve the governance contract to transfer your TORN tokens by clicking on the <code>Approve</code> button. Once the approve is confirmed, chose the amount you want to deposit and click <code>Lock</code>. Confirm the transaction in your wallet and wait for the confirmation.</p>
<figure><img src="/uploads/imported-208ec937ac45823c44fcbd15.png" alt="" loading="lazy"><figcaption>Torn Lock</figcaption></figure>
<p>Before the vote, the next crucial step is to review the proposal.&amp;#x20;</p>
<p>Legitimate proposals should have a dedicated post on <a href="https://torn.community/" target="_blank" rel="noopener noreferrer">Torn.community </a>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.</p>
<p>Once a proposal was submitted it should appear on: <a href="https://app.tornado.cash/governance" target="_blank" rel="noopener noreferrer">app.tornado.cash/governance</a></p>
<p>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:</p>
<figure><img src="/uploads/imported-4bdc116ce6969c0a804afbef.png" alt="" loading="lazy"><figcaption>Proposal Address</figcaption></figure>
<p>Look for the contract address on Etherscan and make sure that the source code is verified and readable.</p>
<figure><img src="/uploads/imported-de5350db8b1eee34a779d955.png" alt="" loading="lazy"><figcaption>Contract address</figcaption></figure>
<p>Read the source code and make sure that it matches what is described in the forum post.</p>
<p>If you are not technical or not comfortable to read Solidity code, get someone you trust to review the contract for you.</p>
<p>If you agree (or disagree) with the proposal code, it time to vote!</p>
<p>A proposal have a voting windows of 5 days. This means that we have 5 days to reach the vote quorum of 25k TORN.</p>
<p>Important: Once you voted, your tokens will be locked for 8.25 days from the moment the proposal was submitted (the start of the 5 days voting period). After the 8.25 you can withdraw your tokens from the governance contract. Note that you can vote on 2 proposal at the same time without incurring additional lockup period (Only the most recently submitted proposal will matter for the 8.25 lockup).</p>
<p>To vote, simply click on the Green check mark or the the red cross depending whether you accept or reject the proposal. Confirm the transaction with Metamask and your vote is in!</p>
<h3 id="how-to-delegate-the-vote">How to delegate the vote ?</h3>
<p>If you are a TORN token holder, you can delegate your voting power to someone else without having to send him the tokens.</p>
<p><b>IMPORTANT:</b> If you delegate your tokens and that your delegate votes or initiate a proposal, your tokens will be locked for 8.25 days from the moment the proposal that the delegate voted on started. Note that that you can always undelegate at any time.</p>
<p>To achieve delegation, go to: <a href="https://app.tornado.cash/governance" target="_blank" rel="noopener noreferrer">app.tornado.cash/governance</a>​</p>
<p>You first need to lock your tokens in the governance contract.&nbsp;</p><p>Click <strong><code>Manage</code></strong> -&gt; <strong><code>Lock</code></strong> tab</p>
<p>Approve the governance contract to transfer your TORN tokens by clicking on the <strong><code>Approve</code></strong> button. Once the approve is confirmed, chose the amount you want to delegate and click <strong><code>Lock</code></strong>.&nbsp;</p><p>Confirm the transaction in your wallet and wait for the confirmation.</p>
<figure><img src="/uploads/imported-208ec937ac45823c44fcbd15.png" alt="" loading="lazy"><figcaption>Lock Approve</figcaption></figure>
<p>The last step, is to make the actual delegation. Go again to <a href="https://app.tornado.cash/governance" target="_blank" rel="noopener noreferrer">app.tornado.cash/governance</a>​</p>
<p>Click <strong><code>Manage</code></strong> -&gt; <strong><code>Delegate</code></strong> tab</p>
<p>Fill-in the address to which you want to delegate and click <strong><code>Delegate</code></strong>. Approve the transaction in your wallet and wait for confirmation.</p>
<figure><img src="/uploads/imported-09bc00452b213341170760f5.png" alt="" loading="lazy"><figcaption>Delegate</figcaption></figure>
<p>The totality of your locked balance will be delegated.</p>
<p>You can undelegate at anytime. To undelegate simply use the <code>Undelegate</code> Button in <code>Manage</code> -&gt; <code>Undelegate</code> Tab.</p>
