Proposal #39: Project expenses reimbursement

General information

A few weeks ago (November 4th to be exact) the second quarter of my work in Tornado Cash, paid in accordance with proposal #28, ended. The current proposal is being posted with a delay, because I’ve not been able to work on the computer since the beginning of November due to medical problems; and due to the situation stated above and some other personal and professional reasons, I cannot continue to actively work in Tornado, since the end of the second quarter I’m no longer an official developer of Tornado Cash.

However, although this information was shared to the users in many possible ways immediately after the end of the second quarter, in the intervening time the DAO hasn’t found a suitable and trusted candidate for position of the main project developer, to whom I could transfer management of the entire current infrastructure and now it is supported by me. This cannot continue for long due to my expenses, since previously $6,000 per quarter ($2,000 per month) was allocated to ensure the operation of all services (and other additional expenses).

I propose that the DAO reimburse costs of maintaining current infrastructure for one year in advance (until the end of November 2024). Of course, even if the proposal wont accepted, I’ll still maintain main site and Nova at my own expense until a new official developer is appointed, but everything else will have to be turned off.

Current monthly expenses

  1. Fast & uncesored RPC for almost all Tornado chains (except Avalanche) - 1 000$;
  2. Main server (with all sites, git and so on) - 150$;
  3. Server for third-party services (AMB explorer, gas station for oracles, some specific API endpoints for CoinMarketCap and CoinGecko, WalletConnect V1 bridge, several bots for Telegram chat administration and providing users with up-to-date information about the token price, and so on) - 100$;
  4. Matrix server - 50$;
  5. Server for IPFS node - all Tornado IPFS content is stored on it and peered from it in case centralized services delete it, and they delete it regularly - $60 (by the way, I remind everyone that you can help with IPFS peering of the latest version of Tornado source code, if you have free space on your Linux server);
  6. Server for subgraph node (used in Tornado services for quick access to events, hundreds of times faster than fetching via RPC);
  7. Two servers from different hosters for storing backups of key Tornado services - $70 each;
  8. Server for forum - 30$;
  9. Separate anti-ddos system, since Cloudflare (at the standard free rate) couldn’t protect sites from the attack in early November (because of it, git was destroyed and subsequently restored from the backup server) - $50.

There was also a separate server with Avalanche-C RPC, the payment for which was about $200 per month, however, since almost no one uses this network, I decided to disable it and add public RPC on the site. If necessary, I am ready to deploy it again.

The total amount of mandatory monthly expenses (without Avalanche RPC server) is ~1 650$ (of course, this is subject to slight rounding - some servers are paid in rubles, some in euros, and the price in dollars is affected by the current exchange rate, and almost all are located with different hosters and in different locations - it is impossible to calculate exact amount down to the cent). For one year, I am ready to support and restore in case of problems (within reasonable limits) the current infrastructure without any additional payments for my services.


DAO allocates 6467 TORN for the project infrastructure expenses for the next year.
The exact amount is calculated via script using the average price of a token on Binance over the past week, and a certain percentage is added to the amount to compensate for possible price changes during voting week and commissions when exchanging for stablecoins. When I received my salary in previous quarters, I took on these costs myself, but now all the funds will go directly to pay for the project infrastructure, and I’m not ready to pay extra out of my own (and the difference could be thousands of dollars). Of course, if TORN price increases during the voting time, all the tokens remaining after swap will be returned to Governance.

Verified contract code: 0x585a4f4e377BA553ed2631626eA203DfbFEe37a5

Proposal will be posted today evening.

P.S. Thanks to the community for interesting challenges and tasks during this half of the year and good luck! You always can reach me on Matrix -


Sites, third-party services and forum will shut down, and default uncesored RPCs also.


I took a look, and the most significant cost is from the RPC node usage. I don’t think it’s necessary to build our own RPC nodes. When users initiate a deposit operation on the frontend page, disallowed RPCs won’t allow requests.

Currently, most people configure according to, for instance, Metamask wallet, where they set the network and attempt to verify through chainList.

For example, I am on the ETH chain, and I use the node. I think we would need just three servers:

Main server: All sites, Git, forums, documentation, IPFS, etc., hosted on one server.
Third-party server: Some script programs, Telegram bots, etc.
Backup server: Used for data backup (for both the main server and third-party server data, to prevent loss).
A dedicated anti-DDoS system, utilizing Cloudflare’s proxy mode, in case of any potential attacks. I am unsure about the potential threats we might face.

I don’t think we should set up RPC nodes ourselves. If certain networks are unavailable, we should strive to find third-party services wherever possible. For instance, in the case of BSC network, it requires extensive storage. Setting up a node solely for retrieving node data seems unnecessary to me.

Proposal #39 was successfully executed.
Received TORN was swapped to DAI immediately after execution, but because of significant price drop due to delisting from Binance, the amount received in stablecoins turned out to be significantly less than expected, and the expenses, of course, didn’t changed.
The amount received will be enough for a little more than six months (10628/1650 = 6.44), after the expiration of this period I’ll request next reimbursement.