# Tornado Cli使用教程

By [Untitled](https://paragraph.com/@0x97c8fbf61452ee856f68d39e8a415481ecb233b5) · 2025-03-18

---

一、安装node环境

1.下载node.js执行器

[https://nodejs.org/en](https://nodejs.org/en)

![](https://storage.googleapis.com/papyrus_images/6c80c9a5bdcbcef2fc0211d34a6763b146b6efb1a6fa8efd280eb59372640576.png)

2.双击下载后的安装包，如下所示：

![](https://storage.googleapis.com/papyrus_images/4519f101d52aa647ba91cdfddbc08b0dfc9adbf7b0d926f52cc935d50f08b00b.png)

3.点击以上的 Next 按钮，将出现如下界面：

![](https://storage.googleapis.com/papyrus_images/e9a0edc74715c1378688f1ff56e5d2ad8519dee4d8f0c01c030c37b67e8e69c9.png)

4.勾选接受协议选项，点击 Next 按钮 :

![](https://storage.googleapis.com/papyrus_images/b6bb16b55376d99cf523ca6836cae1ac88a0d05841645bf019412851f90b4cae.png)

5.Node.js默认安装目录为 "C:\\Program Files\\nodejs\\" ( 你可以修改目录) 点击 Next 按钮：

![](https://storage.googleapis.com/papyrus_images/0ed1ecb61e0e0063457058f292003669aae79f3f096990d50609be8b53b16083.png)

6.点击 Install（安装） 开始安装 Node.js

![](https://storage.googleapis.com/papyrus_images/67f4934b7f298af6eafdd79065d9547d2eb3650bf4d623e37b0ca6ec4e4662aa.png)

7.点击 Finish完成安装

![](https://storage.googleapis.com/papyrus_images/00f2cd0f108ea30f9f6e85170f8a9f4402e8721b5ee3574f78624fd9758a5a18.png)

8.安装完成后，我们可以打开命令行检测是否安装成功。按下WIN+R，在弹出的运行框中输入cmd并确定打开命令行工具

![](https://storage.googleapis.com/papyrus_images/a5dc351dfcca13af6e7c297768c183cb8896096642bfbb5f5c9b34dfc65d0c64.png)

在命令行里输入 node -v并按回车，输出v加版本号即为安装成功

![](https://storage.googleapis.com/papyrus_images/618e0f818763944ab8eb50b4b393034560451e02bd6885b6b8e7f09d4f2093c9.png)

二、下载Tornado Cli

1.进入github代码库下载Cli 源码

[https://git.tornado.ws/tornadocash/tornado-cli](https://git.tornado.ws/tornadocash/tornado-cli)

![](https://storage.googleapis.com/papyrus_images/6120ffc71e0fde6dc57977e6f40d96f9b0a19f5b258c57cced07fe0d9d1cf2d7.png)

2.下载压缩包之后，解压到文件夹中(建议在C盘创建一个名为Tronado的新目录，解压到新目录方便管理)解压之后得到一个tornado-cli的文件夹

![](https://storage.googleapis.com/papyrus_images/d55aa4ac34bd4b3b8294fb2affb0d4b6afb7b76a17f8d9f70c35202ad6e9feb8.png)

![](https://storage.googleapis.com/papyrus_images/5a33206273c1133529e17a838ea551047a09338bac48d25626b3b3983f243dc9.png)

#### **三、安装tornado-cli依赖代码库**

1.进入刚才解压得到的tornado-cli文件夹，在文件搜索栏中输入cmd，进入命令行工具

![](https://storage.googleapis.com/papyrus_images/af26a9e63a80c6d792944aee577e615bc9a9426669b2dd01aa05056b59b42cc2.png)

![](https://storage.googleapis.com/papyrus_images/86c996e31d2f4b65280e5fa284204202d783505beece6a4248ea392a62c31331.png)

2.输入 npm install 并回车，执行依赖下载

![](https://storage.googleapis.com/papyrus_images/1f48ae19f276c08ef17dfcd0d32f7c3abb70dd71d727006db694d37d7257106d.png)

![出现这个即为下载成功](https://storage.googleapis.com/papyrus_images/eeae15544d7c7f489d96ce32ca85cdb8efa7b2131e775db74474905d110c420b.png)

出现这个即为下载成功

四、使用Cli存取款

**存款**命令格式：（**以BSC网络为例**）

node cli.js deposit --rpc --tor --private-key ❤️**尖括号各表示：** ：币种，如：eth、bnb：金额，如：0.1、1、10、100：rpc地址，如：[https://bscrpc.com/](https://bscrpc.com/) (只是举例)：代理端口号，如：9150，可选项，没使用代理的直接去掉这个参数 ：钱包私钥，没0x开头 举例：存0.1 bnb（❤️**以太坊只要把bnb改成eth，金额0.1、1、10、100四种，rpc也改成以太坊的rpc**） node cli.js deposit bnb 0.1 --rpc [https://1rpc.io/](https://1rpc.io/)xxxxxxx --private-key 填上你的钱包私钥 上面rpc链接只是举个例子，你们要换成可用的rpc，可以这里免费注册[https://blockpi.io/](https://blockpi.io/) 或者 [https://meganode.nodereal.io/](https://meganode.nodereal.io/) **如有使用socks5代理，就在命令行最后加上--tor 代理端口号** 存款 最后输入Y回车就完成了，Your note: 后面那串就是存款凭证，同时也会在tornado-cli目录保存一份凭证文件。 ❗️❗️**如果报错，就重复执行命令，或者更换rpc！！！** **取款**命令格式：（**以BSC网络为例**） node cli.js withdraw --rpc --relayer --tor ❤️**尖括号各表示：** ：存款凭证，如：tornado-bnb-0.1-56-0x1111111111111 ：收款钱包地址，如：0x176F3DAb24a159341c0509bB36B833E7fdd0a132 ：rpc地址，如：[https://bscrpc.com/](https://bscrpc.com/) ：中继器地址，如：[https://bsc.gm777.xyz/](https://bsc.gm777.xyz/) ：代理端口号，如：9150，可选项，没使用代理的直接去掉这个参数 举例：取0.1 bnb（❤️**以太坊只要把rpc改成以太坊的rpc，中继器也改成以太坊中继器如：**[**https://main.gm777.xyz/**](https://main.gm777.xyz/)） node cli.js withdraw tornado-bnb-0.1-56-0x1111111111111 收款钱包地址 --rpc [https://1rpc.io/](https://1rpc.io/)xxxxxxx --relayer [https://bsc.gm777.xyz/](https://bsc.gm777.xyz/) 上面rpc链接只是举个例子，你们要换成可用的rpc，可以这里免费注册[https://blockpi.io/](https://blockpi.io/) 或者 [https://meganode.nodereal.io/](https://meganode.nodereal.io/) **如有使用socks5代理，就在命令行最后加上--tor 代理端口号** 取款（正在同步存款事件） 执行取款命令，会先同步历史存款事件日志，直到最新区块（❗️❗️**需要花一会儿时间，耐心等待**） 你也可以先使用同步历史存款事件命令，先同步完成后，再使用取款命令，同步命令（以BSC的100 bnb、10 bnb为例，不同金额都需单独同步）： node cli.js syncEvents deposit bnb 100 --rpc [https://bscrpc.com](https://bscrpc.com/) node cli.js syncEvents deposit bnb 10 --rpc [https://bscrpc.com](https://bscrpc.com/) **❤️注：以太坊同步命令，只需把命令中的bnb替换成eth，rpc换成以太坊rpc即可。** **❤️同步的数据会以json文件存储在“ tornado-cli/cache/各个链独立文件夹/ ”下面，这些json同步数据文件，也可以拿别人同步好的覆盖你本地的，这样你就省得花时间同步了。** 获取存款事件完成后，会出现“计算存款事件默克尔树和根”提示： Computing deposit events merkle tree and its root （❗️❗️**计算快慢根据自己的电脑CPU性能，需要花一会儿时间，耐心等待**） 计算完成后出现：Confirm the transaction \[Y/n\] ，输入Y回车就取好了。 ❗️❗️**如果报错，就重复执行命令，或者更换rpc！！！** **🚨常见错误：** **1、request time out 或 connecttion error** 请求超时，一般是指连接rpc超时，可能原因：网络问题，也有可能是频繁请求rpc，rpc频率限制。这时可以多注册些rpc替换使用。推荐几个rpc注册网站： [https://blockpi.io/](https://blockpi.io/) [https://1rpc.io/](https://1rpc.io/) [https://meganode.nodereal.io/](https://meganode.nodereal.io/) [https://getblock.io/](https://getblock.io/) **2、Contract address not allowed 或 sender or received is sanctioned** 这错误指rpc限制与tornado智能合约交互，只能换其它rpc。 **3、Merkle tree is corrupted** 默克尔树损坏：这一般是更新历史存款事件到本地时，漏更新了某个区块，这种情况只能还原本地更新文件，重新更新。 操作方法：（以取款1 bnb为例） 1 bnb更新历史存款事件文件，是在tornado-cli工具以下目录， tornado-cli\\cache\\binancesmartchain\\deposits\_bnb\_1.json 不同金额都有单独的文件，如：deposits\_bnb\_0.1.json、deposits\_bnb\_10.json 只需从tornado-cli-master.zip源码包里找到该文件覆盖掉本地这个文件就可以了，然后重新更新。 **4、block not found xxxxxxxx(区块号) 或 Querying latest events from RPC xxxxxxxx(区块号) failed fetching deposit events from node** 是指更新历史存款事件时出的错，这种情况也只能换其它rpc。 **5、The note is already spent** 表示存款凭证已经取款过了 **6、The deposit is not found in the tree** 表示找不到存款记录。一般有2种原因，一跟上面第3错误问题Merkle tree is corrupted一样，存款事件记录没更新完全导致；二就是存款凭证不对。

---

*Originally published on [Untitled](https://paragraph.com/@0x97c8fbf61452ee856f68d39e8a415481ecb233b5/tornado-cli)*
