Fastest Tornado Cash Withdrawal UI built with Bootstrap and jQuery https://tornadowithdraw-eth.ipns.dweb.link https://tornadowithdraw.com
Go to file
2025-01-03 07:09:38 +00:00
scripts 2.0.0 2024-12-24 00:09:51 +00:00
static Remove invalid events 2025-01-03 07:09:38 +00:00
.gitignore Support deposits and governance 2024-11-10 21:02:02 +00:00
Dockerfile Update Dockerfile 2024-12-24 00:22:07 +00:00
eslint.config.mjs 2.0.0 2024-12-24 00:09:51 +00:00
index.html 2.0.0 2024-12-24 00:09:51 +00:00
LICENSE 2.0.0 2024-12-24 00:09:51 +00:00
offline.html 2.0.0 2024-12-24 00:09:51 +00:00
package.json 2.0.0 2024-12-24 00:09:51 +00:00
README.md 2.0.0 2024-12-24 00:09:51 +00:00
tsconfig.json 2.0.0 2024-12-24 00:09:51 +00:00
yarn.lock 2.0.0 2024-12-24 00:09:51 +00:00

Tornado Withdraw

Fastest Tornado Cash Withdrawal UI built with Bootstrap and jQuery

Version 1: https://1.tornadowithdraw.eth.limo (Now immutable!)

Working version (Version 2 soon): https://tornadowithdraw.eth.limo

Version 2 Roadmap

Version 2 of the UI aims to fix more bugs and stabilize the codebase with basic unit tests

Following list is written with the feedback from devs and users, so please don't hesitate to make any advice!

  • tornado-scripts migration to github

  • Using smaller circomlibjs

  • Using latest ffjavascript and eslint

  • Faster Relayer Registry contract deployed on Mainnet ( Contains relayers from DAO and secondary list which should be cheaper to register - should also replace the relayers.json or relayer fetching events )

  • Dynamic RPC registry contract deployed on Mainnet ( concat list from default config and registry contract which should allow old UIs to use the latest RPC list in a decentralized manner )

  • Replace fetchData function on tornado-scripts to FetchRequest object from ethers.js

  • Complete basic unit tests and dev docs for tornado-scripts library

  • More friendly dev docs for overall repositories including this one and relayer, cli, tornado-scripts

  • ESM & Viem migration, maybe for version 3 since it will change the codebase again

What is this?

This is a Withdrawal only UI for Tornado Cash Pools built upon tornado-scripts package that enables you to interact with Tovarish Relayer which provides historic events API as a replacement of deprecated The Graph Subgraph endpoints.

The UI is built with the simple technical stack of Bootstrap 5 and jQuery and it is based on the modern browser API like WebAssembly, BigInt, and WebCrypto and thus this UI wouldn't work on older browsers like IE (Or any older browser that has been released before 2020).

You can run this UI from a single index.html file or the standalone web server that could be spawned by yarn dev command (which should open the page on http://localhost:8080/).

As long as the index.html refers to the correct libraries with correct hash values, this UI can be considered uncontaminated.

Disclaimer

This UI is built with the mindset of transparency, and simplicity. The UI has used the least required libraries ( tornado-scripts, ethers.js, bootstrap, jquery, circomlibjs ) to make the withdrawal from Tornado Cash deposit pools happen. Auditing index.html and tornado-scripts library will be enough to guarantee the functionality of the UI working correctly.

Currently, this UI should be considered as an early alpha phase and will fix or add the functionality if required. This UI has not been audited by any trusted party so before using this UI you must understand how it works, and most of all you must use this UI under your liabilities of yours including technical and legal perspectives.

This UI is built with the mindset of free speech and asset recoverability of deposited assets under Tornado Cash pools. By using this tool you must comply with local regulations and the author or dev of this tool holds no responsibility of your financial assets as you aren't interacting with us but the world computer called Ethereum.

How to use

Simply open index.html or start yarn dev if you have Node.js and yarn installed locally.

How to Audit

This UI is designed with a focus on transparency which prevents any possible malicious code from being injected on the UI ( and it also prevents from scam sites from popping up. ).

You can audit components by

tornado-scripts

Clone the tornado-scripts repository from git and run yarn && yarn build command to make sure webpack produces the same result ( if the umd file has some manually added codes running yarn build will remove the edited line ).

This UI

Simply clone this repository and run yarn && yarn update. You can audit the script ./scripts/update.ts which would fetch the latest built tornado-scripts from the repository and generate the digest hash of files under the ./static directory ( can be checked on ./static/hashes.json file ).

The hash values are included on index.html file which compares the fetched files either from remote CDN (jsdelivr) or from ./static path. This ensures that if you have the correct index.html file any remote or local resources fetched will be audited by your local browser.

Static files

Bootstrap CSS files and tornado-scripts files are directly fetched from the respective npm repository. tornado.json.zip and tornadoProvingKey.json.zip file are fetched from the last commit of tornado-classic-ui repository.

Event files are irregularly updated by tornado-cli with 6~12 months timespan.