# 旋风协议

{% hint style="success" %}
这个文档由旋风协议社区共同开发和维护。
{% endhint %}

![](/files/-MOs6YW1FPgMGoRLqBqc)

众所周知，用户在链上的交易历史和账户余额都是公开透明的 - 只要获取到你的交易地址，任何人都能在Etherscan等区块浏览器中**轻易查询到你的资产持有量、交易记录、资金来源等**，甚至可以通过这些数据分析你的链上活动！

如果你不希望你的个人资产与交易行为如此赤裸裸地展现给所有人，或者希望能有一种保护用户隐私的匿名交易方式，那么该如何实现呢？

![](/files/-MQbnwAv4nFeXA61dxU7)

**旋风协议是一款具有支持多链、非托管性、以隐私为中心等特点的协议，支持跨链DeFi的隐私层功能。通过非交互式简洁零知识证明（zkSNARKs），旋风协议可以完全打破存款地址和取款地址之间的链上链接，以此为所有的DeFi组件实现保护交易隐私。**&#x4EA4;易中，旋风协议使用智能合约来接收货币/通证存款，而在提取存款时，用户能够通过其他地址从该合约中进行提取。由于双方地址之间无互关性，因此，从旋风协议提取资产时，不存在任何一种方式可以将该交易关系联系起来，从而获得绝对的交易隐私。

旋风协议的零知识证明（zkSNARKs）是基于经过业界审计的[tornado.cash](https://tornado.cash/)实现的，与众不同的是旋风协议**具有强大的跨链能力**，这促使它成为**所有具有DeFi组件的产品的通用隐私保护层**，并由CYC持有者**实现去中心化治理**。

跨链

旋风协议率先在IoTeX公链上线 — [IoTeX](https://iotex.io/)是当前最具有先进性的去中心化、高速、支持跨链并与以太坊虚拟机兼容的区块链，并且拥有健康且活跃的全球社区。根据[https://cyclone.xyz/stats](https://cyclone.xyz/analytics)提供的数据显示，由于匿名性挖矿与流动性挖矿很好地激励了用户对匿名池的贡献，在第一阶段启动的四个匿名池在**短短几天之内就获得了300万美元的总锁仓量**。

**旋风协议旨在2021年Q1/Q2季度在以太坊、币安智能链（**[**BSC**](https://www.binance.org/en/smartChain)**）和其他以太坊虚拟机兼容的公链上，启动数个不同资产种类的匿名池。**&#x540C;时，我们也规划2021年Q3季度，在波卡和其他非以太坊虚拟机公链上启动旋风协议。**CYC将成为所有使用“旋风协议”的项目的统一通证。**

## **去中心化自治**

旋风协议实施去中心化的自治模式。**IoTeX区块链上已经有分布式自治组织（DAO），而不同链上的每个匿名池都可以通过跨链桥**（例如[ioTube](http://tube.iotex.io/)），**连接到IoTeX上，从而实现旋风协议的自治模式**。预计DAO治理将在2021年Q2季度初步启动。‌

CYC持有者们有权享有以下权利：

* 选举旋风协议接下来将登陆哪个区块链
* 启动具有特定资产的新匿名池
* 更新现有匿名池的参数 ，例如：CYC每日开采量
* 启动新的流动性挖矿
* 更新现有流动性挖矿的参数 ，例如：CYC每日开采量
* 开发CYC的其他通证经济学

## 具有收益汇集功能的DeFi通用隐私保护层

旋风协议不仅仅只是通证混合器。旋风协议是**世界上第一个实现跨链匿名机枪池，并且为所有DeFi产品提供通用隐私保护层服务的去中心化协议。**——它的开发定位是成为各种区块链上所有DeFi组件的通用隐私保护层，**使所有用户都能够参与CYC的匿名/流动性挖矿，并从底层DeFi组件中获取收益。**


# 如何工作

### zkSNARKs——保护交易的隐私性

![](https://github.com/tornadocash/tornado-core/raw/master/docs/diagram.png)

旋风协议的原理非常直观——用户将加密货币资产放入匿名资产池中，等上一段时间后，再从该池中提取资产到这个用户的一个全新地址。一存一取的操作完全打破了存款地址和取款地址之间的链上链接，为用户提供匿名性和隐私。

具体的讲，资产在放入匿名资产池后将向用户生成一个证明字符串，相对应的哈希值（称为存证）将连同用户存款金额发送至旋风协议的智能合约。智能合约收到这笔存款后将把存证添加至存款用户的存款清单中。需要提取时，通过提供相应的证明字符串，用户就能在智能合约中的账户存款清单内进行提款操作。通过zkSNARKs（非交互式简洁零知识证明）技术，实现了在此交易过程中无需透露交易详情与确切存款；智能合约通过验证用户提供的证明，将把账户内资金转移至指定的提款地址。这一过程任何一个外部人员都无法查看，也无法了解此提款的来源处。

如需更深入地了解技术细节，请参阅[相关论文](https://tornado.cash/Tornado_cryptographic_review.pdf)。

### 可信启动

我们及其重视“安全性”与“隐私性”，并致力于高标准、高安全性地启动旋风协议。整个项目的智能合约部分是完全开源，欢迎同行审阅。旋风协议的zkSNARKs部分已得到广泛审计。 此外，我们直接使用了tornado.cash的可信启动部分，因为其已经在[以太坊上稳定运行](https://medium.com/@tornado.cash/the-biggest-trusted-setup-ceremony-in-the-world-3c6ab9c8fffa#43d9)将近一年。


# 匿名池

{% hint style="success" %}
本页列出了目前为止旋风协议所有已启动的匿名池。**新池的开放将通过投票进行。**
{% endhint %}

## 几何池 <a href="#robots-pools" id="robots-pools"></a>

几何池已在Polygon链上启动！用户可以在其中参与流动性挖矿（LM）和匿名性挖矿2.0（AMv2）。每日会有20个CYC作为CYC-MATIC交易组合的流动性挖矿产出。

![](/files/-MfRhAiGuPNQsqPqqt1x)

| **池** |    **存款面额**   | **存款类型** | **周期** | AMv2每日铸造CYC |   **上线时间**  |
| :---: | :-----------: | :------: | :----: | :---------: | :---------: |
|  五角星  | `1,000` MATIC |    代币    | `90` 天 |    `0.06`   | `2021/7/27` |
|  六边形  |  `1,000` USDC | ERC20 通证 | `90` 天 |    `0.03`   | `2021/7/27` |
|  八角形  |   `2`  QUICK  | ERC20 通证 | `90` 天 |    `0.03`   | `2021/7/27` |

**对于ERC20通证的匿名池，在存款时会将 2 MATIC**（称为“代币面额”）作为之后操作的GAS费用，**与资产一同存入池中，在之后取款时，会全额退还至提款地址。**&#x8FD9;将方便用户在提款地址（通常是新地址）中进一步对ERC20资产进行操作。

## 饼干池 <a href="#robots-pools" id="robots-pools"></a>

饼干池已取代深海池(停用)与早鸟池(停用)，在IoTeX艾坦星链上启动！用户可以在其中参与流动性挖矿（LM）和匿名性挖矿2.0（AMv2）。每日会有20个CYC作为CYC-BNB交易组合的流动性挖矿产出。

![](/files/-M_PxQVvtbHVV9fuEs7h)

| **池** |                **存款面额**                | **存款类型** | **周期** | AMv2每日铸造CYC |  **上线时间**  | **池续约时间**   |
| :---: | :------------------------------------: | :------: | :----: | :---------: | :--------: | ----------- |
|   松饼  | <p><code>50,000</code> </p><p>IOTX</p> |    代币    | `90` 天 |    `0.2`    | `2021/5/9` | `2021/8/12` |
|   曲奇  |              `500,000`IOTX             |    代币    | `90` 天 |     `1`     | `2021/5/9` | `2021/8/12` |
|   姜饼  |            `2,000,000`  VITA           | XRC20 通证 | `90` 天 |    `0.05`   | `2021/5/9` | `2021/8/12` |

对于XRC20代币的匿名池，用户会将100 IOTX（称为“代币面额”）随资产一起存入池中，并将其**全额退还至取款地址**，作为以后操作的燃油费。这是一项方便的功能，允许用户在提款地址（通常是新地址）中进一步移动其XRC20资产。

## 机器人池 <a href="#robots-pools" id="robots-pools"></a>

机器人池已在币安智能链上启动！用户可以在其中参与流动性挖矿（LM）和匿名性挖矿2.0（AMv2）。每日会有20个CYC作为CYC-BNB交易组合的流动性挖矿产出。

![](https://gblobscdn.gitbook.com/assets%2F-MNeAQGL5skC11vu82Sy%2F-MUz0pSkrh-c74Ju91gi%2F-MUz1BvKVFVaZ94o2FGB%2Fimage.png?alt=media\&token=ec55a68e-5e0b-4aa4-a1ea-96af9c3a07a3)

|  **池** |    **存款面额**    | **存款类型** | **周期** | <p>AMv2每日<br>铸造CYC</p> | **上线时间**    |  **池续约时间**  |
| :----: | :------------: | :------: | ------ | ---------------------- | ----------- | :---------: |
|  C3PO  |    `100` BNB   |    代币    | `90` 天 | `3`                    | `2021/3/17` | `2021/9/24` |
|  R2D2  |  `10,000` BUSD | BEP20 通证 | `90` 天 | `1`                    | `2021/3/17` | `2021/9/24` |
|   BB8  | `25,000`  IOTX | BEP20 通证 | `90` 天 | `0.5`                  | `2021/3/17` | `2021/9/24` |
| Jonny5 |     `3` CYC    | BEP20 通证 | `90` 天 | `2`                    | `2021/3/20` | `2021/9/24` |
|  BTCB  |   `0.25` BTCB  | BEP20 通证 | `30` 天 | `0.01`                 | `2021/5/21` |      -      |
| ALPACA |  `8000` ALPACA | BEP20 通证 | `30` 天 | `0.01`                 | `2021/5/21` |      -      |
|  BUNNY |   `60` BUNNY   | BEP20 通证 | `30` 天 | `0`                    | `2021/5/21` |      -      |

对于BEP20代币的匿名池，用户会将0.1 BNB（称为“ 代币面额”）随资产一起存入池中，并将其**全额退还至取款地址**，作为以后操作的燃油费。这是一项方便的功能，允许用户在提款地址（通常是新地址）中进一步移动其BEP20资产。

## 咖啡池 <a href="#coffee-pools-tbd" id="coffee-pools-tbd"></a>

咖啡池已在以太坊上启动！当前已开放流动性挖矿（LM）与匿名性挖矿2.0(AMv2）。每日会有20个CYC作为CYC-ETH交易组合的流动性挖矿产出。

![](/files/-MVaxHMh1Hx5-110kLeZ)

|  **池**  |      **存款面额**      | **存款类型** | **周期** | **AMv2每日铸造CYC** |   **上线时间**  |  **池续约时间**  |
| :-----: | :----------------: | :------: | :----: | :-------------: | :---------: | :---------: |
|    拿铁   |      `100` ETH     |    代币    | `90` 天 |       `3`       | `2021/4/16` | `2021/9/24` |
|   浓咖啡   |   `100,000` USDT   | ERC20 通证 | `90` 天 |       `3`       | `2021/4/16` | `2021/9/24` |
|    冷萃   |     `100`  TORN    | ERC20 通证 | `90` 天 |      `0.15`     | `2021/4/16` | `2021/9/24` |
| Arabica |      `10` ETH      | ERC20 通证 | `90` 天 |      `0.3`      | `2021/6/15` |      -      |
|  Doppio |       `2` ETH      | ERC20 通证 | `90` 天 |      `0.06`     | `2021/6/15` |      -      |
|   SHIB  | `200,000,000` SHIB | ERC20 通证 | `90` 天 |      `0.01`     | `2021/6/15` |      -      |
|   LINK  |      `50` LINK     | ERC20 通证 | `90` 天 |      `0.01`     | `2021/6/15` |      -      |
|  MATIC  |    `1,000` MATIC   |  RC20 通证 | `90` 天 |      `0.01`     | `2021/6/15` |      -      |

**对于ERC20通证的匿名池，在存款时会将0.2 ETH**（称为“代币面额”）作为之后操作的GAS费用，**与资产一同存入池中，在之后取款时，会全额退还至提款地址。**&#x8FD9;将方便用户在提款地址（通常是新地址）中进一步对ERC20资产进行操作。

## 深海池(停用) <a href="#fish-pools" id="fish-pools"></a>

深海池已在IoTeX上成功启动！开放匿名性挖矿1.0（AMv1）和流动性挖矿（LM） 。每日会有25个CYC作为CYC-IOTX交易组合的流动性挖矿产出。

![](https://gblobscdn.gitbook.com/assets%2F-MNeAQGL5skC11vu82Sy%2F-MV2LnsToKV2fNT12aEP%2F-MV2Ny27oq2q1wxzRhrF%2FPinClipart.com_sea-clip-art_1074694.png?alt=media\&token=6ae2970a-96f7-4a70-a63f-82adfe86dea0)

| **池**                                                    | **存款金额**        | **周期** | AM每日铸造CYC |
| -------------------------------------------------------- | --------------- | ------ | --------- |
| <p><strong>池 1</strong></p><p><strong>(乌贼)</strong></p>  | `1,000` IOTX    | 长期     | 取决于存款数量   |
| <p><strong>池 2</strong> </p><p><strong>(海豚)</strong></p> | `10,000` IOTX   | 长期     | 取决于存款数量   |
| <p><strong>池 3</strong> </p><p><strong>(鲨鱼)</strong></p> | `100,000` IOTX  | 长期     | 取决于存款数量   |
| <p><strong>池 4</strong> </p><p><strong>(鲸鱼)</strong></p> | `1,000,000`IOTX | 长期     | 取决于存款数量   |

## 早鸟池 (停用) <a href="#earlybirds-pools-deprecating" id="earlybirds-pools-deprecating"></a>

早鸟池在IoTeX上启动，并开放匿名性挖矿1.0与流动性挖矿——这是最早用于启动旋风协议的匿名池，当前已经停用！**请将您的资产转移至其他匿名池！**

![](https://gblobscdn.gitbook.com/assets%2F-MNeAQGL5skC11vu82Sy%2F-MVXevSTb8cVbaZCnop4%2F-MVXf5FmHB_n-kyi1fu6%2FAE-MURPHY-birds-0-900x582.jpg?alt=media\&token=1dc7b85f-77a3-48d4-9f3b-73d9341559da)


# CYC通证经济

## 概览

CYC是旋风协议的原生通证，有机的激励**匿名提供者**，**流动性提供者**和**用户**。 **CYC通证没有投资方、没有团队预挖，而是全部分配给为旋风协议做出贡献的社区和用户**。

* **总量:** 50,000, 恒定
* **流通量:** \~6,000 (详见 - <https://cyclone.xyz/analytics>)
* **CYC 铸造**
* * 启动时将在链上**提供创世匿名池**
  * **额外的匿名池的开放将由社区投票决定**
  * **匿名性挖矿:**&#x5C06;代币存入匿名池中，并储存一段时间的用户，将获得代币奖励。当前有v1.0与v2.0两种方式进行铸造CYC。
  * **流动性挖矿:** 在去中心化交易所上为CYC提供流动性的用户，将获得CYC奖励
* **CYC效使用**
  * **使用匿名池:** 当用户使用匿名池获得隐私时，会烧毁部分CYC。
  * **去中心化自治:** CYC通证的持有人有权参与治理旋风协议。

![](/files/-MRNeyye_kXN-rJDEMHD)

## 角色和奖励

旋风协议中有四个角色。详情如下：

| **身份**                                | **如何成为**                                 | **奖励**  |
| ------------------------------------- | ---------------------------------------- | ------- |
| <p></p><p><strong>匿名性提供者</strong></p> | 通过存放代币并储存一段时间来提供匿名性                      | 匿名性挖矿奖励 |
| **用户**                                | 存入和提取代币来实现交易隐私                           | 获得隐私保护  |
| <p></p><p><strong>流动性提供者</strong></p> | <p></p><p>把代币+ CYC绑定到去中心化交易所提供CYC流动性</p> | 流动性挖矿奖励 |
| **治理人**                               | CYC通证持有者决定旋风协议的发展                        | 特定权限    |

## CYC 通证

CYC通证将在多个区块链上登陆，并通过跨链桥实现完美连接。不同链上的CYC合约地址：

* IoTeX `io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh`&#x20;
* BSC `0x810ee35443639348adbbc467b33310d2ab43c168`
* Ethereum `0x8861cff2366c1128fd699b68304ad99a0764ef9a`&#x20;

## 流动性与匿名性挖矿

详细信息，敬请参阅以下各节：

* 流动性挖矿（LM）：<https://docs.cyclone.xyz/v/introduction-chinese/token-ecnomics/lm>
* 匿名性挖矿1.0（AMv1）：<https://docs.cyclone.xyz/v/introduction-chinese/token-ecnomics/amv1>
* 匿名性挖矿1.0（AMv2）：<https://docs.cyclone.xyz/v/introduction-chinese/token-ecnomics/amv2>


# 流动性挖矿（LM）

### 流动性挖矿

![](/files/-MVY48g_cK5LimI7zVEw)

* CYC可以通过[Uniswap](https://uniswap.org/)，[Pancake](https://pancakeswap.finance/)和[mimo](https://mimo.exchange/pool)这些去中心化交易所（DEX）供给至不同的区块链上，生成CYC-ETH（待定），CYC-BNB和CYC-IOTX池通证
* 将生成的池通证存入合约以赚取每日流动性奖励
* **每个流动池的每日流动性奖励目前为20个CYC**
* 每日流动性奖励的CYC均将按比例分配给质押池通证的用户
* LP矿工可以随时领取自己的CYC奖励，随时质押/取消抵押池通证。&#x20;

![](/files/-MRyFGsRIGmSf9okCPDr)

### 费用

* 在IoTeX上进行流动性挖矿，将不收取费用；
* 在BSC上进行的流动性挖矿，将收取LP通证存款的0.5％作为手续费，这些通证用于回购CYC和烧毁。


# 匿名性挖矿1.0 (AMv1)

{% hint style="success" %}
匿名性挖矿1.0用于IoTeX（<https://cyclone.xyz/iotx>）上的匿名池，**此池将在接下来的3个月内逐步停用。**&#x6240;有新启动的池均基于匿名性挖矿2.0（AMv2）。
{% endhint %}

### 匿名性挖矿1.0 概览 <a href="#anonymity-mining-v1-overview" id="anonymity-mining-v1-overview"></a>

匿名性挖矿1.0由铸造/烧毁与匿名费这两个部分构成。如下所示：

![](https://gblobscdn.gitbook.com/assets%2F-MNeAQGL5skC11vu82Sy%2F-MRsWMRIx0CoIvKgvDO9%2F-MRsWPhL6-P_xd7FWKKK%2Fimage.png?alt=media\&token=cf67a9d5-6357-4903-a4cc-a9d2984052c1)

### 铸造/烧毁

**任何人都可以铸造和销毁CYC！**&#x53EA;需将通证存入以下匿名池中，即可铸造一定数量的CYC。相反，提取资金时会用从去中心化交易所（例如[Mimo](https://mimo.finance/)）所取出的IOTX来回购一定数量的CYC并且立即烧毁。

**存款-铸造**

| **存入IOTX金额** | **铸造 CYC个数**                     |
| ------------ | -------------------------------- |
| `D`          | `a * 0.1D / CYCPrice` (铸造上限请见下文) |

**提款-烧毁**

| **用IOTX回购CYC个数** | **烧毁个数(CYC)**         | **提款总额 (IOTX)**  |
| ---------------- | --------------------- | ---------------- |
| `a * 0.1D`       | `a * 0.1D / CYCPrice` | `(1-0.1a-0.01)D` |

**匿名池信息**

| **池**                 | **存款金额(IOTX)** | **最大铸造量** | **存款上限** |
| --------------------- | -------------- | --------- | -------- |
| **池 1(Squid)**        | `1,000`        | `0.2`     | `8,000`  |
| **池 2 (Dolphin)**     | `10,000`       | `2`       | `4,000`  |
| **池 3(Shark)**        | `100,000`      | `20`      | `2,000`  |
| **池 4 (Whale) - TBD** | `1,000,000`    | `200`     | `1,000`  |

`CYCPrice`是以IOTX为单位的CYC通证价格。`a`为奖金系数，且起始值为`2`，当匿名池内的存款量每增加该池最大存款量的四分之一时，`a`的值将呈线性减少。例如，池 1中的存款量为380个代币时，`a = 2`；存款为5300个代币时，`a = 0.5`。

当`CYCPrice = 1,000 IOTX`且`a = 1`，则上表计算情况如下：

| **池**            | **金额 (IOTX)** | **每次存款铸币/提取烧毁的CYC** |
| ---------------- | ------------- | ------------------- |
| **池1(Squid)**    | `1,000`       | `0.1`               |
| **池2 (Dolphin)** | `10,000`      | `1.2`               |
| **池3(Shark)**    | `100,000`     | `13`                |

如果`CYCPrice = 1 IOTX`，则上表计算情况如下：

| **池**            | **金额 (IOTX)** | **每次存款铸币/提取烧毁的CYC** |
| ---------------- | ------------- | ------------------- |
| **池1(Squid)**    | `1,000`       | `2`                 |
| **池2 (Dolphin)** | `10,000`      | `20`                |
| **池3(Shark)**    | `100,000`     | `200`               |

### 匿名费 <a href="#anonymity-fee" id="anonymity-fee"></a>

每当用户使用旋风协议时，他们在所有匿名池的每次提款将支付1％代币的费用。这些费用将添加到匿名池中，并将按照比例分配到匿名性提供者。

示例如下：

| **事件**                                             | **数额**     | **流动池总IOTX** |
| -------------------------------------------------- | ---------- | ------------ |
| 张三存入10,000 IOTX 至匿名池                               | `10,000`   | `10,000`     |
| 李四存入10,000 IOTX 至匿名池                               | `10,000`   | `20,000`     |
| 王二存入10,000 IOTX 至匿名池                               | `10,000`   | `30,000`     |
| 李四取款，取回9,900 IOTX （假设不进行烧毁），并支付100 IOTX手续费         | `10,050`   | `20,100`     |
| 王二取款，取回9,949.5 IOTX （假设不进行烧毁），并支付100.5 IOTX手续费     | `10,150.5` | `10,150.5`   |
| 张三取款，取回10,048.995 IOTX （假设不进行烧毁），并支付101.505IOTX手续费 | `10,000`   | `101.505`    |

得益于奖金系数`a`，所有的匿名提供者们都可以获得CYC奖励——例如，当王二存入100至匿名池中，他将被奖励 X 个CYC代币，而当存款达到4000时，王二决定进行提款，他将烧毁 X/2 个CYC代币，并将保留另外一半的CYC作为他的最终收益。

### 如何玩转CYC?

1\. 铸造CYC：在匿名池存放通证并储存一段时间来提供匿名性\
2\. 匿名性奖励：其他用户的提款手续费将成为匿名性奖励进行分配\
3\. 每日流动性奖励：在诸如[mimo](https://mimo.finance)的去中心化交易所上为CYC提供流动性\
4\. 赚取差额：早存款——获得更多的CYC；晚提款——烧毁更少的CYC


# 匿名性挖矿2.0 (AMv2)

{% hint style="success" %}
BSC（<https://cyclone.xyz/bsc>）上的匿名池已使用匿名性挖矿2.0（AMv2）。
{% endhint %}

### 设计目标

虽然匿名性挖矿1.0（AMv1）已经应用在IoTeX上，并启动了第一个匿名池，但我们深刻知道**AMv1的局限性**——**用户**（将资产存入匿名池中）**挖出的CYC数量与用户锁仓时间长短不成正比**。这不能最好的激励长期匿名性提供者。

在AMv2中，我们重新设计了匿名性挖矿机制，实现以下两点：

1. **挖出的CYC数量与用户将其资产锁定在池中的时间成正比**——资产停留在池中的时间越长，匿名性提供者获得的CYC就越多；&#x20;
2. **自主选择存款时长，让每个匿名池的生命周期更具活力！**&#x901A;常，匿名池的奖励周期都固定在90天左右，为了鼓励匿名性提供者将资产存入新池中，进一步提高隐私保护程度，我们允许用户根据自身需求，自主选择存款时长（由于池中有许多长期存款，但缺乏短期存款/提款，因此提供的隐私保护程度非常有限）。

### 术语&#xD;

在进行匿名性挖矿时，需要了解一些表示匿名池特性、参数的术语：

**资产面值**是匿名池提供匿名性的代币或者ERC20/XRC20 /BEP20通证的数量。例如，匿名池C3PO的主要资产是BNB，面值为`100`，这意味着每次在C3PO存款/提款的金额都为100 BNB。

**代币面值**是一种辅助功能，以提高用户的使用性。当用户将BUSD之类的资产存入匿名池中时，底层基础区块链的少量本币（例如0.1 BNB）将与资产一起存入池中，**这笔费用将作为Gas费，并将在提款时全额退还至收款地址。**&#x4F8B;如，李四在提款时将`0.1BNB`存入新地址，他可以继续转移她的BEP20资产，或从该地址调用其他智能合约。

**CYC面值**是少量的CYC动态值，这可以确保李四**赚取的CYC与他的资产在匿名池中存放的时间成正比，并且不会向其他人透露其资产在匿名池中滞留的时间**。我们将从以下示例进行了解：当李四将他的资产+`0.1BNB`存入池中时，也会根据CYC面值，存入`X`个CYC；假设在存款周期内，李四赚取了`Y`个CYC。提款后，`（X+Y）`个CYC将被发送至李四的账户中。此时，只有李四知道在这次挖矿中他赚取了`Y`个CYC。由于非交互式简洁零知识证明（zkSNARK）将存款与提款的tx断开，没有人（除李四外）知道预付款是`X`个CYC，更没有人可以计算出收益`Y`。因此，没有人能够知道存款人的资产在匿名池中到底滞留了多长时间，这是不是很棒！

### **匿名池**

以下是BSC上的创世匿名池：

| 池    | 资产面值          | 周期     | 每日铸造CYC | 铸造CYC总量 |
| ---- | ------------- | ------ | ------- | ------- |
| C3PO | `100` BNB     | `90` 天 | `3`     | `270`   |
| R2D2 | `10,000` BUSD | `90` 天 | `1`     | `90`    |
| BB8  | `25,000` IOTX | `90` 天 | `0.25`  | `22.5`  |

每个池中的所有匿名性提供者根据各自质押比例分取对应数量，例如`3`或`1`或`0.25`。

### **运作原理**

1. 将BNB（或IOTX或BUSD）存入C3PO（或R2D2，BB8）池；按需存入X个CYC&#x20;
2. 让BNB在池中停留N天，匿名性挖矿获得CYC
3. 从池中取回BNB，同时获得Y个CYC（当然，Y> X）

AMv2工作示例演示如下。为了简化此示例，其他费用不计：

| 时间  | 事件                                               | 池中总CYC数量 | 池中总BUSD数量 |
| --- | ------------------------------------------------ | -------- | --------- |
| `1` | 第一天开始                                            | `0`      | `0`       |
|     | 王二在池中存了`10,000`个BUSD                             | `0`      | `10,000`  |
| `2` | 第二天开始                                            | `1`      | `10,000`  |
|     | 张三在池中存了`10,000`个BUSD，并支付了`1`个CYC                 | `2`      | `20,000`  |
| 3   | 第三天开始                                            | `3`      | `20,000`  |
| 4   | 第四天开始                                            | `4`      | `20,000`  |
|     | 王二取回`10,000`个BUSD，同时获得`2`个CYC                    | `2`      | `10,000`  |
| 5   | 第五天开始                                            | `3`      | `10,000`  |
|     | 张三取回`10,000`个BUSD，同时获得`3`个CYC   (他的挖矿奖励是`2`个CYC) | `0`      | `0`       |

### **费用**

**提取资产后，将收取以下费用：**

* `1.5%` 的CYC将被作为费用收取，并立即烧毁
* `0.5%` 的CYC将被发送至中继层，作为提取tx的gas费


# 智能合约

## 源代码

旋风协议智能合约以GPL-3.0协议形式全部开源，源代码在<https://github.com/cycloneprotocol/cyclone-contracts>。

## 审计报告

### 初步报告&#xD;

[ChainShield](https://chainshield.io)已完成对旋风协议的安全审计。审计表明旋风协议的实现安全、高效、可靠。该报告可在此下载。

{% file src="/files/-MVwMJvzDAutQkUBjcm0" %}
ChainShield安全审计报告
{% endfile %}

### &#xD;完整报告&#xD;

[Slowmist慢雾](https://www.slowmist.com/?lang=zh)已完成对旋风协议的安全审计。审计表明旋风协议的实现安全、高效、可靠。该报告可在此下载。

{% file src="/files/-MY3SA1nMYote3G37sWY" %}
慢雾安全审计报告
{% endfile %}


# 部署与合约地址

## 以太坊主网

* Cyclone Token: `0x8861cff2366c1128fd699b68304ad99a0764ef9a`
* Aeolus LP Mining v2.1: `0xdc71bc29d12960a3ee5452fac6f033a1b8e756fb`
* Hasher: `0x949452e32db13a5771445cf20b304474b866202b`
* Verifier: `0x7C994FB3a8C208C1750Df937d473040c604292D6`
* UniswapV2 Router: `0x602b40bf327c10370483ae5ecde15a7bb480dcca`

**匿名池**

* 拿铁 - 100 ETH - Pool: `0xd619c8da0a58b63be7fa69b4cc648916fe95fa1b`&#x20;
* 浓咖啡 - 100000 USDT - Pool: `0xa38b6742cef9573f7f97c387278fa31482539c3d`
* 冷萃 - 100 TORN Pool: `0x09f03488291063a8f3c67d2aab7002419d11c113`

## BSC主网

* Cyclone Token:`0x810ee35443639348adbbc467b33310d2ab43c168`
* Verifier: `0x9286e9271bf497ec39b3fdaef53e38bfc6b4cf14`
* Aeolus LP Mining v2: `0x92a737097d711bec4c31351997254e98e5f0d430`
* PancakeSwap Router: `0x10ed43c718714eb63d5aa57b78b54704e256024e`

**匿名池**

* C3PO - 100 BNB Pool:`0x66b5e322dc31f8c7a33ffd23975163795f8d16c7`
* R2D2 - 10,000 BUSD Pool: `0xbe19d541389c9d3e03efc08f3d5008e8c9cc42a5`
* BB8 - 25,000 IOTX Pool: `0x79459751f6882868d1299bfa412428488b434541`
* Jonny5 - 3 CYC Pool: `0xd90a6bf8439ef7214cf00da83e926068b6a507ec`

## IoTeX主网

* Cyclone Token: `io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh`
* Timelock: `io10jv5lvagcgyvzagdlymagucyp3sy9ykktkudth`
* GovernorAlpha:`io1w8n28wr5dpc2uh3pzvx4n402h0l2agmu67a26x`
* Aeolus LP Mining v2: `io1rgwa22h66ney8sclpyrdqxwy4n0czjztc2rpu0`
* Mimo Router: `io1z2wmt6y74ctc9l4y4ly73gkynp0p4haj2d326m`

**匿名池**

* 松饼 - 50,000 IOTX: `io13lp2c88eqanyjg3h4y2klyax5s28gfx9q0j4nv`
* 曲奇 - 500,000 IOTX: `io1j2nnwztawyd7cnp3x5vewf2wnrjlp4psz556kv`
* 姜饼 - 2,000,000 VITA: `io1jm0rr385aw4vxqkzn4vx2y0s7ja80etexg7ucu`

## Polygon主网

* Cyclone Token:`0xcFb54a6D2dA14ABeCD231174FC5735B4436965D8`
* Verifier: `0xb6e9ea062a7719846bc9e3e3ae8712e74faad376`
* Aeolus LP Mining v2: `0xA8c187d8773bc9E49A10554715Ff49Bdcf39d55D`
* QuickSwap Router: `0xFCb851Ad3D98BD241dbE395cA1E6080f489D4624`

**匿名池**

* 五角星 - 1,000 MATIC: `0x5194932AD0f889B1E31041b8006A58FF70A11F43`
* 六边形 - 1,000 USDC: `0x8e6e472e4a3f8b1951D2970f59B3944eFf707e10`
* 八角形 - 2 QUICK: `0x517CeeE661b57ed7d5b615bF700cb307D87a025B`


# 路线图

2021年，旋风协议有四项战略目标：在IoTeX上公平启动、在币安智能链上逐步升空、在以太坊上持续冲刺、全面实施去中心化自治。

## 全面自主发展(2021 Q3/Q4，即将发布))&#x20;

**具有汇集多种资产收益的跨链匿名机枪池（2021 Q3，即将发布）**

我们正在开发汇集多种顶级项目资产收益的跨链匿名机枪池。这些全新的资金池能够为匿名性提供者带来跨链多资产收益，跨链匿名机枪池将在2021年Q3季度由社区投票通过后推出。

#### 提升CYC通证经济学(2021 Q3, 筹备中...)

自首次发布以来，旋风协议一直在不断提高基础通证的经济性。例如，有人提出对不活跃的匿名池进行奖励减半，也有人提议让CYC的面额更加透明化。我们正在对提案进行研究与探索，对通证经济学的改进正在紧锣密鼓地筹备中。

#### DAO治理 (2021 Q4, 筹备中...)

DAO治理将被激活，并将自行接管所有的服务合约，实现旋风协议的完全自治。鼓励选民对新的匿名池进行跨链投票，更新数据以及促进实施更多的自治措施。

**DeFi应用程序的通用隐私保护层(2021 Q4, 筹备中...)**

2021年Q4季度，我们将致力于在旋风协议的应用方面实现与所有主流DeFi应用程序/产品建立合作伙伴关系，并为它们提供匿名性。

## 登陆以太坊 (2021 Q2,已完成！)

旋风协议以开放匿名性挖矿与流动性挖矿的方式成功登陆以太坊——2021年第二季度，已完成！顶级DeFi应用程序的新池已启动。 ETH上的CYC通证可以通过[ioTube](https://tube.iotex.io/eth-iotx)之类的跨链桥以1:1的比例从/向BSC和IoTeX无缝跨链转移。&#x20;

在此处查看详细信息：<https://snapshot.org/#/realcycloneprotocol.eth/proposal/QmYRA4sNuZWnPjsB97qZAayiqVa6pnqBCLtLpnNQCjyP6G>&#x20;

通过DAO治理与社区投票，以太坊上的匿名池将支持更多种类及面值的资产。&#x20;

登陆BSC币安智能链 (2021 Q2, 已完成！)

目前我们已在BSC上启动旋风协议，并开放匿名性挖矿与流动性挖矿。BSC上的CYC通证都可以通过[ioTube](https://tube.iotex.io/bsc-iotx)之类的跨链桥以1:1的比例从/向ETH和IoTeX之间无缝跨链转移。 在此处查看详细信息：<https://cycloneprotocol.medium.com/tbd-on-chains-562261eac886>

通过DAO治理与社区投票，BSC上的匿名池将支持更多种类及面值的资产。&#x20;

## 公平启动（2021 Q1，已完成！）

“公平发行”是加密货币领域的圣杯，也是我们一直追求的目标。 在启动时，**CYC通证完全无价格、无估值 - 初始铸造的2021个CYC（是的，2021个！），以空投和幸运抽奖的方式，全部分发给社区的支持者们**。

### Day 1 - Day 7

Day 1 从2020年1月19日开始，详情请见[推特](https://twitter.com/cycloneprotocol/status/1351413127112396802)！

旋风协议的启动阶段，三个早鸟池会被部署，并且我们鼓励每个人都将IOTX （IoTeX公链的原生通证）存入三个开放的池中，以通过空投和幸运抽奖获得CYC。这三个早鸟池没有打开铸造/烧毁和流动性挖矿机制，但是具备匿名性挖矿机制。具体方式如下：

**早鸟池参与空投**

* 每向池1 - 早麻雀（10,000 IOTX）存入一笔存款均可赚取5点积分
* 每向池2 - 早乌鸦（100,000 IOTX）存入一笔存款均可赚取60点积分
* 每向池3 - 早鹰（1,000,000 IOTX）存入一笔存款均可赚取720点积分
* 2021/01/01之前的[mimo](https://mimo.exchange/) 用户 (至少有1次 [mimo](https://mimo.exchange/)交易) 均可赚取50点积分
* 2021/01/01之前的所有 [IOTX bucket](http://member.iotex.io/) 持有者均可赚取50点积分
* 每个地址最多可以获得8000点积分
* **将有1500个CYC通证空投到所有参与者的地址，瓜分数量与每个地址获得的积分成比例**

**早期测试者奖励**

* **88个CYC通证**将按比例发送给持有[CYC测试通证](https://iotexscan.io/token/io1xhw6hc3sm0fs8gtqwhj843ytgqthxe9uv4aced)的早期社区参与测试的用户

**社群早鸟奖励**

* **总共100CYC 会发放给所有参与社交推广活动的人**
* **加入 Telegram 即可获取赏金（ 最高可赚取1000 点积分！）**
  * 关注twitter - 必须步骤，未来有抽奖活动
  * 加入Telegram频道和群组 - 必须步骤，赚取2点积分
  * **推广: 每成功邀请一个人加入群组，可赚取1点积分**
  * 将 [http://t.me/cyclonebountybot ](<http://t.me/cyclonebountybot >)复制进Telegram即可进入频道
  * 禁止发送垃圾邮件、诈骗信息、广告等，否则积分将被取消！
* **请注意：这里的积分和早鸟池参与的积分是分开的。**

**幸运抽奖活动**

* **3个CYC通证**将用于**早鸟池1**中15个最大的交易哈希进行抽奖
* **30个CYC通证**将用于**早鸟池2**中15个最大的交易哈希进行抽奖
* **300个CYC通证**将用于**早鸟池3**中15个最大的交易哈希进行抽奖

### On Day 8（2021年1月26日14时）

1. 空投与幸运抽奖活动
2. 部署正式池1、2、3，打开铸造/烧毁、流动性挖矿和匿名性挖矿。我们会保留早鸟池，并鼓励用户将IOTX转往正式池
3. 开放[mimo](https://mimo.exchange/)交易


# 去中心化治理

**旋风协议去中心化治理模式的灵感来自于**[**复合治理模型**](https://compound.finance/docs/governance)。  旋风协议将由CYC持有者通过三个功能模块进行管理和升级：CYC通证、治理模块（Governor Alpha）和Timelock。基于这三个模块生成的智能合约，使**社区用户能够对旋风协议进行“提议，投票和实施变更**。“提议”可以包括对内容的变更，例如增加对新资产的支持、优化当前通证池、调整CYC的铸币/烧投速率等。

![](/files/-MNeNYZH_9yvoogvnnn6)

预计DAO治理将在2021年Q2季度初步启动。‌

CYC持有者们有权享有以下权利：

* 选举旋风协议接下来将支持哪个区块链
* 启动具有特定资产的新匿名资金池
* 更新现有匿名资金池的参数 ，例如：CYC每日开采量
* 启动新的流动资金池
* 更新现有流动资金池的参数 ，例如：CYC每日开采量
* 开发CYC的其他通证经济学


# 数据和走势

## 可视化仪表盘

欢迎使用可视化仪表盘—— <https://cyclone.xyz/analytics> ，仪表盘实时显示CYC的供应量、当前存款量、资金池价值及其他实时数据。-

![](/files/-MS03pKKGMgZKh-WX2qq)

## GraphQL

我们已经解析了旋风协议的智能合约数据，因此可以使用GraphQL查询在<https://analytics.cyclone.xyz/playground> 对旋风协议数据和走势进行分析。

![](/files/-MRT7t86WTEoLuibF46g)

### 所有匿名池中存入的IOTX总量

`query { tokensInPoolPerDay(count: 7) { name values { timestamp value } } }`

### 全部存入IOTX总量和费用

`query { total { iotx fee } }`

### 每天存入IOTX总量

`query { totalPoolPerDay(count: 7) { timestamp value } }`

### 用户已获得的空投积分

`query { airdropScore(address: "io1tmt2vp28afp2vd3h598n0lwu6sj3lyc64apjw3") }`

### 池 1中最幸运的15笔存入

`query { luckyDrawTopN(poolAddress: "io1rqm2keejw4jypgl0w6hr96r054ns63u0hqrfuy", n: 15) { hash address method } }`

### 池 2中最幸运的15笔存入

`query { luckyDrawTopN(poolAddress: "io1gkeeljp4grwskgq3tl2xqglqy546nhhmytnqqp", n: 15) { hash address method } }`

### 池 3中最幸运的15笔存入

`query { luckyDrawTopN(poolAddress: "io1mlcgsv4ma0t6gffpxg2gva3lwqnlj5msradxk6", n: 15) { hash address method } }`


# 技术开发

本页说明了如何使用智能合约进行编译/部署/测试/交互等操作，其中有四个主要合约——旋风通证，GovernorAlpha / Timelock，Aeolus和Cyclone（代币，ERC20）。

### 准备工作

1. 安装truffle

   ```
   npm install -g truffle
   ```
2. 安装dependencies

   ```
   npm install
   ```
3. 安装 `ioctl` - 用于与IoTeX区块链交互的命令行工具。

按照说明安装ioctl: <https://docs.iotex.io/developer/ioctl/install.html>

### 编制合约

`npm run build:contract`

### 部署合约

* **旋风通证（CycloneToken）**
* 部署 CycloneToken `ct`

  ```
  ioctl contract deploy bytecode CYCLONETOKEN_BYTECODE ABI_PATH '{"_operator": "OPERATOR_ADDRESS", "_lp": "INITIAL_LP_ADDRESS"}'
  ```
* **缓冲段（Timelock ）& 治理模块（GovernorAlpha）**
* 部署 Timelock `tl`

```
ioctl contract deploy bytecode TIMELOCK_BYTECODE TIMELOCK_ABI_PATH '{"admin_": DEPLOY_ADMIN_ADDRESS, "delay_": DELAY_IN_SEC}'
```

1. 部署 GorvernorAlpha `ga` (例如.投票周期：3天)

```
ioctl contract deploy bytecode GORVERNOR_BYTECODE GOVERNOR_ABI_PATH '{"timelock_": TIMELOCK_ADDRESS, "sushi_": CYCTOKEN_ADDRESS, "guardian_": ADMIN_ADDRESS, "votingDuration_": 51840}'
```

1. 设置 Timelock的待定管理员至 GovernorAlpha `ga`

```
 ioctl contract invoke function TIMELOCK_ADDRESS TIMELOCK_ABI_PATH "setPendingAdmin" --with-arguments '{"pendingAdmin_": GOVERNOR_ADDRESS}'
```

1. 由监护人触发，接受成为GovernorAlpha `ga` 的管理员

```
 ioctl contract invoke function GOVERNOR_ADDRESS GOVERNOR_ABI_PATH "__acceptAdmin"
```

* **Aeolus**
* 在MimoFactory上为CYC / IOTX添加流动性并接收CYC-IOTX LP通证
* 以 `ct` 为地址，部署Aeolus `as`

  ```
  ioctl contract deploy bytecode AEOLUS_BYTECODE ABI_PATH '{"_sushi": CYC_TOKEN, "_sushiPerBlock" : AMOUNT, "_startBlock": BLOCK_NUMBER, "_bonusEndBlock": BLOCK_NUMBER}'
  ```
* 调用 `as`.添加 CYC-IOTX LP 通证

```
ioctl contract invoke function AEOLUS_ADDRESS ABI_PATH "add" --with-arguments '{"_allocPoint": 100, "_lpToken": LP_TOKEN_ADDRESS, "_withUpdate" : false }'
```

1. 调用 `ct`.addMinter() ，使`as` 成为 CYC 通证的生成器

   ```
   ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": AEOLUS_ADDRESS}'
   ```
2. **IOTXCyclone, XRC20Cyclone**
3. 部署 Hasher `hr`

   ```
   ioctl contract deploy bytecode HASHER_BYTECODE
   ```
4. &#x20;部署 Verifier `vr`

   ```
   ioctl contract deploy bytecode VERIFIER_BYTECODE
   ```
5. 部署 IOTXCyclone `ic`, XRC20Cyclone `xc` ， 由Hasher `hr` （ `vr`, `ct`, `mf` ）链接，如果必要的话，还需要XRC20 通证的地址

   ```
   link IOTXCYCLONE_BYTECODE/XRC20CYCLONE_BYTECODE with HASHER_ADDRESS (use linker.js)
   ```

   ```
   ioctl contract deploy bytecode IOTXCYCLONE_LINKED_BYTECODE IOTXCYCLONE_ABI_PATH'{"_verifier": VERIFIER_ADDRESS, "_cyctoken": CYCTOKEN_ADDRESS, "_mimoFactory": MIMOFACTORY_ADDRESS, "_denomination" : DENOMINATION_AMOUNT, "_merkleTreeHeight" : MERFLETREE_HEIGHT, "_operator": TIMELOCK_ADDRESS}'
   ```

   ```
   ioctl contract deploy bytecode XRC20CYCLONE_LINKED_BYTECODE XRC20CYCLONE_ABI_PATH '{"_verifier": VERIFIER_ADDRESS, "_cyctoken": CYCTOKEN_ADDRESS, "_mimoFactory": MIMOFACTORY_ADDRESS, "_denomination" : DENOMINATION_AMOUNT, "_merkleTreeHeight" : MERKLETREE_HEIGHT, "_operator": TIMELOCK_ADDRESS, "_xrc20Token" : XRC20TOKEN_ADDRESS}'
   ```
6. 调用 `ct`.addMinter() ，使 `ic` 和`xr` 成为 CYC 通证的生成器

   ```
   ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": IOTXCYCLONE_ADDRESS}'
   ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": XRC20CYCLONE_ADDRESS}'
   ```

### 与旋风合约的交互\[匿名式挖矿]

1. 要求
2. `nvm use 11.15.0`
3. `npm install -g npx`
4. 设置 .env文件
   * `cp .env.example .env`
   * `vi .env` - 添加您的私钥，已部署的合约地址和面额
5. 搭建zk circuits: `npm run build`. 请注意，如果要在本地构建zk circuits（包括verifier.sol，证明/验证密钥），则需要:
   * `npm uninstall websnark`
   * `npm install websnark@"git+https://github.com/tornadocash/websnark.git#2041cfa5fa0b71cd5cca9022a4eeea4afe28c9f7"`
   * `npm run build:local` - 在本地执行可信设置时，可能要花费10分钟以上的时间。
6. 存款
   * 测试网

     `./client.js deposit IOTX|XRC20 --rpc http://api.testnet.iotex.one:80`
   * 主网

     `./client.js deposit IOTX|XRC20 --rpc http://api.iotex.one:80`
7. 提取
   * 测试网

     `./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.testnet.iotex.one:80 --relayer RELAYER_URL`
   * 主网

     `./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.iotex.one:80 --relayer RELAYER_URL`

### 与Aeolus合约的交互\[流动性挖矿]

1. 使用MimoFactory添加流动性 CYC/IOTX，并接收 CYC-IOTX LP通证
2. CYC-IOTX LP通证许可

```
ioctl xrc20 approve AEOLUS_ADDRESS AMOUNT -c LPTOKEN_ADDRESS
```

1. 存款

```
ioctl contract invoke function AEOLUS_ADDRESS abi/Aeolus.json "deposit" --with-arguments '{"_pid": 0, "_amount": AMOUNT}'
```

1. 提取

```
ioctl contract invoke function AEOLUS_ADDRESS abi/Aeolus.json "withdraw" --with-arguments '{"_pid": 0, "_amount": AMOUNT}'
```

### 与GovernorAlpha合约的交互\[去中心化治理]

1. 自我委托或委托您的CYC通证进行治理，如果你不把你的选票委托给别人，则通证将不被视为投票权。

```
ioctl contract invoke function CYCTOKEN_ADDRESS abi/CycloneToken.json "delegate" --with-arguments '{"delegatee": ADDRESS_YOU_WANT_TO_DELEGATE}' -s mainnet -y
```

1. 在旋风合约中提出新的变更，例如更新Tax，修改GovDAO和升级Verifier。 提议者应拥有CYC代币总供应量1％以上的额度。 投票将进行3天。
2. 使用 [abi-encoder](https://adibas03.github.io/online-ethereum-abi-encoder-decoder/#/encode) 获得编码的参数数据。

   ```
   ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "propose" --with-arguments '{"targets": [CYCLONE_ADDRESS], "values": [0], "signatures": ["updateTax(uint256)"], "calldatas": ["0x0000000000000000000000000000000000000000000000000000000000000064"], "description": "update tax in cyclone contract"}'
   ```
3. 在为期3天的投票期间，自我委托或委托的通证持有者可以对某个提案进行投票。

   ```
   ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "castVote" --with-arguments '{"proposalId": 1, "support": true}'
   ```
4. 投票持续3天时间，如果提案获得总供应量的4％以上的投票，则提案人可以将交易排队到缓冲段（Timelock）中。

   ```
   ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "queue" --with-arguments '{"proposalId": 1}'
   ```
5. 延迟缓冲段后，提议者可以在缓冲段中执行事务。

   ```
   ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "execute" --with-arguments '{"proposalId": 1}'
   ```

###


# 社区

## 推特

<https://twitter.com/cycloneprotocol>

## 电报群

公告频道- <https://t.me/cycloneprotocol>

社区交流群 - [https://t.me/cycloneprotocol](https://t.me/cyclonegroup)

## Medium Blogpost

{% embed url="<https://cycloneprotocol.medium.com/>" %}

## BitcoinTalk Thread

<https://bitcointalk.org/index.php?topic=5310841.0>


# 操作指南

## 匿名性挖矿

### 操作说明：如何存款

<https://docs.cyclone.xyz/a-step-by-step-guide/step-by-step-how-to-deposit>

### 操作说明：如何提款

<https://docs.cyclone.xyz/a-step-by-step-guide/step-by-step-how-to-withdraw>

## 流动性挖矿

<https://docs.cyclone.xyz/a-step-by-step-guide/how-to-liquidity-mining>


# 操作说明: 如何存款

## 1. 使用ioPay移动端进行存款&#x20;

在移动设备上下载IoTeX官方钱包——ioPay(iOS, Android, APK).

下载链接： <https://iopay.iotex.io>

![](https://lh3.googleusercontent.com/4sUoaG9r8KGTwMb9Vh03DovKK-ov8wV0itguOp_OHulcLuFNVXWGjL5WGfGomT7MQlz_wVGSZjTWQ6oKDjKLo0jjyMBdv5ya87d6KaxMXc4mGmlbSsdDFL5kfj3PfsRONZh1cSca)

### 第一步：创建/导入钱包

**创建新地址：**&#x5982;果你没有钱包，请新建一个钱包。注意：请记好你的钱包地址，私钥/助记词。

&#x20;**导入钱包：**&#x5982;果你已经拥有IoTeX钱包，则可以使用密钥库文件、私钥/助记词来导入它。

![](https://lh3.googleusercontent.com/alxRfGVg4-YY7GPSMUNpMzbWDHT4i01TxVWBeq7V6520Dr30Vc5V3Hyp9KENy5ACNkCtYtAvEEryIMPDxRVqVjpJvMM2oxHEcxySdZux7lwYDsUZW8ssH6iwehqL4H0Ke345qTDC)

### **第二步：准备资金**

通过ioPay上的**存款**，查看获取IOTX的选项。

### **第三步：在 “发现”页上点击Cyclone**&#x20;

<img src="https://lh3.googleusercontent.com/ty58p8TtKnwWk62UDMZvk3ea-Lu4_wXVGCvjiwGqqoHlRcyrxhGKmuJOtu9g4RcS1c3I4H8m848_8YW12V_yjdw5iwHwMLqCOyFh4kYUFxYV6T2EHC0JAmymETEkmMXA9WF9g3Rv" alt="" data-size="original">

如果找不到上图所示的Cyclone图标，请单击“More”， 或者在顶部搜索栏中直接输入或粘贴Cyclone网址：<https://cyclone.xyz/>。

![](https://lh3.googleusercontent.com/PSCb26Mtoh8oL1IlZyxUtWV2_N7B8qVJHgbqCf16wGDMOQHzcB1PktSnyA-TSdMYnoSW50beq2IfXN-Uvo5JzTMl9difkOxu3s4Z_3bHqax8HO_9h90o5brlUdBnPvXytuoV59Js)

### 第四步：确认钱包与Cyclone连接

![](https://lh4.googleusercontent.com/XgXox7_J2I-b8aklbaCAUgwjZdzBO1SLNHhU0WfXjfi1oExXOKYeNnX_rMyaKozrSK5-giZdZl7u9IS4Z19HxRNikwGlGCYhRoyxzQOrkkinzeTbYIarJf6kHJ0hXR8Ch6Eii_bO)

### 第五步：选择一个池，然后点击“存款”

![](https://lh4.googleusercontent.com/_dZmoGT0FQbUfTosTjS7Dce3qIhpCWFiuyqERFWpDSr3onnVbCqGNywKP90RKaiRhtmqKMXd4Bjo6XekMTh3tj2VVwiUyUEdCZIYrG35LtAtJV5hToyVChWStW1LntKXuvaGqEkK)

### 第六步：准备进行存款

1. 点击**复制**图标，然后将**笔记备份**到手机上/抄写到纸上并妥善保存（**注意！如果找不到笔记，您将会损失资金**）
2. 点击“我已备份笔记”，然后将笔记粘贴至下方框内。

![](https://lh6.googleusercontent.com/zEWP04qPsTsekV0zdqWZCWOCKHv6HTvrrOfazNv81xtovtKzh9NzAu_hfST72oo6kqs_pfx86xjgtqKvbZxgcAcHGtM8p4Wk-Uj7APa5in0wPxAE9Xqf9zMGoUXi0MNszldG-Wld)![](https://lh6.googleusercontent.com/XpNjrEtDY5bC5m3N_BU1DvR1TbQnYtj2pzRTYnOBm_HbpOKHZL26C4HudN8IJd54k0107eNu_7zDPVRQ2OOwAKO5b1eQVs9enff6Cn90JRhRVBo2QSzfWkJzPOcfnlPVRUb9-lKc)

#### 点击“发送存款” <a href="#click-send-deposit" id="click-send-deposit"></a>

![](https://lh6.googleusercontent.com/bqe3ZDzcFbbpE_X898D2KoFc4EJFSU7GlcGN4Xd1cxUoWktKRAtQkBtMwW8mAtGKCwQB3BKTf-uNxOOOmOXy43mebLrJIJjCkFYpfEd7aFbdRQsackUaOan2TK-Z1wlZe4XpJwT3)

### 第七步：在ioPay上确认交易。

### 操作完成！

## 2. 使用ioPay桌面版进行存款

如果你希望在电脑上进行操作，请按照以下步骤进行：

![](/files/-MRzdCbIvjJRRmlquUbR)

1. 创建/导入钱包
2. 确保钱包里有足够的资金
3. 访问 <https://cyclone.xyz/>
4. 点击 “登录 App”&#x20;
5. 选择资金池, 点击 “存款”
6. 单击复制按钮，**复制笔记**
7. 请确保将笔记安全地备份在笔记本电脑/计算机上。\
   &#x20;**注意：笔记也将自动以txt文件下载，请妥善保存！**
8. 点击“我已备份笔记”，然后将“笔记”粘贴到下方框内。
9. 点击 “发送存款”&#x20;
10. 在ioPay上确认交易
11. 操作完成！


# 操作说明: 如何提款

### 第一步：请点选“提款”按键

![](/files/-MRzdXdIjNtc3Nh0V0Gm)

### 第二步： 粘贴“笔记”，进行验证

![](/files/-MRzdOwaPMGHP1rILg8t)

### 第三步：输入钱包地址（最好是新地址）&#x20;

### 第四步： 点击“提款”，确认进行提款

![](/files/-MRxuFe7NTi0pORFVkou)

### 第五步： Cyclone智能合约将会把资金发送到您的地址

### 提款完成！


# 如何进行流动性挖矿

你可以使用ioPay移动版/ioPay桌面版为旋风协议设置流动性挖矿。

### 第一步：在主页菜单中点击“挖矿”，打开“流动性挖矿”面板

![](/files/-MS05nM15A_S2fl5yJ9U)

### 第二步：点击“添加流动性”，在mimo.exchange上增加流动性

请确保你的钱包中有足够的 CYC和 IOTX，点击“添加流动性”并继续操作。 交易完成后，你的 CYC和 IOTX将被存入Mimo，成为流动性池通证，为[自动做市商](https://academy.binance.com/en/articles/what-is-an-automated-market-maker-amm)提供流动性，你将在钱包中收到相应的每日流动性奖励。

可以在[这里](https://info.mimo.exchange/pairs/io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh)随时查看有关流动性的相关状态与信息。

![](/files/-MS06HuN6mHDLPodOjQi)

### 第三步：返回流动性挖矿面板，点击“ 质押”并确认

你的流动性池通证将被放入旋风协议的智能合约中，开始赚取 CYC！ 你可以随时查看“流动性挖矿”面板顶部，了解当前已经赚取多少 CYC以及当前的 APY，例如：2,168%！

### 第四步：使用“领取”来获得流动性挖矿奖励

你可以随时点击“领取”，即可兑换你的 CYC。交易完成后，这笔资产将直接存入你的钱包。

### 第五步：使用“ 解除质押”提取矿池通证

如果你完成了流动性挖掘，点击“解除质押”，将流动性池通证放回你的钱包中。你也可以在 <https://mimo.exchange/pool> 中点击“移除”，取回 CYC和 IOTX。


# 挖矿指南

{% hint style="success" %}
本页介绍Cyclone旋风协议2.0匿名性/流动性挖矿分布指南
{% endhint %}

Cyclone旋风协议2.0成功登陆币安智能链（BSC）。本文提供了以MetaMask为例的挖矿分步指南。旋风协议支持其他与BSC兼容的钱包，例如TokenPocket，TrustWallet...并且支持以相同的方式进行操作。

## 一、配置MetaMask

1\. 安装MetaMask

PC端：<https://metamask.io/download.html>；IOS端：⽤⾹港或美国ID，在App Store中搜索MetaMask即可下载；Android端：在Google Play中搜索MetaMask即可下载；

![](/files/-MW5fpJgV7Vo3SK7c5Zj)

2.连接至BSC主网

启动MetaMask，按要求设置密码、保存并确认助记词，完成新账户创建/导入；点选网络，选择“自定义RPC”，进入部署界面：

![](/files/-MW8J3BYiowNMIwBkfpE)

填入以下信息：\
网络名称：BSCMainnet\
新增RPC URL：<https://bsc-dataseed.binance.org/>\
链ID：56\
符号：BNB\
区块链浏览器URL：[https://bscscan.com](https://bscscan.com/)

![](/files/-MW8JDD2RwLk-TSyYsgs)

3.为钱包充值

将$BUSD，$BNB，$BSC-Peg IOTX存入BSC主网钱包，并参与匿名性挖矿2.0！存款的最简单方式是将您币安账户中的资产存入钱包（MetaMask）。请确保在您的钱包中至少存入0.1 BNB——每笔存款都会将0.1 BNB与您的资产（$BNB，$BUSD或$IOTX）一起存入池中，这笔钱将全额退还至您的提款地址，并帮助您进行进之后的操作。

## 二、在Pancake中购买CYC

* 敬请期待...

## 三、匿名性挖矿2.0——存款

1.进入旋风协议DApp网站：[https://cyclone.xyz](https://cyclone.xyz/)，并启动程序

![](/files/-MW8JLJ8OsxG9dqKKbdF)

2.选择“ 币安智能链”，如下所示

![](/files/-MW8JX3ulOTqCfvqEV8U)

3.点击连接，选择要连接的钱包，本示例选择MetaMask

![](/files/-MW8JcrzQi2BygTzvIea)

![](/files/-MW8Ji2k0VneylOwY46a)

4.选择想要参与的匿名池，此处示例选择Pool R2D2，存款种类为BUSD

![](/files/-MW8JyMVQqSYGTtR1ofx)

5.点击“授权”，授权$BUSD / $CYC（或任何代币）的支出操作

![](/files/-MW8K9F1M1mfIb8ld_xw)

6.点击“确认”，授权成功！

![](/files/-MW8L3w7G-uWBq_jQcNM)

7.通证支出授权完成后，点击“存款”将资产存入匿名池中。

![](/files/-MW8UCPVD_Tw12-Xvydh)

**注意：备份笔记！**“复制笔记-勾选复选框-将笔记粘贴进文本框”，点击“发送存款”，开始匿名性挖矿！**请务必将笔记记录在纸张、复制进备忘录...并且不要与任何人分享！**&#x4E22;失笔记，您也将失去提取这比存款的资格！

![](/files/-MW8UJ3W1fq1Ctedu9LL)

## 四、匿名性挖矿2.0——提款

进入“提款”页面，填写您的笔记和收款钱包地址，单击底部的“提款”按钮即可完成！

![](/files/-MW8Q3r0qtA3cM2aPPja)

## 五、流动性挖矿——质押

1.点击上方菜单栏中的“挖矿”

![](/files/-MW8V2VOMfEtu1P830yl)

2.点选“增加流动性”，进入[Pancakeswap](https://pancakeswap.finance/)

![](/files/-MW8V72n1lDhfLBOHQGo)

3.在Pancakeswap上将$CYC与$BNB形成流动性交易对$CYC/$BNB

![](/files/-MW8VCE-n2LzgA1yuPY_)

4.返回至挖矿界面，在“质押”一栏，输入参与流动性额度，点击“质押”，即可完成！现在您可以开始进行流动性挖矿了！

![](/files/-MW8PrzJDR9wdTLiRNxT)

## 六、流动性挖矿——赎回

在挖矿界面“赎回”一栏，输入赎回流动性额度，点击“赎回”，即可完成！

![](/files/-MW8PygmKDsx6xuK5cCr)

## 附录、跨链充值CYC

1.在[IoTeX](https://iopay-wallet.iotex.io/)官网上下载ioPay，打开ioPay并进入发现页，选择资产跨链桥[ioTube](https://bsc-tube.iotex.io/bsc)，开始将$CYC从IoTeX网络转移至BSC主网。

![](/files/-MW8VbuE2eENTsDKvaAi)

2.ioTube默认为以太坊的跨链界面，点击上方V4 preview，切换至与BSC的跨链桥（V3适用于“IoTeX-以太坊”之间的资产转移）

![](/files/-MW8VnQaJMs7VHFbyVqC)

3.在下拉列表中选择资产种类——CYC，并输入跨链金额，并填写BSC主网钱包对应地址（MetaMask BSC钱包地址），以在BSC上收到$CYC

![](/files/-MW8VrKUw14It0NQbnTp)

4.点击“转换”，然后等待确认。 您从IoTeX到BSC的$CYC跨链资产转移已完成！


# 常见问题

如何提取IoTeX链上的存款？

步骤详解：\
1.选择IoTeX区块链\
2.切换至提款页面\
3.粘贴你的笔记\
4.提取存款成功！

## 如何参与投票?

您需要转至此页面才能投票： <https://snapshot.org/#/realcycloneprotocol.eth/>

为了确保有效的投票，您需要在每次投票中显示出“snapshot”时间之前在您的钱包中拥有CYC。

以下是是一个例子。

![](/files/-MW5wDNs6DLSQ-IG6S62)

## 为什么笔记无效？

简而言之，是因为您的笔记格式不正确。以下是一些快速排查方法：

1. 对于IoTeX上的Cyclone 1.0，您的笔记格式应以cyclone-IOTX-100000000000000000000000-1-N-0x开头。N是0到7之间的数字。如果不是，则需要查看缺少的部分；
2. 对于Cyclone 1.0，您需要在提款之前先选择IoTeX链。请参阅其他常见问题解答以了解详细信息；
3. 对于BSC上的Cyclone 2.0，您的笔记应以Cyclone-56-N-0x开头。N是8到10的数字。

**找回笔记的方法？**

1. 如果您通过桌面端进行存款操作，则笔记会通过浏览器默认下载下来，并存放在您的硬盘中。如果您没有将其删除，则它很可能仍在您的默认下载文件夹中
2. 您的浏览器对话框中。如果浏览器不清楚其缓存，您将在旋风协议网页底部看到您的笔记。**请注意：此存储模式并非永久性，您可能随时会丢失它，请妥善保存您的笔记！**
3. 如果您将笔记存入移动端，则您的笔记可能会在备忘录或是其他地方
4. 除此之外，如果您没有其他的保存笔记的方式，您很有可能已经丢失您的笔记...

丢失笔记怎么办？

笔记就像您的钱包私钥一样。如果丢失笔记，您将无法在旋风协议中进行提款操作。如果有人获得您的笔记，则他们可以很轻松地提取到您的资产！因此，请妥善保存您的笔记，就像保存您的钱包私钥一样！

为什么我没有收到空投？

旋风协议在登陆时投放了大量的空投，您可以阅读以下内容以获取更多详细信息：[https://docs.cyclone.xyz/cyc-token-roadmap#fair-launch-on-iotex-2021-q-1-completed](https://docs.cyclone.xyz/cyc-token-roadmap#fair-launch-on-iotex-2021-q-1-completed)

所有空投数据都在这里：[https://github.com/cycloneprotocol/airdrop-data](https://github.com/cycloneprotocol/airdrop-data)

请注意，由于以下原因，某些电报用户的推荐积分可能有所减少：

1. 推荐人没有使用电报机器人设置他们的钱包（他们也没有资格获得积分）
2. 帐户被检测为垃圾邮件发送者（类似帐户）
3. 推荐人未加入Cyclone Protocol群组

请继续关注BSC上的新空投活动！


# 소개

{% hint style="success" %}
These docs are in active development by the Cyclone Community.
{% endhint %}

![](/files/-MOs6YW1FPgMGoRLqBqc)

기본적으로 블록체인에서는 금액을 포함한 거래에 대한 기록들은 모두에게 공개되어있다. 이러한 거래 기록들은 Etherscan  같은 서비스를 통해 조회 수 있다. 따라서 특정 주소 정보만 알면 해당 주소의 자산이 추적 가능하며, 이를 통해 모든 거래를 이용해 on-chain 경제 활동들을 분석할 수 있다.  &#x20;

하지만 만약 거래에 대한 기록과 내 잔액과 같은 정보들을 모두에게 공개하고 싶지 않다면 어떻게 할까? 익명성과 프라이버시를 보호하면서 블록체인 상에서 거래를 할 수는 없을까?&#x20;

![](/files/-MQVTGVIWcsUE69ZZJJ0)

Cyclone은 이러한 문제점들을 해결하고 최적화된 경제적 인센티브를 제공하는 것을 목표로 한다. **Cyclone은 특정 체인이나 플랫폼에 종속적이지 않으면서 분산화된 Governance을 이용한 privacy-preserving 프로토콜이다. 이는 zkSNARKs을 이용하고 있으며, 입금자와 수령인의 on-chain 링크 없앰으로써, 모든 DeFi 프로젝트에서 이뤄지는 거래들에 대한 프라이버시 보호할 수 있다.** 이는 내부적으로 암호화폐 혹은 토큰을 예치할 수 있으며, 다른 주소로 이를 인출할 수 있게 하는 스마트 컨트랙트로 이루어져 있. 자산이 Cyclone 컨트랙트에서 인출될 때마다,  자산에 대한 예치 정보(e.g., 입금자)와 인출하는 사람과 연결이 불가능하다는 원리를 이용해서 익명성을 보장한다. &#x20;

Cyclone의 zkSNARKs 부분 [tornado.cash](https://tornado.cash/) 에서 검증된 구현물을 기반으로 하고 있으며, 현재 cross-chain 을 지원하 CYC 토큰 보유자들에 의해 분산화된 환경에서 관리되고 있다. 공통적으로 대부분의 DeFi Components에 적용 가능한 프라이버시 보호 솔루션으로서 가치를 가지고 있다. &#x20;

## **크로스체인**

Cyclone은 빠르고 EVM-compatible한 [IoTeX](https://iotex.io)  블록체인에 성공적으로 런칭을 했으며, [https://cyclone.xyz/stats](https://cyclone.xyz/analytics) 에 따르면 익명성 에 사람들로 하여금 참여할 유인을 제공한 유동성 마이닝 덕분에, 초기 4가지의 익명성 풀이 런칭 후 몇일만에 **3+ million USD TVL** 을 달성하였다.&#x20;

Cyclone은 Q1/Q2 2021에 Ethereum, Binance Smart Chain([**BSC**](https://www.binance.org/en/smartChain)), 그리고 다른 EVM-compatible한 퍼블릭 블록체인과 같은 다양한 자산에 대한 익명성 풀을 런칭하는 것을 목표로 하고 있다. 그 외에 Polkadot과 다른 non-EVM 퍼블릭 블록체인에 런칭하는 것 또한 Q3 2021에 계획하고 있다. 이 때, CYC는 모든 Cyclone Protocol에서 사용가능한 토큰이다.  &#x20;

## **분산 거버넌스**

Cyclone 프로토콜은 탈중앙화되어서 관리된다. **Governance DAO는 IoTeX 블록체인에 존재하며, 서로 다른 블록체인에 존재하는 익명성 풀들은 IoTeX 블록체인** [**ioTube**](http://tube.iotex.io/)**와 같은 브릿지들을 통해서 연결된다.** 이 Governance DAO 는 Q2 2021 초기에 활성화될 계획이다.&#x20;

CYC holder 들 다음과 같은 권리들을 부여받게 된다:

* 어떠한 블록체인을 다음으로 지원할 것인
* 어떠한 자산에 새로운 익명성 풀을 런칭할 것인지
* 기존의 익명성 풀에 대한 파라미터 업데이(e.g., 하루당 CYC 마이닝 금)
* 새로운 유동성 풀의 런칭&#x20;
* 기존의 유동성 풀에대한 파라미터 업데이트 (e.g., 하루당 CYC 마이닝 금액)
* 또 다른 CYC Token Economy&#x20;

## **Yield Aggregation이 있는 DeFi를 위한 범용 개인 정보 보호 계층**

Cyclone 프로토콜은 단순한 토큰의 mixer가 아니다. Cyclone 프로토콜은 세계 최초로 익명성 풀에 수익성 있는 DeFi 요소들을 합친 프로토콜이며, 모든 DeFi 서비스 위에 올라가서 프라이버시 보호에 이용 수 있다.  이것은 전 세계적인 프라이버시 계층을 모든 DeFi 서비스에 올리는것을 목표로 하고 있으며, 사용자들로 하여금 익명성/유동성 풀에 참여하면서 내재되어 있는 Defi Components을 통해 이자 수익을 얻을 수 있도록 설계되어 있다.


# 작동 원리

## 개인 정보 보호 거래를 위한 zkSNARK

![](https://github.com/tornadocash/tornado-core/raw/master/docs/diagram.png)

Cyclone은 굉장히 단순한 동작 원리를 가지고 있다. 유저가 암호화폐를 Cyclone 풀에 예치하면, 이후에 같은 풀로부터 이를 인출할 수 있는데, 이 때 예치된 토큰에 대한 기록이 가려지게 된다. 예치할 때, 유저는 해시로 이루어진 "비밀 정보" (commitment)와 예치된 금을 Cyclone 스마트 컨트랙트에 보내게 된다. 이 컨트랙트는 예치된 금액을 받고, 비밀 정보(commitment)을 예치 리스트에 추가다.&#x20;

그 이후 유저가 인출을 하기로 했을 때에는, deposit 할때 제출되었던 아직 사용되지 않은 비밀 정보를 통해 증명(proof)을 제공한다. zkSNARK 기술은 해당 비밀 정보가 어떤 예치에 해당되는지 특정하지 않으면서 증명이 올바른 확인할 수 있다. 스마트 컨트랙트는 증명을 확인한 뒤, 인출을 위해 예치되었던 자산을 특정 주소로 보낸다. 이 때, 외부 사람들은 어떤 인출이 어떤 예치금으로 부터 비롯되는지 알 수 없다.&#x20;

좀 더 구체적으로 이해하기 위해서는,  [cryptographic review](https://tornado.cash/Tornado_cryptographic_review.pdf) 을 참고하라.

## 신뢰할 수 있는 설정

우리는 익명성 팀으로써, 완전히 투명하고 안전한 Cyclone의 런칭을 목표로 한다. 모든 것은 오픈 소스로 공개되어 있어 확인이 가능하다. 우리는 tornado.cash에서 사용되는 이미 검증된 zkSNARKs 의 구현물([implementation](https://github.com/tornadocash/tornado-core/releases/tag/v2.1)) 을 적용했다 -- [circuit](https://tornado.cash/Tornado_circuit_audit.pdf), [smart contracts](https://tornado.cash/Tornado_solidity_audit.pdf). 뿐만 아니라, 우리는 이미 이더리움에서([well on Ethereum](https://medium.com/@tornado.cash/the-biggest-trusted-setup-ceremony-in-the-world-3c6ab9c8fffa#43d9)) 성공적으로([successful](https://ceremony.tornado.cash/)) 사용되고 있는 `Trusted Setup MPC` 을 사용하고 있다.&#x20;


# 익명풀

{% hint style="success" %}
이 페이지는 지금까지 런칭된 모든 Cyclone 프로토콜의 익명성 풀을 나열하였다. **새로운 풀의 런칭은 투표를 통해서 진행될 것이다.**&#x20;
{% endhint %}

## 지오메트리 풀（Geometry Pools）

지오메트리 풀은 익명 마이닝 v2(AMv2) 및 유동성 마이닝(LM)을 통해 Polygon 블록체인에서 시작됩니다. CYC-MATIC 쌍의 유동성 채굴은 매일 20 CYC를 생산합니다.

![](/files/-MfRXhZDZfcdiAdSIzar)

| 풀 이름     | 예치 단위        | 자산의 종류      | 생애 주      | AMv2를 통한 일일 CYC | 시작 시간       |
| -------- | ------------ | ----------- | --------- | --------------- | ----------- |
| Pentagon | `1,000`MATIC | Coin        | `90` Days | `0.06`          | `7/27/2021` |
| Hexagon  | `1,000`USDC  | ERC20 Token | `90` Days | `0.03`          | `7/27/2021` |
| Octagon  | `2` QUICK    | ERC20 Token | `90` Days | `0.03`          | `7/27/2021` |

**ERC20 토큰 풀의 경우 2개의 MATIC("코인 명칭"으로 알려짐)가 자산과 함께 풀에 예치되며, 이는 향후 작업을 위한 가스 수수료로 인출 주소로 전액 환불됩니다.** 이것은 사용자가 일반적으로 새 주소인 출금 주소에서 ERC20 자산을 추가로 이동할 수 있도록 하는 편리한 기능입니다.

## 쿠키 풀（Cookie Pools）

Cookie Pools has replaced Fish Pools (Deprecating) and EarlyBirds Pools (Deprecating), and are launched on IoTeX blockchain with Anonymity Mining v2 (AMv2) and Liquidity Mining (LM). Liquidity mining of CYC-BNB pair produces 20 CYC every day.

![](/files/-M_PxQVvtbHVV9fuEs7h)

| 풀 이름          | 예치 단위            | 자산의 종류      | 생애 주      | AMv2를 통한 일일 CYC | 시작 시간      | 마지막 리필      |
| ------------- | ---------------- | ----------- | --------- | --------------- | ---------- | ----------- |
| Biscuit       | `50,000` IOTX    | Coin        | `90` Days | `0.2`           | `5/9/2021` | `8/12/2021` |
| Snickerdoodle | `500,000`IOTX    | XRC20 Token | `90` Days | `1`             | `5/9/2021` | `8/12/2021` |
| Gingersnaps   | `2,000,000` VITA | XRC20 Token | `90` Days | `0.05`          | `5/9/2021` | `8/12/2021` |

**XRC20 토큰 풀의 경우 100 IOTX("코인 명칭"으로 알려짐)가 자산과 함께 풀에 예치되며, 이는 향후 운영을 위한 가스 수수료로 인출 주소로 전액 환불됩니다.** 이것은 사용자가 일반적으로 새 주소인 출금 주소에서 XRC20 자산을 더 이동할 수 있도록 하는 편리한 기능입니다.

## 로봇 풀 (Robot Pools)&#x20;

로봇 풀(Robot pools) 은 익명성 마이닝 version 2(AMv2)와 유동성 마이닝 (LM)과 함께 BSC 블록체인에 런칭되었다. CYC-BNB 쌍에 대한 유동성 마이닝을  통해 하루에 25 CYC 이 분배된다.

![](/files/-MUz1BvKVFVaZ94o2FGB)

| 풀 이름   | 예치 단위          | 자산의 종류      | 생애 주      | AMv2를 통한 일일 CYC | 시작 시간       | 마지막 리필      |
| ------ | -------------- | ----------- | --------- | --------------- | ----------- | ----------- |
| C3PO   | `100` BNB      | Coin        | `90` Days | `3`             | `3/17/2021` | `9/24/2021` |
| R2D2   | `10,000` BUSD  | BEP20 Token | `90` Days | `1`             | `3/17/2021` | `9/24/2021` |
| BB8    | `25,000`  IOTX | BEP20 Token | `90` Days | `0.25`          | `3/17/2021` | `9/24/2021` |
| Jonny5 | `3` CYC        | BEP20 Token | `90` Days | `2`             | `3/20/2021` | `9/24/2021` |
| BTCB   | `0.25` BTCB    | BEP20 Token | `30` Days | `0.01`          | `5/21/2021` | -           |
| ALPACA | `8000` ALPACA  | BEP20 Token | `30` Days | `0.01`          | `5/21/2021` | -           |
| BUNNY  | `60` BUNNY     | BEP20 Token | `30` Days | `0`             | `5/21/2021` | -           |

**BEP20 토큰에 대한 풀에서는 0.1 BNB 가 풀의 자산들과 함께 예치될 것이며, 이는 인출을 할 때 필요한 gas fee로서 사용되며 이후에 인출 주소 환불된다.** 이는 편리하게  BEP20 자산을 완전히 새로운 주소로도 (잔이 0이어서 gas fee을 낼 수 없는 새로운 주소)옮길 수 있도록 해준다.       &#x20;

## 커피 풀(Coffee Pools)

커피 풀(Coffee pools) 은 익명성 마이닝 version 2(AMv2)와 유동성 마이닝 (LM)과 함께 이더리움 블록체인에 런칭되었다. CYC-ETH 쌍에 대한 유동성 마이닝을 통해 하루에 25 CYC이 분배된다. &#x20;

![](/files/-MVXeknlTDlhJJ-joLiF)

| 풀 이       | 예치 단               | 자산의 종       | 생애 주      | AMv2를 통한 일일 CYC | 시작 시간       | 마지막 리필      |
| --------- | ------------------ | ----------- | --------- | --------------- | ----------- | ----------- |
| Latte     | `100` ETH          | Coin        | `90` Days | `3`             | `4/16/2021` | `9/24/2021` |
| Espresso  | `100,000` USDT     | ERC20 Token | `90` Days | `3`             | `4/16/2021` | `9/24/2021` |
| Cold Brew | `100`  TORN        | ERC20 Token | `90` Days | `0.15`          | `4/16/2021` | `9/24/2021` |
| Arabica   | `10` ETH           | ERC20 Token | `90` Days | `0.3`           | `6/15/2021` | -           |
| Doppio    | `2` ETH            | ERC20 Token | `90` Days | `0.06`          | `6/15/2021` | -           |
| SHIB      | `200,000,000` SHIB | ERC20 Token | `90` Days | `0.01`          | `6/15/2021` | -           |
| LINK      | `50` LINK          | ERC20 Token | `90` Days | `0.01`          | `6/15/2021` | -           |
| MATIC     | `1,000` MATIC      | ERC20 Token | `90` Days | `0.01`          | `6/15/2021` | -           |

**ERC20 토큰에 대한 풀에서는 0.2 ETH 가 풀의 자산들과 함께 예치될 것이며, 이는 인출을 할 때 필요한 gas fee로서 사용되며 이후에 인출 주소 환불된다.** 이는 편리하게 ERC20 자산을 완전히 새로운 주소로도 (액이 0이어서 gas fee을 낼 수 없는 새로운 주소)옮길 수 있도록 해준다.   &#x20;

## 물고기 풀(Fish Pools)-비추천

물고기 풀(Fish pools) 은 익명성 마이닝 version 1(AMv1)과 유동성 마이닝(LM)과 함께 IoTeX 블록체인에 런칭되었다. CYC-IOTX 쌍에 대한 익명성 마이닝을 통해 하루에 25 CYC이 분배된다.&#x20;

![](/files/-MV2Ny27oq2q1wxzRhrF)

| 풀 이                  | 예치 단            | 자산 종 | 생애 주      | AMv1를 통한 일일 CYC            |
| -------------------- | --------------- | ---- | --------- | -------------------------- |
| **Pool 1 (Squid)**   | `1,000` IOTX    | Coin | Perpetual | Depends on num of deposits |
| **Pool 2 (Dolphin)** | `10,000` IOTX   | Coin | Perpetual | Depends on num of deposits |
| **Pool 3 (Shark)**   | `100,000` IOTX  | Coin | Perpetual | Depends on num of deposits |
| **Pool 4 (Whale)**   | `1,000,000`IOTX | Coin | Perpetual | Depends on num of deposits |

## 얼리버드 풀 (EarlyBirds Pools) (Deprecating)

얼리버 풀(EarlyBirds Pools) 은 익명성 마이닝 version 1(AMV1)과 유동성 마이닝(LM)과 함께 IoTeX 블록체인에 런칭되었다. CYC-IOTX 쌍에 대한 익명성 마이닝을 통해 하루에 25 CYC이 분배된다. 이들은 초기 Cyclone 프로토콜의 런칭을 위해서 사용됬으며 지금은 depcreated 되었다. 다른 자산으로 옮기는 것을 추천한다.&#x20;

![](/files/-MVXf5FmHB_n-kyi1fu6)


# 토큰 이코노미

## Overview

Cyclone Protocol is fueled by the CYC token, which is designed to incentivize **anonymity providers**, **liquidity providers**, and **users**. **CYC is NOT pre-mined or pre-allocated.** Those that contribute to Cyclone will earn CYC.

* **Total Supply:** 50,000, fixed
* **Circulating Supply:** \~6,000 (see <https://cyclone.xyz/analytics> for the latest info)
* **CYC Mint**
* * **Genesis anonymity pools will be provisioned** when launch on a blockchain
  * **Opening of additional anonymity pools will have to go through community vote**
  * **Anonymity Mining:** Coins/tokens are rewarded to ones who deposit coins/tokens into anonymity pools and keep them there for a while. There are [two](/korean/cyc-token/anonymity-mining-v1) [versions](/korean/cyc-token/anonymity-mining-v2) of anonymity mining that mint CYC in different ways.
  * **Liquidity Mining**: CYC is rewarded to users who provides liquidity for CYC on DEX (Decentralized Exchanges).
* **CYC Utility**&#x20;
  * **Use Anonymity Pool:** when one uses the anonymity pool to gain privacy, a certain portion of CYC will be burned.
  * **Decentralized Governance:** CYC holders are entitled to govern the Cyclone Protocol.

![](/files/-MR8m76BEAlMl5cgXbzE)

## Roles and Rewards

There are four roles in Cyclone Protocol.

| Roles                  | How To Become                                                                  | Benefits                |
| ---------------------- | ------------------------------------------------------------------------------ | ----------------------- |
| **Anonymity Provider** | Provide anonymity by depositing tokens and letting them stay there for a while | Anonymity mining reward |
| **User**               | Deposit-and-withdraw tokens for transactional privacy                          | Gain privacy            |
| **Liquidity Provider** | Bond coins/tokens + CYC to DEX to provide liquidity of CYC                     | Liquidity mining reward |
| **Governors**          | CYC holders who decide how the protocol evolves                                | Certain rights          |

## CYC Token

CYC Token is issued on multiple blockchains and fully connected via the bridge. The CYC contract addresses are different chains are:

* IoTeX `io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh`&#x20;
* BSC `0x810ee35443639348adbbc467b33310d2ab43c168`
* Ethereum `0x8861cff2366c1128fd699b68304ad99a0764ef9a`&#x20;

## Liquidity and Anonymity Mining

Please refer to the following sections for details.

* Liquidity Mining: <https://docs.cyclone.xyz/cyc-token/liquidity-mining>
* Anonymity Mining v1: <https://docs.cyclone.xyz/cyc-token/anonymity-mining-v1>
* Anonymity Mining v2: <https://docs.cyclone.xyz/cyc-token/anonymity-mining-v2>


# Liquidity Mining (LM)

### Liquidity Mining (유동성 마이닝)&#x20;

![](/files/-MVY48g_cK5LimI7zVEw)

* CYC은 [Uniswap](https://uniswap.org/), [Pancake](https://pancakeswap.finance/), 그리 [mimo](https://mimo.exchange/pool) 와 같은 다른 블록체인에 있는 DEX을 통해 각 CYC-ETH (TBD), CYC-BNB and CYC-IOTX 와 같은 풀 토큰을 생성하면서 공급될 수 있다.&#x20;
* 매일 생성되는 유동성 리워드를 받기 위해서 풀 토큰을 예치할 수 있다.&#x20;
* 매일 생성되는 유동성 리워드는 각 유동성 pair 마다 20 CYC 토큰으로 이루어져 있고, 이 값은 탈중앙화되어있는 거버넌스에 따라 바뀔 수 있다.&#x20;
* 매일 유동성 풀에 있는 CYC 토큰들은 풀토큰을 스테이킹한 사람들에게 비례적으로 분배된다.&#x20;
* 유동성 마이너들은 CYC 리워드를 언제나 클레임할 수 있고, 풀토큰을 언제나 스테이킹/언스테이킹 할 수 있다.&#x20;

![](/files/-MRyFGsRIGmSf9okCPDr)

### 수수

* IoTeX에 유동성 마이닝을 할 때에는 수수가 존재하지 않는다.&#x20;
* BSC에서 유동성 마이닝을 할 때에는, 예치된 풀토큰의 0.5%가 CYC 을 다시 사서 소각하기 위해서 청구 된다.&#x20;


# Anonymity Mining v1 (AMv1)

{% hint style="success" %}
Anonymity Mining v1 (AMv1) has been used for anonymity pools on IoTeX ( <https://cyclone.xyz/iotx>), which will be **gradually deprecated in next 3 months**. All newly launched pools are based on Anonymity Mining v2 (AMv2).
{% endhint %}

### Anonymity Mining v1 Overview

Anonymity Mining v1 is composed of two parts mint-n-burn and anonymity fee. The entire process look like below.

![](/files/-MRsWPhL6-P_xd7FWKKK)

### Mint-n-Burn

**Everyone can mint or burn CYC!** Just deposit to the following pools and a certain amount of CYC will be minted to you. On the contrary, when withdraw, a certain amount of CYC will be bought back from DEX (e.g., [mimo](http://mimo.finance/)) using IOTX withdrawn, and immediately burned.

**Deposit and Mint**

| Deposit IOTX | Mint CYC                                    |
| ------------ | ------------------------------------------- |
| `D`          | `a * 0.1D / CYCPrice` (MAX Limit see below) |

Burn and withdraw

| Buy back CYC using IOTX | Burn (CYC)            | Total Withdraw (IOTX) |
| ----------------------- | --------------------- | --------------------- |
| `a * 0.1D`              | `a * 0.1D / CYCPrice` | `(1-0.1a-0.01)D`      |

Pool information

| Pool                 | **Denomination (IOTX)** | **MAX MINT** | MAX Num of Deposits |
| -------------------- | ----------------------- | ------------ | ------------------- |
| **Pool 1 (Squid)**   | `1,000`                 | `0.2`        | `8,000`             |
| **Pool 2 (Dolphin)** | `10,000`                | `2`          | `4,000`             |
| **Pool 3 (Shark)**   | `100,000`               | `20`         | `2,000`             |
| **Pool 4 (Whale)**   | `1,000,000`             | `200`        | `1,000`             |

`CYCPrice` is the price of CYC token in IOTX, and `a` is the bonus rate which starts with `2` and linear decrease with every a quarter of the max number of deposits allowed in the pool. e.g., `a = 2` if there are 380 deposits in the pool 1, and `a = 0.5` if there are 5300 deposits in the pool.

For example, if `CYCPrice = 1,000 IOTX` and `a = 1`, the table above looks like below

| Pool                 | **Denomination (IOTX)** | CYC Minted/Burned per Deposit/Withdraw |
| -------------------- | ----------------------- | -------------------------------------- |
| **Pool 1 (Squid)**   | `1,000`                 | `0.1`                                  |
| **Pool 2 (Dolphin)** | `10,000`                | `1.2`                                  |
| **Pool 3 (Shark)**   | `100,000`               | `13`                                   |

And if `CYCPrice = 1 IOTX`, the table above looks like below

| Pool                 | **Denomination (IOTX)** | CYC Minted/Burned per Deposit/Withdraw |
| -------------------- | ----------------------- | -------------------------------------- |
| **Pool 1 (Squid)**   | `1,000`                 | `2`                                    |
| **Pool 2 (Dolphin)** | `10,000`                | `20`                                   |
| **Pool 3 (Shark)**   | `100,000`               | `200`                                  |

### Anonymity Fee

Whenever users use Cyclone Protocol, they pay a 1% fee of the underlying coins/tokens per withdraw for all pools, known as anonymity fee. The charged fees are added to the anonymity pool. This has the effect of splitting the aggregated withdrawal fees between all existing anonymity providers.

For example,

| Tx                                                                                                                          | Pool 1's Denomination | Total IOTX in Pool 1 |
| --------------------------------------------------------------------------------------------------------------------------- | --------------------- | -------------------- |
| Alice deposits 10,000 IOTX into pool 1                                                                                      | `10,000`              | `10,000`             |
| Bob deposits 10,000 IOTX into pool 1                                                                                        | `10,000`              | `20,000`             |
| Carl deposits 10,000 IOTX into pool 1                                                                                       | `10,000`              | `30,000`             |
| Bob withdraws, where he gets 9,900 IOTX back (assuming no burning for simplicity) and pays 100 IOTX as fee to the pool      | `10,050`              | `20,100`             |
| Carl withdraws, where he gets 9,949.5 IOTX back (assuming no burning for simplicity) and pays 100.5 IOTX as fee to the pool | `10,150.5`            | `10,150.5`           |
| Alice withdraws, where she gets 10,048.995 IOTX back (assuming no burning for simplicity) and pays 101.505 IOTX as fee      | `10,000`              | `101.505`            |

Thanks to the bonus rate`a` , anonymity providers can potentially get CYC as reward. For example, there were 100 deposits when Alice deposits to the pool, she got X CYC back. After a while, Alice decides to withdraw when there are 4000 deposits in the pool, she burns X/2 CYC to withdraw IOTX and keeps the other half as gain.

### How to Earn?

1\. Deposit and mint CYC\
2\. Earn pool denomination growth with users withdraw\
3\. Earn LP rewards + LP fee when join as LP\
4\. Deposit early to get more CYC and withdraw late to burn less. Earn the difference.


# Anonymity Mining v2 (AMv2)

{% hint style="success" %}
Anonymity Mining v2 (AMv2) has been used in anonymity pools on BSC ( <https://cyclone.xyz/bsc>).
{% endhint %}

### **Design Goals**

While Anonymity Mining v1 (AMv1) was used to launch the first anonymity pools on IoTeX, we are aware a **limitation of AMv1 - the number of CYC tokens a user mined** (by putting her asset into the anonymity pool) **is not proportional to how long he locks  her asset in the pool**, which is not the most effective way to reward long-term anonymity providers.&#x20;

In AMv2, we redesigned the anonymity mining to achieve the following two properties:

1. **The number of CYC mined is proportional to how long one locks one's asset in the pool** - the longer the asset stays in the pool, the more CYC anonymity providers obtains;
2. **Enforce the life span of each anonymity pool** (usually 90 days) **to encourage anonymity providers to shuffle their assets and deposit into a new pool**, to further improve the degree of privacy (since a pool with many long-term deposits but lacks short-term deposits/withdraws offers very limited degree of privacy).

### **Terminology**

When interacting with anonymity pools, one needs to understand the terminology the pools use to characterize themselves:

**Asset Denomination** is the number of coins or ERC20/XRC20/BEP20 tokens the pool provides anonymity. For example, the C3PO pool's primary asset is BNB, and its denomination is `100`, meaning each deposit/withdrawal is `100` BNB, exactly.

**Coin Denomination** describes an auxiliary feature for better usability. When a user deposits an asset such as BUSD into a pool, a small amount of native currency (e.g., `0.1` BNB) of the underlying blockchain will be deposited with the asset into the pool, **which will be fully refunded to the withdrawal address as the gas fee for the user**. For example, with `0.1` BNB deposited to her new address upon withdrawal, Alice can further transfer her BEP20 asset or invoke other smart contracts from this new address.

**CYC Denomination** is a small dynamic amount of CYC, which **ensures the amount of CYC Alice earns is proportional to how long her asset stays in the pool while not disclosing how long her asset remains in the pool to others**. This sounds contradicting but can be viewed through an example. When Alice deposits her asset + `0.1` BNB to the pool, she deposits `X` CYC according to CYC Denomination; she lets the asset stay in the pool and assumes `Y` CYC has been mined. Upon withdrawal, `(X + Y)` CYC will be sent back to Alice. Of course, Alice knows she earns `Y` CYC. Thanks to zkSNARK that disconnects the withdraw tx from the deposit tx, no one (except for Alice) knows that the upfront deposit is `X` CYC, and no one can calculate `Y` given `(X+Y)`. Therefore, no one knows how long the asset has been stay in the pool. Isn't it cool?

### **Anonymity Pools**

The following pools are launched using AMv2.

| Pool Name | Asset Denomination | Life Cycle | CYC per Day via AM | Total CYC via AM |
| --------- | ------------------ | ---------- | ------------------ | ---------------- |
| C3PO      | `100` BNB          | `90` Days  | `3`                | `270`            |
| R2D2      | `10,000` BUSD      | `90` Days  | `1`                | `90`             |
| BB8       | `25,000` IOTX      | `90` Days  | `0.25`             | `22.5`           |

A fixed amount of CYC such as `3` or `1` or `0.25` is given to all anonymity providers in each pools on a daily basis.

### **How It Works**

1. Deposit BNB (or BUSD or IOTX) into C3PO (or R2D2, BB8) pool, optionally deposit X CYC
2. Let BNB stays in the pool for N days
3. Withdraw BNB from the pool and obtain Y CYC (of course Y > X)

Below is an example demonstrating how AMv2 works. We ignore all fees for now to simplify this example.

| Day | Event                                                                              | Total CYC in Pool | Total BUSD in pool |
| --- | ---------------------------------------------------------------------------------- | ----------------- | ------------------ |
| `1` | Day starts                                                                         | `0`               | `0`                |
|     | Alice deposits `10,000` BUSD into the pool                                         | `0`               | `10,000`           |
| `2` | Day starts                                                                         | `1`               | `10,000`           |
|     | Bob deposits `10,000` BUSD into the pool, and pays`1` CYC                          | `2`               | `20,000`           |
| 3   | Day starts                                                                         | `3`               | `20,000`           |
| 4   | Day starts                                                                         | `4`               | `20,000`           |
|     | Alice withdraws `10,000` BUSD and obtained `2` CYC                                 | `2`               | `10,000`           |
| 5   | Day starts                                                                         | `3`               | `10,000`           |
|     | Bob withdraws `10,000` BUSD and obtained `3` CYC (so his mining reward is `2` CYC) | `0`               | `0`                |

### **Fee**

**Upon the withdrawal of asset, the following will be charged:**

* `1.5%` of the CYC obtained is charged and burned immediately
* `0.5%` of the CYC obtained is given to relayer to compensate for the gas cost of the withdraw tx


# 스마트 컨트랙트

## 소스 코드

Cyclone Protocol의 스마트 계약은 GPL-3.0 라이선스에 따라 오픈 소스이며 <https://github.com/cycloneprotocol/cyclone-contracts에서> 찾을 수 있습니다.

## 감사 보고서

### ChainShield의 감사 보고서

큰 문제가 확인되지 않았습니다. 보고서의 5가지 낮은 영향 결과.

자세한 보고서는 다음에서 찾을 수 있습니다.

{% file src="/files/-MVwMB3sAAKGp9zma217" %}

### Slowmist의 감사 보고서

[Slowmist](https://www.slowmist.com/en/) 에서 확인된 주요 문제는 없습니다. 자세한 보고서는 다음에서 찾을 수 있습니다.

{% file src="/files/-MY3RKd1R4T7nq41E4hA" %}


# 배포 및 계약 주소

## Ethereum Mainnet

* Cyclone Token: `0x8861cff2366c1128fd699b68304ad99a0764ef9a`
* Aeolus LP Mining v2.1: `0xdc71bc29d12960a3ee5452fac6f033a1b8e756fb`
* Hasher: `0x949452e32db13a5771445cf20b304474b866202b`
* Verifier: `0x7C994FB3a8C208C1750Df937d473040c604292D6`
* UniswapV2 Router: `0x602b40bf327c10370483ae5ecde15a7bb480dcca`

**Anonymity Pools**

* Latte - 100 ETH - Pool: `0xd619c8da0a58b63be7fa69b4cc648916fe95fa1b`&#x20;
* Expresso - 100000 USDT - Pool: `0xa38b6742cef9573f7f97c387278fa31482539c3d`
* Cold Brew - 100 TORN Pool: `0x09f03488291063a8f3c67d2aab7002419d11c113`

## BSC Mainnet

* Cyclone Token:`0x810ee35443639348adbbc467b33310d2ab43c168`
* Verifier: `0x9286e9271bf497ec39b3fdaef53e38bfc6b4cf14`
* Aeolus LP Mining v2: `0x92a737097d711bec4c31351997254e98e5f0d430`
* PancakeSwap Router: `0x10ed43c718714eb63d5aa57b78b54704e256024e`

**Anonymity Pools**

* C3PO - 100 BNB Pool:`0x66b5e322dc31f8c7a33ffd23975163795f8d16c7`
* R2D2 - 10,000 BUSD Pool: `0xbe19d541389c9d3e03efc08f3d5008e8c9cc42a5`
* BB8 - 25,000 IOTX Pool: `0x79459751f6882868d1299bfa412428488b434541`
* Jonny5 - 3 CYC Pool: `0xd90a6bf8439ef7214cf00da83e926068b6a507ec`

## IoTeX Mainnet

* Cyclone Token: `io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh`
* Timelock: `io10jv5lvagcgyvzagdlymagucyp3sy9ykktkudth`
* GovernorAlpha:`io1w8n28wr5dpc2uh3pzvx4n402h0l2agmu67a26x`
* Aeolus LP Mining v2: `io1rgwa22h66ney8sclpyrdqxwy4n0czjztc2rpu0`
* Mimo Router: `io1z2wmt6y74ctc9l4y4ly73gkynp0p4haj2d326m`

**Anonymity Pools**

* Biscuit - 50,000 IOTX: `io13lp2c88eqanyjg3h4y2klyax5s28gfx9q0j4nv`
* Snickerdoodle - 500,000 IOTX: `io1j2nnwztawyd7cnp3x5vewf2wnrjlp4psz556kv`
* Gingersnaps - 2,000,000 VITA: `io1jm0rr385aw4vxqkzn4vx2y0s7ja80etexg7ucu`

## Polygon Mainnet

* Cyclone Token:`0xcFb54a6D2dA14ABeCD231174FC5735B4436965D8`
* Verifier: `0xb6e9ea062a7719846bc9e3e3ae8712e74faad376`
* Aeolus LP Mining v2: `0xA8c187d8773bc9E49A10554715Ff49Bdcf39d55D`
* QuickSwap Router: `0xFCb851Ad3D98BD241dbE395cA1E6080f489D4624`

**Anonymity Pools**

* Pentagon - 1,000 MATIC: `0x5194932AD0f889B1E31041b8006A58FF70A11F43`
* Hexagon - 1,000 USDC: `0x8e6e472e4a3f8b1951D2970f59B3944eFf707e10`
* Octagon - 2 QUICK: `0x517CeeE661b57ed7d5b615bF700cb307D87a025B`


# 로드맵

In 2021, there are four major milestones for Cyclone Protocols: fair launch on IoTeX, liftoff on BSC, propel on Ethereum, and auto drive for all.

## 모두를 위한 자동 주행(2021년 3분기/4분기, 진행 중)

#### 수익률 집계 w/ 다각화된 자산(2021년 3분기, 진행 중)

우리는 최고의 프로젝트에서 자산의 집계된 익명 풀을 산출하기 위해 노력하고 있습니다. 이러한 새로운 풀은 2021년 3분기에 커뮤니티 투표를 통해 출시될 익명 제공자를 위한 다중 자산 수익률을 생성할 가능성이 높습니다.

#### CYC 경제 개선(2021년 3분기, 계획)

Cyclone 프로토콜은 출시 이후 지속적으로 기본 토큰 경제를 개선하고 있습니다. 예를 들어, 커뮤니티의 제안은 비활성 익명 풀에 대한 CYC 생산량을 절반으로 줄이는 것을 제안하고 다른 제안은 CYC 교단을 더 투명하게 만들 것을 제안합니다. 경제성 향상 방안을 마련하기 위한 연구와 실험을 진행하고 있습니다.

#### 거버넌스 DAO(2021년 4분기, 계획)

거버넌스 DAO가 활성화되고 모든 서비스 계약의 소유권을 받아 사이클론 프로토콜을 완전히 자율적으로 만듭니다. 유권자는 다른 많은 이니셔티브 중에서 새로운 익명성 풀에 대한 교차 체인 투표, 매개변수 업데이트를 권장합니다.

#### DeFi 앱의 공통 계층(2021년 4분기, 계획)

2021년 4분기에는 모든 주류 DeFi 앱 및 제품에 익명성을 제공하여 파트너십을 구축하여 Cyclone Protocol 채택에 집중할 것입니다.

## Propel on Ethereum(2021년 2분기, 완료)

Ethereum에서 익명 마이닝 및 유동성 마이닝으로 Cyclone 프로토콜을 시작합니다. 최고의 DeFi 앱을 위한 새로운 풀이 출시되었습니다. ETH의 CYC 토큰은 [ioTube](https://iotube.org/) 와 같은 브리지를 통해 1:1 비율로 BSC 및 IoTeX 간에 원활하게 교차 사슬 전송될 수 있습니다.

자세한 내용은 여기를 참조하세요 -<https://snapshot.org/#/realcycloneprotocol.eth/proposal/QmYRA4sNuZWnPjsB97qZAayiqVa6pnqBCLtLpnNQCjyP6G>

커뮤니티 투표를 통해 Ethereum의 익명 풀에서 더 많은 자산을 지원합니다.

## BSC의 이륙(2021년 2분기, 완료)

BSC에서 익명 마이닝 및 유동성 마이닝으로 사이클론 프로토콜을 시작합니다. BSC의 CYC 토큰은 [ioTube](https://iotube.org/)와 같은 브리지를 통해 1:1 비율로 ETH 및 IoTeX 간에 원활하게 교차 체인 전송될 수 있습니다. 자세한 내용은 여기를 참조하세요 -<https://cycloneprotocol.medium.com/tbd-on-chains-562261eac886>.

커뮤니티 투표를 통해 BSC의 익명 풀에서 더 많은 자산을 지원합니다.

## 아이오텍스 공정 출시(2021년 1분기, 완료)

공정한 출시는 항상 암호화폐의 성배로 찬사를 받아왔습니다. 우리는 커뮤니티를 위한 공정한 출시를 강력히 지지합니다. **CYC 토큰은 초기에 가격이나 터무니없는 평가 없이 커뮤니티 서포터에게 배포됩니다.**

CYC 토큰 계약을 배포할 때 **2021 CYC(예, 2021!)**&#xAC00; 발행되어 에어드롭 및 행운권 추첨을 위해 예약됩니다.


# 탈중앙화 거버넌스

Cyclone의 governance 는 [Compound Governance Model](https://compound.finance/docs/governance) 을 기반으로 만들어다. Cyclone은 CYC 토큰 홀더들에 의해서 동작하는데, 이 동작 요소로는 CYC 토큰, Governance module(Governor Alpha), 그리고 Timelock이 존재한다. 뿐만 아니라, 이러한 스마트 컨트랙트들은 커뮤니티로 하여금 Cyclone의 새로운 변화를 제안하고 투표하고 구현하는 것을 가능하게 한다. 제안들은 새로운 asset을 추가하거나, 현재의 토큰 풀을 최적화하거나, CYC을 mint/burn 하는 비율을 조정하는 등이 있을 수 있다. &#x20;

![](/files/-MNeNYZH_9yvoogvnnn6)

이러한 거버넌스 DAO는 Q2 2021부터 활성화될 계획이다.&#x20;

최소 아래와 같은 권리들이 CYC 토큰 홀더들에게 부여받게 된다:

* 어떠한 블록체인을 다음으로 지원할지
* 어떠한 새로운 자산 익명성 풀을 런칭할지
* 기존의 익명성 풀의 파라미터들을 업데이트 할지
* 새로운 유동성 풀을 런칭할지
* 기존의 유동성 풀의 파라미터들을 업데이트 할지
* 다른 CYC 토큰 이코노미들&#x20;


# Analytics

## Dashboard

You are welcome to use the dashboard here - <https://cyclone.xyz/analytics> - which shows the $CYC supply, number of deposits, pool value in USD along with other information, in real time.

![](/files/-MS03pKKGMgZKh-WX2qq)

## GraphQL

We have decoded and indexed Cyclone contracts data so every one can run powerful analysis with simple GraphQL queries through <https://analytics.cyclone.xyz/playground>. Some typical queries look like below.

![](/files/-MRT7t86WTEoLuibF46g)

### Total IOTX Deposited in All Pools

`query { tokensInPoolPerDay(count: 7) { name values { timestamp value } } }`

### Total IOTX Deposited and the Fee Associated

`query { total { iotx fee } }`

### Total IOTX Deposited per Day

`query { totalPoolPerDay(count: 7) { timestamp value } }`

### Points a User Gets for the airdrop

`query { airdropScore(address: "io1tmt2vp28afp2vd3h598n0lwu6sj3lyc64apjw3") }`

### 15 Luckiest Deposits in Pool 1

`query { luckyDrawTopN(poolAddress: "io1rqm2keejw4jypgl0w6hr96r054ns63u0hqrfuy", n: 15) { hash address method } }`

### 15 Luckiest Deposits in Pool 2

`query { luckyDrawTopN(poolAddress: "io1gkeeljp4grwskgq3tl2xqglqy546nhhmytnqqp", n: 15) { hash address method } }`

### 15 Luckiest Deposits in Pool 3

`query { luckyDrawTopN(poolAddress: "io1mlcgsv4ma0t6gffpxg2gva3lwqnlj5msradxk6", n: 15) { hash address method } }`


# Development

이 페이지에서는 스마트 계약을 컴파일 / 배포 / 테스트 / 상호 작용하는 방법을 설명합니다. Cyclone 토큰, GovernorAlpha / Timelock, Aeolus 및 Cyclone (Coin, ERC20)의 네 가지 주요 계약이 있습니다.

### Preparation

1. Install truffle

   ```
   npm install -g truffle
   ```
2. Install dependencies

   ```
   npm install
   ```
3. Install `ioctl` - the command-line tool to interact with IoTeX blockchain

install ioctl following the instructions: <https://docs.iotex.io/developer/ioctl/install.html>

### Compile contracts

`npm run build:contract`

### Deploy contracts

* **CycloneToken**

1. Deploy a CycloneToken `ct`

```
ioctl contract deploy bytecode CYCLONETOKEN_BYTECODE ABI_PATH '{"_operator": "OPERATOR_ADDRESS", "_lp": "INITIAL_LP_ADDRESS"}'
```

* **Timelock & GovernorAlpha**

1. Deploy Timelock `tl`

```
ioctl contract deploy bytecode TIMELOCK_BYTECODE TIMELOCK_ABI_PATH '{"admin_": DEPLOY_ADMIN_ADDRESS, "delay_": DELAY_IN_SEC}'
```

&#x20;   2\. Deploy GorvernorAlpha `ga` (e.g., voting duration:3 days)

```
ioctl contract deploy bytecode GORVERNOR_BYTECODE GOVERNOR_ABI_PATH '{"timelock_": TIMELOCK_ADDRESS, "sushi_": CYCTOKEN_ADDRESS, "guardian_": ADMIN_ADDRESS, "votingDuration_": 51840}'
```

&#x20;  3\. Set Timelock's pending admin to GovernorAlpha `ga`

```
 ioctl contract invoke function TIMELOCK_ADDRESS TIMELOCK_ABI_PATH "setPendingAdmin" --with-arguments '{"pendingAdmin_": GOVERNOR_ADDRESS}'
```

&#x20;  4\. Accept Admin from GovernorAlpha `ga` triggered by guardian&#x20;

```
 ioctl contract invoke function GOVERNOR_ADDRESS GOVERNOR_ABI_PATH "__acceptAdmin"
```

* **Aeolus**

1. Add Liquidity for CYC/IOTX on MimoFactory and receive CYC-IOTX LP Token
2. Deploy an Aeolus `as` with `ct` address

```
ioctl contract deploy bytecode AEOLUS_BYTECODE ABI_PATH '{"_cycToken": CYC_TOKEN, "_lpToken" : LP_TOKEN}'
```

&#x20;   3\. Invoke `ct`.addMinter() to set `as` to be minters for CYC token

```
ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": AEOLUS_ADDRESS}'
```

* **CoinCyclone, ERC20Cyclone**

1. Deploy Hasher `hr`

   ```
   ioctl contract deploy bytecode HASHER_BYTECODE
   ```
2. Deploy Verifier `vr`

   ```
   ioctl contract deploy bytecode VERIFIER_BYTECODE
   ```
3. Deploy CoinCyclone `cc`, ERC20Cyclone `ec` linked by Hasher `hr` with `as`, `vr`, `ct`, `mf`and if necessary, XRC20 token address

   ```
   link CoinCyclone_BYTECODE/ERC20Cyclone_BYTECODE with HASHER_ADDRESS (use linker.js)
   ```

   ```
   ioctl contract deploy bytecode CoinCyclone_LINKED_BYTECODE CoinCyclone_ABI_PATH'{"_verifier": VERIFIER_ADDRESS, "_cyctoken": CYCTOKEN_ADDRESS, "_mimoFactory": MIMOFACTORY_ADDRESS, "_aeolus": AEOLUS_ADDRESS, "_initDenomination" : DENOMINATION_AMOUNT, "_denominationRound": DENOMINATION_ROUND, "_merkleTreeHeight" : MERKLETREE_HEIGHT, "_operator": TIMELOCK_ADDRESS}'
   ```

   ```
   ioctl contract deploy bytecode ERC20Cyclone_LINKED_BYTECODE ERC20Cyclone_ABI_PATH '{"_verifier": VERIFIER_ADDRESS, "_cyctoken": CYCTOKEN_ADDRESS, "_mimoFactory": MIMOFACTORY_ADDRESS, "_aeolus": AEOLUS_ADDRESS, "_initDenomination" : DENOMINATION_AMOUNT, "_denominationRound": DENOMINATION_ROUND, "_merkleTreeHeight" : MERKLETREE_HEIGHT, "_operator": TIMELOCK_ADDRESS, "_xrc20Token" : XRC20TOKEN_ADDRESS}'
   ```
4. Invoke `ct.addMinter()` to set `cc` and `ec` to be minters for CYC token

   ```
   ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": CoinCyclone_ADDRESS}'
   ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": ERC20Cyclone_ADDRESS}'  
   ```
5. Invoke `as`.addAddressToWhitelist() to set `cc` and `ec` to be whitelists for Aeolus to invoke `addReward()`&#x20;

   ```
   ioctl contract invoke function AEOLUS_ADDRESS AEOLUS_ABI_PATH "addAddressToWhitelist" --with-arguments '{"addr": CoinCyclone_ADDRESS}'
   ioctl contract invoke function AEOLUS_ADDRESS AEOLUS_ABI_PATH "addAddressToWhitelist" --with-arguments '{"addr": ERC20Cyclone_ADDRESS}'
   ```

### Test contracts

1. node version `nvm use 11.15.0`
2. build zk circuits `npm run build`
3. if you want to use `test` network, just run `npm run test` (default).

   If you want to use `development` network,

   * modify truffle-config.js (uncomment development network)
   * run `ganache-cli i 1337`
   * run `npm run test`

### Interaction with Cyclone contracts \[Anonymity Mining]

1. Requirements
2. `nvm use 11.15.0`
3. `npm install -g npx`
4. Set up .env file
   * `cp .env.example .env`
   * `vi .env` - add your private key, deployed contract address and denomination value
5. Build zk circuits: `npm run build`. Note that if you want to build zk circuits (including verifier.sol, proof/verify-keys) locally, you need to:
   * `npm uninstall websnark`
   * `npm install websnark@"git+https://github.com/tornadocash/websnark.git#2041cfa5fa0b71cd5cca9022a4eeea4afe28c9f7"`
   * `npm run build:local` - It might take more than 10 minutes as it performs the trust-setup locally.
6. Deposit
   * Testnet

     `./client.js deposit IOTX|XRC20 --rpc http://api.testnet.iotex.one:80`
   * Mainnet

     `./client.js deposit IOTX|XRC20 --rpc http://api.iotex.one:80`
7. Withdraw
   * Testnet

     `./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.testnet.iotex.one:80 --relayer RELAYER_URL`
   * Mainnet

     `./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.iotex.one:80 --relayer RELAYER_URL`

### Interaction with Aeolus contract \[Liquidity Mining]

1. Add Liquidity for CYC/IOTX on MimoFactory and receive CYC-IOTX LP Token
2. Deposit&#x20;

* Approve CYC-IOTX LP Token

```
ioctl xrc20 approve AEOLUS_ADDRESS AMOUNT -c LPTOKEN_ADDRESS
```

* Deposit CYC-IOTX LP Token

```
ioctl contract invoke function AEOLUS_ADDRESS abi/Aeolus.json "deposit" --with-arguments '{"_amount": AMOUNT}'
```

&#x20;  3\. Withdraw&#x20;

```
ioctl contract invoke function AEOLUS_ADDRESS abi/Aeolus.json "withdraw" --with-arguments '{"_amount": AMOUNT}'
```

### Interaction with GovernorAlpha contract \[Governance]

1. Self-delegate or delegate your CYC token for governance. If you do not delegate your votes, the token will not be considered as voting power.&#x20;

```
ioctl contract invoke function CYCTOKEN_ADDRESS abi/CycloneToken.json "delegate" --with-arguments '{"delegatee": ADDRESS_YOU_WANT_TO_DELEGATE}' -s mainnet -y
```

&#x20;   2\. Propose a new change in cyclone contracts such as updateConfig, changeGovDAO, and updateVerifier. The proposer should have more than 1000 CYC Token. Voting will run for 3 days. -- Use [abi-encoder](https://adibas03.github.io/online-ethereum-abi-encoder-decoder/#/encode) to get encoded argument data.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "propose" --with-arguments '{"targets": [CYCLONE_ADDRESS], "values": [0], "signatures": ["updateConfig(uint256,uint256,uint256,uint256)"], "calldatas": ["..."], "description": "update configs in cyclone contract"}'
```

&#x20;   3\. During the 3 days of voting duration, token holders who self-delegate or delegate can cast votes for a certain proposal.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "castVote" --with-arguments '{"proposalId": 1, "support": true}'
```

&#x20;  4\. After 3 days of voting duration, if the proposal gets more than 4000 CYC votes, the proposer can queue the transaction into Timelock.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "queue" --with-arguments '{"proposalId": 1}'
```

&#x20;  5\. After the timelock delay, the proposer can execute the transaction in timelock.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "execute" --with-arguments '{"proposalId": 1}'
```

###


# Community

## Twitter&#x20;

<https://twitter.com/cycloneprotocol>

## Telegram

Announcement Channel - <https://t.me/cycloneprotocol>

Community Chat - [ ](< https://t.me/group>)[ ](< https://t.me/group>)<https://t.me/cyclonegroup>

## Medium Blogpost

{% embed url="<https://cycloneprotocol.medium.com/>" %}

## BitcoinTalk Thread

<https://bitcointalk.org/index.php?topic=5310841.0>


# A Step-by-Step Guide

## Anonymity Mining

### How to Deposit

<https://docs.cyclone.xyz/a-step-by-step-guide/step-by-step-how-to-deposit>

### How to Withdraw

<https://docs.cyclone.xyz/a-step-by-step-guide/step-by-step-how-to-withdraw>

## Liquidity Mining

<https://docs.cyclone.xyz/a-step-by-step-guide/how-to-liquidity-mining>


# How to Deposit

Working in progress

## Cyclone with ioPay Mobile App&#x20;

The official IoTeX wallet, ioPay, is available to download for mobile(iOS, Android, APK).

Download from <https://iopay.iotex.io>

![](https://lh3.googleusercontent.com/4sUoaG9r8KGTwMb9Vh03DovKK-ov8wV0itguOp_OHulcLuFNVXWGjL5WGfGomT7MQlz_wVGSZjTWQ6oKDjKLo0jjyMBdv5ya87d6KaxMXc4mGmlbSsdDFL5kfj3PfsRONZh1cSca)

### Step 1 - Create/Import Wallet on ioPay

**Create a new address**: create a wallet if you don't have one. When prompted, record your address, private key/mnemonic phrase.

**Import Wallet**: if you already have an IoTeX wallet, you may import it using your keystore file, private key/mnemonic phrase.

![](https://lh3.googleusercontent.com/alxRfGVg4-YY7GPSMUNpMzbWDHT4i01TxVWBeq7V6520Dr30Vc5V3Hyp9KENy5ACNkCtYtAvEEryIMPDxRVqVjpJvMM2oxHEcxySdZux7lwYDsUZW8ssH6iwehqL4H0Ke345qTDC)

### Step 2 - Prepare IOTX

You can use **deposit** on ioPay to view options of getting IOTX.

### Step 3 - **Open "Cyclone App" in “Discover”**&#x20;

![](https://lh3.googleusercontent.com/ty58p8TtKnwWk62UDMZvk3ea-Lu4_wXVGCvjiwGqqoHlRcyrxhGKmuJOtu9g4RcS1c3I4H8m848_8YW12V_yjdw5iwHwMLqCOyFh4kYUFxYV6T2EHC0JAmymETEkmMXA9WF9g3Rv)![](https://lh3.googleusercontent.com/PSCb26Mtoh8oL1IlZyxUtWV2_N7B8qVJHgbqCf16wGDMOQHzcB1PktSnyA-TSdMYnoSW50beq2IfXN-Uvo5JzTMl9difkOxu3s4Z_3bHqax8HO_9h90o5brlUdBnPvXytuoV59Js)

Click “More” if you cannot find the Cyclone icon shown above. Or, you can directly type or paste the Cyclone website url (<https://cyclone.xyz/>) in the top searching bar.

### Step 4 - Connect Wallet with Cyclone

![](https://lh4.googleusercontent.com/XgXox7_J2I-b8aklbaCAUgwjZdzBO1SLNHhU0WfXjfi1oExXOKYeNnX_rMyaKozrSK5-giZdZl7u9IS4Z19HxRNikwGlGCYhRoyxzQOrkkinzeTbYIarJf6kHJ0hXR8Ch6Eii_bO)

### Step 5 - Select a Pool and Click “DEPOSIT”

![](https://lh4.googleusercontent.com/_dZmoGT0FQbUfTosTjS7Dce3qIhpCWFiuyqERFWpDSr3onnVbCqGNywKP90RKaiRhtmqKMXd4Bjo6XekMTh3tj2VVwiUyUEdCZIYrG35LtAtJV5hToyVChWStW1LntKXuvaGqEkK)

### Step 6 - Prepare to Send Deposit

1. Click the copy icon at the end of the note and back it up on your phone out of ioPay (Important!! You will lose your fund if you don’t find your note)
2. Check the box of “I have backed up the note”, and paste your NOTE to the white border-box below.

![](https://lh6.googleusercontent.com/zEWP04qPsTsekV0zdqWZCWOCKHv6HTvrrOfazNv81xtovtKzh9NzAu_hfST72oo6kqs_pfx86xjgtqKvbZxgcAcHGtM8p4Wk-Uj7APa5in0wPxAE9Xqf9zMGoUXi0MNszldG-Wld)![](https://lh6.googleusercontent.com/XpNjrEtDY5bC5m3N_BU1DvR1TbQnYtj2pzRTYnOBm_HbpOKHZL26C4HudN8IJd54k0107eNu_7zDPVRQ2OOwAKO5b1eQVs9enff6Cn90JRhRVBo2QSzfWkJzPOcfnlPVRUb9-lKc)

### Step 7 - Click "SEND DEPOSIT"

![](https://lh6.googleusercontent.com/bqe3ZDzcFbbpE_X898D2KoFc4EJFSU7GlcGN4Xd1cxUoWktKRAtQkBtMwW8mAtGKCwQB3BKTf-uNxOOOmOXy43mebLrJIJjCkFYpfEd7aFbdRQsackUaOan2TK-Z1wlZe4XpJwT3)

### Step 8 - Confirm on ioPay to Sign Transaction and You are All Set

## Cyclone with ioPay Desktop

If you prepare using ioPay desktop, please follow these similar steps:

1. Download the ioPay desktop [https://iopay.iotex.io](https://iopay.iotex.io/)
2. Open ioPay Desktop&#x20;
3. Create a wallet or import wallet
4. Make sure you have enough fund in your wallet
5. Visit <https://cyclone.xyz/>
6. Click “Launch App” button
7. Select a pool, then click “DEPOSIT”.
8. Click the copy button to copy the NOTE&#x20;
9. Please make sure your NOTE backed up securely on your laptop/computer. The NOTE will be automatically downloaded as a txt file as well.
10. Click the checkbox of “I backed up the note”, and past your NOTE to the white border-box below.
11. Click “SEND DEPOSIT”&#x20;
12. Confirm on ioPay and sign the transaction
13. You are all set


# How to Withdraw

You can use ioPay mobile app or ioPay desktop to withdraw from Cyclone Protocol.

### Step 1 - Navigate to "Withdraw" Tab

![](/files/-MRxtJyp-Ii8gVn8z7WD)

### Step 2 - Paste Note to Validate

![](/files/-MRxte3SZaevKaelTWrx)

### Step 3 - Enter Your Address

You can always withdraw to the address you used for deposit. But if you intend to use Cyclone Protocol to shield your transaction, please deposit to a new address that has never been used.&#x20;

### Step 4 - Click "WITHDRAW" Button and Confirm the Withdraw

![](/files/-MRxuFe7NTi0pORFVkou)

The zkSNARKs proof is generated using the note your provided which will usually take 30 seconds to finish. If you hang on this page for more than 2 minutes, please refresh Cyclone App and retry.

### Step 5 - Relayer Invokes Cyclone Contract and Fund Your Address

The relayer will invoke Cyclone contract and fund your address in about 30 seconds.&#x20;


# How to Liquidity Mining

You can use ioPay mobile app or ioPay desktop to setup liquidity mining for Cyclone Protocol.

### Step 1 - Click "Mining" in Menu to Open Liquidity Mining Tab

![](/files/-MS05nM15A_S2fl5yJ9U)

### Step 2 - Click "ADD LIQUIDITY" to  Add Liquidity on mimo.exchange

Make sure you have sufficient $CYC and $IOTX in your wallet and click "Supply" to proceed. Once the transaction finishes, your $CYC and $IOTX are deposited to mimo for [Automated Market Maker](https://academy.binance.com/en/articles/what-is-an-automated-market-maker-amm) (AMM), and you will receive the pool token in your wallet.

You can always check [here](https://info.mimo.exchange/pairs/io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh) to get an idea about the current status of liquidity.

![](/files/-MS06HuN6mHDLPodOjQi)

### Step 3 - Come Back to Liquidity Mining Tab and Click "STAKE" and Confirm

By doing this, your pool tokens are staked into Cyclone's contract, and you start to earn $CYC! You can always check the upper section of the Liquidity Mining Tab to see how much $CYC you are earning and the current APY, e.g., 2,168%!

### Step 4 - Use "CLAIM" to Collect Your Liquidity Mining Reward

Whenever you want, click "CLAIM" to redeem $CYC you earned, which will be deposited to your wallet once the transaction is done.

### Step 5 - Use "UNSTAKE" to Withdraw Your Pool Token

If you are done with liquidity mining, click "UNSTAKE" to with your pool token to your wallet. Optionally, you can go back to <https://mimo.exchange/pool> to remove your liquidity to get back $CYC and $IOTX.


# Mining Guide

{% hint style="success" %}
Cyclone Protocol v2.0 Anonymity/Liquidity Mining Guide
{% endhint %}

Cyclone Protocol v2.0 is launching on the Binance Smart Chain (BSC). This article provides a step-by-step guide using MetaMask as an example. Other BSC-compatible wallets such as TokenPocket, TrustWallet are supported and can be used in the same way.

## Preparation: Connect your Metamask with BSC

1\. Install MetaMask

PC：<https://metamask.io/download.html>;iOS: Use Hong Kong or US ID and search for MetaMask in the AppStore to install;Android: Search MetaMask in Google Play to download;

![](/files/-MW8FzRj0bliQkFi2Wqw)

2\. Connect to the BSC Mainnet

Open MetaMask, set the password as required, save and confirm the mnemonic phrase, complete the new account creation/import;Click on the network and select "Custom RPC" to enter the deployment interface:

![](/files/-MW8G2nD6VTDzKnUP4du)

**Fill in the** **information** **as below** **to connect MetaMask to BSC**\
Network name: BSC Mainnet\
RPC URL: <https://bsc-dataseed.binance.org/\\>
Chain ID: 56\
Symbol: BNBBlock\
Explorer URL: <https://bscscan.com>

![](/files/-MW8G5FZA-5ak3PfKLB6)

3\. Deposit Assets into BSC Mainnet Wallet

Deposit $BUSD, $BNB, $BSC-Peg IOTX into BSC mainnet wallet and participate in Cyclone Anonymity Mining! The easiest way to deposit is to withdraw from your binance account. **Please make sure have at** **leave** **0.1 BNB** **in your MetaMask account,** as each deposit will have 0.1 BNB deposited together with your asset ($BNB, $BUSD or $IOTX) into the pool which will be fully refunded to your withdrawal address, and help you with further operations.

## Buy CYC from Pancake

* **`TBD`**

## Anonymity Mining - Deposit

1\. Go to cyclone website [https://cyclone.xyz](https://cyclone.xyz/) and launch app.

![](/files/-MW8GDdPK6s4YhZzMTxG)

2\. Select to "Binance Smart Chain" as shown below

![](/files/-MW8GPCc3D8i8p5fkECp)

3.Click ”Connect“ and select the wallet to be connected to. We select MetaMask as example in this guide.

![](/files/-MW8GbtTjxEg5vVbdc9y)

![](/files/-MW8GjdpbJCW8g_3hM8V)

4.Select the pool you want to participate in.

![](/files/-MW8GoRWhyWFKU0nYr_5)

5.Approve $BUSD/$CYC (or any token) spend by clicking the "Approve" button.

![](/files/-MW8Gv1Lh4PzeatV7_wG)

6.Click "Confirm", and the token spend authorization is complete!

![](/files/-MW8Gy_0Xq4LoGCjjsqu)

7.Make a deposit

After token authorization is approved , click "Deposit" to deposit your assets into the pool.

![](/files/-MW8H247Acm3YTsklU5-)

**Note:** **back up** **your note!**&#x43;opy the note, check the box, and paste your note into the text box.Click"Send Deposit" button and start anonymity mining!Be sure to record the note on paper or in keystore, and don't share it with anyone. If you lose your note, you will also lose the access to withdraw your deposit!

![](/files/-MW8H67coulw-zweCfI4)

## Anonymity Mining v2 - Withdraw

Enter "Withdraw" page, fill in your backup note and the recipient address, click "Withdraw" button on the bottom to complete it!

![](/files/-MW8HABFrL8BLa9E37WP)

## Liquidity Mining - Stake

1.Click "Mining" button on the website menu bar.

![](/files/-MW8HEiYafECuiAWOn9t)

2.Click "Add Liquidity" to enter [Pancake](https://pancakeswap.finance/)[swap](https://pancakeswap.finance/) page.

![](/files/-MW8HJSdJMMNfF5fTSGS)

3.Add in $CYC and $BNB to create $CYC/$BNB Liquidity Pair("LP") on Pancakeswap.

![](/files/-MW8HN4KFA6hzYvuMYzo)

4.Return to the mining interface, enter your participated LP amount and click "Stake" to complete it! Now you can start liquidity mining!

![](/files/-MW8HQFIoEkkdxKQTJYB)

## Liquidity Mining - Unstake

Renturn to the mining interface, enter the LP amount you want to unstake and click "Unstake" button to complete it!

![](/files/-MW8HTEWDK_1cugMnrwm)

## Cross-chain Transfer of $CYC

1.Download [ioPay](https://iopay-wallet.iotex.io/) wallet on IoTeX Network, open ioPay and click into the discovery page, click [ioTube](https://bsc-tube.iotex.io/bsc), the asset cross-chain bridge, to start $CYC transfer from IoTeX Network to BSC Mainnet.

![](/files/-MW8Hb6dteltjmHQBapm)

2.Click on the V4 preview to transfer assets from IoTeX Network to BSC Mainnet (V3 is for IoTeX and Ethereum Bridge).

![](/files/-MW8Hhwc5pTl5zVg4Bq-)

3.Choose asset $CYC in the drop-down list, enter the transfer amount, and fill in your BSC Mainnet wallet address to received the $CYC on BSC (it's your MetaMask BSC wallet address!)

![](/files/-MW8HpVFO5JKbACKbNBm)

4.Click “Convert” and wait for the confirmation. Your $CYC cross-chain transfer from IoTeX to BSC is complete!


# FAQ

## How can I withdraw IoTeX chain's deposit?

Steps

1. select IoTeX blockchain
2. switch to withdraw tab
3. paste your note
4. you should be good to go!

## Why can I vote?

You need to go to snapshot page to vote: <https://snapshot.org/#/realcycloneprotocol.eth/>

To make a valid vote, you need to have CYC in your wallet before the "snapshot" time listed on each vote.

Below is an example.

![](/files/-MW5wDNs6DLSQ-IG6S62)

## Why invalid note?&#x20;

In short, your note is not in the right format. Here are some quick ways to investigate

1. For V1 cyclone pools on IoTeX, your note should starts with cyclone-IOTX-100000000000000000000000-1-N-0x. N is a number from 0-7. If it is not, you need to see which part is missing.&#x20;
2. For v1 cyclone pools, you need to select iotex chain before withdraw. Please see the other FAQ for details.
3. For V2 cyclone pools on BSC, your note should starts with cyclone-56-N-0x. N is a number from 8 to 10.&#x20;

**Ways to find your note back?**&#x20;

1. if you deposited on a desktop, a note was saved to your desktop hardrive by downloading it from browser. If you didn't delete it, it is likely still there in your default downloads folder.&#x20;
2. Your browser session. You will see your note at the bottom of cyclone's website if browser does not clean its cache. **Please note this storage is not permanent and you may lose it anytime.**&#x20;
3. If you deposited on phone, you may have it saved to a note app or somewhere.&#x20;
4. Otherwise, you may have lost your note.

## Note is "valid", but I cannot withdraw

First, the note does not show invalid just because the format is valid. It does not mean the note is "valid" or good to withdraw. Only if you start withdraw with ZK proof and the contract will verify if the note is good.&#x20;

If you cannot withdraw, there are three possible reasons

1. the note is spent. You or someone withdraw with the note.
2. the note is invalid. You might have recorded the wrong note or you got a fake note from someone.
3. \[unlikely, but it happened] the chain has an issue to verify the note. If you believe your note is this case, you can talk to admin of your social group to get help.&#x20;

**Please don't leak your note anytime. If you leak, you may lose the fund.**&#x20;

## What happened if I lose my note?

Note is like your private key. If you lose it, you cannot withdraw it from cyclone. If anyone found your note, they can withdraw your fund easily as well. So please keep it in a secure place, just they way you keep your private key.

## Why didn't I receive airdrop?

Cyclone did a large amount of airdrop at time of its launch. You can read this for more details: <https://docs.cyclone.xyz/cyc-token-roadmap#fair-launch-on-iotex-2021-q-1-completed>

All airdrop data are here: <https://github.com/cycloneprotocol/airdrop-data>&#x20;

Please note that some telegram users referral points may have reduced due to the following reasons

1. referrals didn't set up their wallet with the telegram bot (they are not eligible to earn points either)
2. accounts were detected as spammers (similar accounts)
3. referrals didn't join the group

Please stay tuned for new airdrops on BSC.&#x20;


# Introduction

{% hint style="success" %}
These docs are in active development by the Cyclone Community.
{% endhint %}

![](/files/-MOs6YW1FPgMGoRLqBqc)

By default, your entire blockchain transaction history and balances are public. All transactions can be seen on block explorers like Etherscan. Anyone who knows that you own a particular address can quickly view your payments, trace the source of your funds, calculate your holdings, and analyze your on-chain activity.

But what if you did not want your history and balances to be publicly viewed by everyone? What if you wanted anonymity and privacy when it came to your transactions?

![](/files/-MQVTGVIWcsUE69ZZJJ0)

Cyclone is built to address these problems and aims to provide enhanced economic incentives. **Cyclone is a cross-chain, non-custodial, universal privacy-preserving protocol with the decentralized governance. Cyclone applies zkSNARKs to enable transactional privacy for all DeFi components by breaking the on-chain link between depositor and recipient addresses.** It uses a smart contract that accepts coins/tokens deposits, which can be withdrawn by a different address. Whenever an asset is withdrawn from Cyclone, there is no way to link the withdrawal to the deposit for absolute privacy.

While Cyclone's zkSNARKs part is based on the attested implementation of [tornado.cash](https://tornado.cash/), it offers unique values in **supporting cross-chain** and **being the universal privacy-preserving layer for almost all DeFi components** with **the** **decentralized governance** by CYC holders.

## **Cross-chain**

Cyclone has been launched firstly on [IoTeX](https://iotex.io) as it is a fast and EVM-compatible blockchain with an active community. Thanks to anonymity mining and liquidity mining that properly incentive contributions to the anonymity pools, the first four anonymity pools launched got **3+ million USD TVL in a few days**, according to [https://cyclone.xyz/stats](https://cyclone.xyz/analytics).

**Cyclone aims to launch multiple anonymity pools for various assets on Ethereum, Binance Smart Chain (**[**BSC**](https://www.binance.org/en/smartChain)**), and other EVM-compatible public blockchains in Q1/Q2 2021**. We will be looking at launching on Polkadot and other non-EVM public blockchains in Q3 2021. **CYC will be THE TOKEN for all instances of Cyclone Protocol.**

## **Decentralized Governance**

Cyclone Protocol is governed in a decentralized way. **The governance DAO lives on IoTeX blockchain while each anonymity pools live on different blockchains connected to IoTeX blockchain via bridges** (such as [ioTube](http://tube.iotex.io/)). We estimate the governance DAO will be activated in early Q2 2021.

At least the following rights are entitled to CYC holders:

* Which blockchain to support next
* Launch a new anonymity pool with a certain asset
* Update params of an existing anonymity pool, e.g., CYC to mine per day
* Launch a new liquidity pool
* Update params of an existing liquidity pool, e.g., CYC to mine per day
* Other token economics of CYC

## **Universal Privacy-preserving Layer for DeFi with Y**ield Aggregation

Cyclone Protocol is much more than a token mixer. Cyclone protocol is the world-first protocol that supports anonymity pools aggregating  yield-generating DeFi components, and it is the universal privacy-enhancement layer for all DeFi apps. It is envisioned to be a universal privacy layer for all DeFi components on various blockchains, **enabling users to participate in the anonymity/liquidity mining of CYC and harvesting profits from the underlying DeFi components**.


# How It Works

## zkSNARKs for Privacy-Preserving Transactions

![](https://github.com/tornadocash/tornado-core/raw/master/docs/diagram.png)

Cyclone is simple -- a user deposits cryptocurrency into a pool and later withdraws from the same pool, which obfuscates the deposited tokens' history. For deposits, the user sends a "secret" in the form of a hash (called a commitment) and the deposit amount to the Cyclone smart contract. The contract accepts the deposit and adds the commitment to its list of deposits.

Later, when the user decides to make a withdrawal, they provide proof via the same secret via an unspent commitment from the smart contract’s list of deposits. zkSNARKs technology allows this to happen without revealing which exact deposit corresponds to this secret. The smart contract checks the proof, and transfers the originally deposited funds to the address specified for withdrawal. An external observer will be unable to determine which deposit this withdrawal came from.

For an even deeper dive, please see the [cryptographic review](https://tornado.cash/Tornado_cryptographic_review.pdf).

## Trusted Setup

As an anonymous team, we value complete transparency and aim for a safe and smooth launch of Cyclone. Everything is open-source and verifiable -- we apply the exact zkSNARKs [implementation](https://github.com/tornadocash/tornado-core/releases/tag/v2.1) used by tornado.cash, which has been extensively audited ([circuit](https://tornado.cash/Tornado_circuit_audit.pdf), [smart contracts](https://tornado.cash/Tornado_solidity_audit.pdf)). In addition, we directly use the result from `Trusted Setup MPC` which is [successful](https://ceremony.tornado.cash/) and running [well on Ethereum](https://medium.com/@tornado.cash/the-biggest-trusted-setup-ceremony-in-the-world-3c6ab9c8fffa#43d9).


# Anonymity Pools

{% hint style="success" %}
This page lists all anonymity pools Cyclone Protocol has launched so far. **The opening of new pools will go through voting.**
{% endhint %}

### Geometry Pools

Geometry Pools are launched on Polygon blockchain with Anonymity Mining v2 (AMv2) and Liquidity Mining (LM). Liquidity mining of CYC-MATIC pair produces 20 CYC every day.

![](/files/-MfRXhZDZfcdiAdSIzar)

| Pool Name | Denomination | Type        | Life Cycle | CYC per Day via AMv2 | Launch Time |
| --------- | ------------ | ----------- | ---------- | -------------------- | ----------- |
| Pentagon  | `1,000`MATIC | Coin        | `90` Days  | `0.06`               | `7/27/2021` |
| Hexagon   | `1,000`USDC  | ERC20 Token | `90` Days  | `0.03`               | `7/27/2021` |
| Octagon   | `2` QUICK    | ERC20 Token | `90` Days  | `0.03`               | `7/27/2021` |

**For ERC20 token pools, 2 MATIC** (known as "Coin Denomination") **will be deposited with the asset into the pool, which will be fully refunded to the withdrawal address** as the gas fee for future operations. This is a convenient feature to allow the user to further move her ERC20 assets in the withdrawal address which is usually a new address.&#x20;

### Cookie Pools

Cookie Pools has replaced Fish Pools (Deprecating) and EarlyBirds Pools (Deprecating), and are launched on IoTeX blockchain with Anonymity Mining v2 (AMv2) and Liquidity Mining (LM). Liquidity mining of CYC-BNB pair produces 20 CYC every day.

![](/files/-M_PxQVvtbHVV9fuEs7h)

| Pool Name     | Denomination     | Type        | Life Cycle | CYC per Day via AMv2 | Launch Time | Last Refill |
| ------------- | ---------------- | ----------- | ---------- | -------------------- | ----------- | ----------- |
| Biscuit       | `50,000` IOTX    | Coin        | `90` Days  | `0.2`                | `5/9/2021`  | `8/12/2021` |
| Snickerdoodle | `500,000`IOTX    | XRC20 Token | `90` Days  | `1`                  | `5/9/2021`  | `8/12/2021` |
| Gingersnaps   | `2,000,000` VITA | XRC20 Token | `90` Days  | `0.05`               | `5/9/2021`  | `8/12/2021` |

**For XRC20 token pools,100 IOTX** (known as "Coin Denomination") **will be deposited with the asset into the pool, which will be fully refunded to the withdrawal address** as the gas fee for future operations. This is a convenient feature to allow the user to further move her XRC20 assets in the withdrawal address which is usually a new address.&#x20;

## Robots Pools

Robots pools are launched on BSC blockchain with Anonymity Mining v2 (AMv2) and Liquidity Mining (LM). Liquidity mining of CYC-BNB pair produces 20 CYC every day.

![](/files/-MUz1BvKVFVaZ94o2FGB)

| Pool Name | Denomination   | Type        | Life Cycle | CYC per Day via AMv2 | Launch Time | Last Refill |
| --------- | -------------- | ----------- | ---------- | -------------------- | ----------- | :---------: |
| C3PO      | `100` BNB      | Coin        | `90` Days  | `3`                  | `3/17/2021` | `9/24/2021` |
| R2D2      | `10,000` BUSD  | BEP20 Token | `90` Days  | `1`                  | `3/17/2021` | `9/24/2021` |
| BB8       | `25,000`  IOTX | BEP20 Token | `90` Days  | `0.5`                | `3/17/2021` | `9/24/2021` |
| Jonny5    | `3` CYC        | BEP20 Token | `90` Days  | `2`                  | `3/20/2021` | `9/24/2021` |
| BTCB      | `0.25` BTCB    | BEP20 Token | `30` Days  | `0.01`               | `5/21/2021` |      -      |
| ALPACA    | `8000` ALPACA  | BEP20 Token | `30` Days  | `0.01`               | `5/21/2021` |      -      |
| BUNNY     | `60` BUNNY     | BEP20 Token | `30` Days  | `0`                  | `5/21/2021` |      -      |

**For BEP20 token pools, 0.1 BNB** (known as "Coin Denomination") **will be deposited with the asset into the pool, which will be fully refunded to the withdrawal address** as the gas fee for future operations. This is a convenient feature to allow the user to further move her BEP20 assets in the withdrawal address which is usually a new address.&#x20;

## Coffee Pools&#x20;

Coffee pools are launched on Ethereum blockchain with Anonymity Mining v2 (AMv2) and Liquidity Mining (LM). Liquidity mining of CYC-ETH pair produces 20 CYC every day.

![](/files/-MVXeknlTDlhJJ-joLiF)

| Pool Name | Denomination       | Type        | Life Cycle | CYC per Day via AMv2 | Launch Time | Last Refill |
| --------- | ------------------ | ----------- | ---------- | -------------------- | ----------- | :---------: |
| Latte     | `100` ETH          | Coin        | `90` Days  | `3`                  | `4/16/2021` | `9/24/2021` |
| Espresso  | `100,000` USDT     | ERC20 Token | `90` Days  | `3`                  | `4/16/2021` | `9/24/2021` |
| Cold Brew | `100`  TORN        | ERC20 Token | `90` Days  | `0.15`               | `4/16/2021` | `9/24/2021` |
| Arabica   | `10` ETH           | ERC20 Token | `90` Days  | `0.3`                | `6/15/2021` |      -      |
| Doppio    | `2` ETH            | ERC20 Token | `90` Days  | `0.06`               | `6/15/2021` |      -      |
| SHIB      | `200,000,000` SHIB | ERC20 Token | `90` Days  | `0.01`               | `6/15/2021` |      -      |
| LINK      | `50` LINK          | ERC20 Token | `90` Days  | `0.01`               | `6/15/2021` |      -      |
| MATIC     | `1,000` MATIC      | ERC20 Token | `90` Days  | `0.01`               | `6/15/2021` |      -      |

**For ERC20 token pools, 0.2 ETH** (known as "Coin Denomination") **will be deposited with the asset into the pool, which will be fully refunded to the withdrawal address** as the gas fee for future operations. This is a convenient feature to allow the user to further move her ERC20 assets in the withdrawal address which is usually a new address.&#x20;

## Fish Pools(Deprecating)

Fish pools are launched on IoTeX blockchain with Anonymity Mining v1 (AMv1) and Liquidity Mining (LM). Liquidity mining of CYC-IOTX pair produces 25 CYC every day.

![](/files/-MV2Ny27oq2q1wxzRhrF)

| Pool Name            | **Denomination** | Type | Life Cycle | CYC per Day via AM         |
| -------------------- | ---------------- | ---- | ---------- | -------------------------- |
| **Pool 1 (Squid)**   | `1,000` IOTX     | Coin | Perpetual  | Depends on num of deposits |
| **Pool 2 (Dolphin)** | `10,000` IOTX    | Coin | Perpetual  | Depends on num of deposits |
| **Pool 3 (Shark)**   | `100,000` IOTX   | Coin | Perpetual  | Depends on num of deposits |
| **Pool 4 (Whale)**   | `1,000,000`IOTX  | Coin | Perpetual  | Depends on num of deposits |

## EarlyBirds Pools (Deprecating)

EarlyBirds pools are launched on IoTeX blockchain with anonymity mining v1 and liquidity mining. They were used for initially launching of Cyclone Protocol and are being deprecated. **Please move your funds to other pools.**

![](/files/-MVXf5FmHB_n-kyi1fu6)


# Token Economics

## Overview

Cyclone Protocol is fueled by the CYC token, which is designed to incentivize **anonymity providers**, **liquidity providers**, and **users**. **CYC is NOT pre-mined or pre-allocated.** Those that contribute to Cyclone will earn CYC.

* **Total Supply:** 50,000, fixed
* **Circulating Supply:** \~6,000 (see <https://cyclone.xyz/analytics> for the latest info)
* **CYC Mint**
* * **Genesis anonymity pools will be provisioned** when launch on a blockchain
  * **Opening of additional anonymity pools will have to go through community vote**
  * **Anonymity Mining:** Coins/tokens are rewarded to ones who deposit coins/tokens into anonymity pools and keep them there for a while. There are [two](/cyc-token/anonymity-mining-v1) [versions](/cyc-token/anonymity-mining-v2) of anonymity mining that mint CYC in different ways.
  * **Liquidity Mining**: CYC is rewarded to users who provides liquidity for CYC on DEX (Decentralized Exchanges).
* **CYC Utility**&#x20;
  * **Use Anonymity Pool:** when one uses the anonymity pool to gain privacy, a certain portion of CYC will be burned.
  * **Decentralized Governance:** CYC holders are entitled to govern the Cyclone Protocol.

![](/files/-MR8m76BEAlMl5cgXbzE)

## Roles and Rewards

There are four roles in Cyclone Protocol.

| Roles                  | How To Become                                                                  | Benefits                |
| ---------------------- | ------------------------------------------------------------------------------ | ----------------------- |
| **Anonymity Provider** | Provide anonymity by depositing tokens and letting them stay there for a while | Anonymity mining reward |
| **User**               | Deposit-and-withdraw tokens for transactional privacy                          | Gain privacy            |
| **Liquidity Provider** | Bond coins/tokens + CYC to DEX to provide liquidity of CYC                     | Liquidity mining reward |
| **Governors**          | CYC holders who decide how the protocol evolves                                | Certain rights          |

## CYC Token

CYC Token is issued on multiple blockchains and fully connected via the bridge. The CYC contract addresses are different chains are:

* IoTeX `io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh`&#x20;
* BSC `0x810ee35443639348adbbc467b33310d2ab43c168`
* Ethereum `0x8861cff2366c1128fd699b68304ad99a0764ef9a`&#x20;

## Liquidity and Anonymity Mining

Please refer to the following sections for details.

* Liquidity Mining: <https://docs.cyclone.xyz/cyc-token/liquidity-mining>
* Anonymity Mining v1: <https://docs.cyclone.xyz/cyc-token/anonymity-mining-v1>
* Anonymity Mining v2: <https://docs.cyclone.xyz/cyc-token/anonymity-mining-v2>


# Liquidity Mining (LM)

### Liquidity Mining

![](/files/-MVY48g_cK5LimI7zVEw)

* CYC can be supplied to DEX on different blockchains such as [Uniswap](https://uniswap.org/), [Pancake](https://pancakeswap.finance/) and [mimo](https://mimo.exchange/pool) to produce CYC-ETH (TBD), CYC-BNB and CYC-IOTX Pool Tokens separately
* Deposit of Pool Tokens to the contract to earn Daily Liquidity Reward
* The Daily Liquidity Reward for each liquidity pair is composed of **20 CYC tokens** for now, which is subject to change according to the decentralized governance
* All CYC tokens in the daily liquidity pool are proportionally distributed to whoever stakes Pool Tokens
* Liquidity miners can claim their CYC reward anytime, stake or unstake their pool tokens anytime.

![](/files/-MRyFGsRIGmSf9okCPDr)

### Fee

* For liquidity mining on IoTeX, there is NO FEE;
* For liquidity mining on BSC, 0.5% of the LP tokens deposited is charged that is used to buy back CYC and burn.&#x20;


# Anonymity Mining v1 (AMv1)

{% hint style="success" %}
Anonymity Mining v1 (AMv1) has been used for anonymity pools on IoTeX ( <https://cyclone.xyz/iotx>), which will be **gradually deprecated in next 3 months**. All newly launched pools are based on Anonymity Mining v2 (AMv2).
{% endhint %}

### Anonymity Mining v1 Overview

Anonymity Mining v1 is composed of two parts mint-n-burn and anonymity fee. The entire process look like below.

![](/files/-MRsWPhL6-P_xd7FWKKK)

### Mint-n-Burn

**Everyone can mint or burn CYC!** Just deposit to the following pools and a certain amount of CYC will be minted to you. On the contrary, when withdraw, a certain amount of CYC will be bought back from DEX (e.g., [mimo](http://mimo.finance/)) using IOTX withdrawn, and immediately burned.

**Deposit and Mint**

| Deposit IOTX | Mint CYC                                    |
| ------------ | ------------------------------------------- |
| `D`          | `a * 0.1D / CYCPrice` (MAX Limit see below) |

Burn and withdraw

| Buy back CYC using IOTX | Burn (CYC)            | Total Withdraw (IOTX) |
| ----------------------- | --------------------- | --------------------- |
| `a * 0.1D`              | `a * 0.1D / CYCPrice` | `(1-0.1a-0.01)D`      |

Pool information

| Pool                 | **Denomination (IOTX)** | **MAX MINT** | MAX Num of Deposits |
| -------------------- | ----------------------- | ------------ | ------------------- |
| **Pool 1 (Squid)**   | `1,000`                 | `0.2`        | `8,000`             |
| **Pool 2 (Dolphin)** | `10,000`                | `2`          | `4,000`             |
| **Pool 3 (Shark)**   | `100,000`               | `20`         | `2,000`             |
| **Pool 4 (Whale)**   | `1,000,000`             | `200`        | `1,000`             |

`CYCPrice` is the price of CYC token in IOTX, and `a` is the bonus rate which starts with `2` and linear decrease with every a quarter of the max number of deposits allowed in the pool. e.g., `a = 2` if there are 380 deposits in the pool 1, and `a = 0.5` if there are 5300 deposits in the pool.

For example, if `CYCPrice = 1,000 IOTX` and `a = 1`, the table above looks like below

| Pool                 | **Denomination (IOTX)** | CYC Minted/Burned per Deposit/Withdraw |
| -------------------- | ----------------------- | -------------------------------------- |
| **Pool 1 (Squid)**   | `1,000`                 | `0.1`                                  |
| **Pool 2 (Dolphin)** | `10,000`                | `1.2`                                  |
| **Pool 3 (Shark)**   | `100,000`               | `13`                                   |

And if `CYCPrice = 1 IOTX`, the table above looks like below

| Pool                 | **Denomination (IOTX)** | CYC Minted/Burned per Deposit/Withdraw |
| -------------------- | ----------------------- | -------------------------------------- |
| **Pool 1 (Squid)**   | `1,000`                 | `2`                                    |
| **Pool 2 (Dolphin)** | `10,000`                | `20`                                   |
| **Pool 3 (Shark)**   | `100,000`               | `200`                                  |

### Anonymity Fee

Whenever users use Cyclone Protocol, they pay a 1% fee of the underlying coins/tokens per withdraw for all pools, known as anonymity fee. The charged fees are added to the anonymity pool. This has the effect of splitting the aggregated withdrawal fees between all existing anonymity providers.

For example,

| Tx                                                                                                                          | Pool 1's Denomination | Total IOTX in Pool 1 |
| --------------------------------------------------------------------------------------------------------------------------- | --------------------- | -------------------- |
| Alice deposits 10,000 IOTX into pool 1                                                                                      | `10,000`              | `10,000`             |
| Bob deposits 10,000 IOTX into pool 1                                                                                        | `10,000`              | `20,000`             |
| Carl deposits 10,000 IOTX into pool 1                                                                                       | `10,000`              | `30,000`             |
| Bob withdraws, where he gets 9,900 IOTX back (assuming no burning for simplicity) and pays 100 IOTX as fee to the pool      | `10,050`              | `20,100`             |
| Carl withdraws, where he gets 9,949.5 IOTX back (assuming no burning for simplicity) and pays 100.5 IOTX as fee to the pool | `10,150.5`            | `10,150.5`           |
| Alice withdraws, where she gets 10,048.995 IOTX back (assuming no burning for simplicity) and pays 101.505 IOTX as fee      | `10,000`              | `101.505`            |

Thanks to the bonus rate`a` , anonymity providers can potentially get CYC as reward. For example, there were 100 deposits when Alice deposits to the pool, she got X CYC back. After a while, Alice decides to withdraw when there are 4000 deposits in the pool, she burns X/2 CYC to withdraw IOTX and keeps the other half as gain.

### How to Earn?

1\. Deposit and mint CYC\
2\. Earn pool denomination growth with users withdraw\
3\. Earn LP rewards + LP fee when join as LP\
4\. Deposit early to get more CYC and withdraw late to burn less. Earn the difference.


# Anonymity Mining v2 (AMv2)

{% hint style="success" %}
Anonymity Mining v2 (AMv2) has been used in anonymity pools on BSC ( <https://cyclone.xyz/bsc>).
{% endhint %}

### **Design Goals**

While Anonymity Mining v1 (AMv1) was used to launch the first anonymity pools on IoTeX, we are aware a **limitation of AMv1 - the number of CYC tokens a user mined** (by putting her asset into the anonymity pool) **is not proportional to how long he locks  her asset in the pool**, which is not the most effective way to reward long-term anonymity providers.&#x20;

In AMv2, we redesigned the anonymity mining to achieve the following two properties:

1. **The number of CYC mined is proportional to how long one locks one's asset in the pool** - the longer the asset stays in the pool, the more CYC anonymity providers obtains;
2. **Enforce the life span of each anonymity pool** (usually 90 days) **to encourage anonymity providers to shuffle their assets and deposit into a new pool**, to further improve the degree of privacy (since a pool with many long-term deposits but lacks short-term deposits/withdraws offers very limited degree of privacy).

### **Terminology**

When interacting with anonymity pools, one needs to understand the terminology the pools use to characterize themselves:

**Asset Denomination** is the number of coins or ERC20/XRC20/BEP20 tokens the pool provides anonymity. For example, the C3PO pool's primary asset is BNB, and its denomination is `100`, meaning each deposit/withdrawal is `100` BNB, exactly.

**Coin Denomination** describes an auxiliary feature for better usability. When a user deposits an asset such as BUSD into a pool, a small amount of native currency (e.g., `0.1` BNB) of the underlying blockchain will be deposited with the asset into the pool, **which will be fully refunded to the withdrawal address as the gas fee for the user**. For example, with `0.1` BNB deposited to her new address upon withdrawal, Alice can further transfer her BEP20 asset or invoke other smart contracts from this new address.

**CYC Denomination** is a small dynamic amount of CYC, which **ensures the amount of CYC Alice earns is proportional to how long her asset stays in the pool while not disclosing how long her asset remains in the pool to others**. This sounds contradicting but can be viewed through an example. When Alice deposits her asset + `0.1` BNB to the pool, she deposits `X` CYC according to CYC Denomination; she lets the asset stay in the pool and assumes `Y` CYC has been mined. Upon withdrawal, `(X + Y)` CYC will be sent back to Alice. Of course, Alice knows she earns `Y` CYC. Thanks to zkSNARK that disconnects the withdraw tx from the deposit tx, no one (except for Alice) knows that the upfront deposit is `X` CYC, and no one can calculate `Y` given `(X+Y)`. Therefore, no one knows how long the asset has been stay in the pool. Isn't it cool?

### **Anonymity Pools**

The following pools are launched using AMv2.

| Pool Name | Asset Denomination | Life Cycle | CYC per Day via AM | Total CYC via AM |
| --------- | ------------------ | ---------- | ------------------ | ---------------- |
| C3PO      | `100` BNB          | `90` Days  | `3`                | `270`            |
| R2D2      | `10,000` BUSD      | `90` Days  | `1`                | `90`             |
| BB8       | `25,000` IOTX      | `90` Days  | `0.25`             | `22.5`           |

A fixed amount of CYC such as `3` or `1` or `0.25` is given to all anonymity providers in each pools on a daily basis.

### **How It Works**

1. Deposit BNB (or BUSD or IOTX) into C3PO (or R2D2, BB8) pool, optionally deposit X CYC
2. Let BNB stays in the pool for N days
3. Withdraw BNB from the pool and obtain Y CYC (of course Y > X)

Below is an example demonstrating how AMv2 works. We ignore all fees for now to simplify this example.

| Day | Event                                                                              | Total CYC in Pool | Total BUSD in pool |
| --- | ---------------------------------------------------------------------------------- | ----------------- | ------------------ |
| `1` | Day starts                                                                         | `0`               | `0`                |
|     | Alice deposits `10,000` BUSD into the pool                                         | `0`               | `10,000`           |
| `2` | Day starts                                                                         | `1`               | `10,000`           |
|     | Bob deposits `10,000` BUSD into the pool, and pays`1` CYC                          | `2`               | `20,000`           |
| 3   | Day starts                                                                         | `3`               | `20,000`           |
| 4   | Day starts                                                                         | `4`               | `20,000`           |
|     | Alice withdraws `10,000` BUSD and obtained `2` CYC                                 | `2`               | `10,000`           |
| 5   | Day starts                                                                         | `3`               | `10,000`           |
|     | Bob withdraws `10,000` BUSD and obtained `3` CYC (so his mining reward is `2` CYC) | `0`               | `0`                |

### **Fee**

**Upon the withdrawal of asset, the following will be charged:**

* `1.5%` of the CYC obtained is charged and burned immediately
* `0.5%` of the CYC obtained is given to relayer to compensate for the gas cost of the withdraw tx


# Smart Contracts

## Source Code

The smart contracts of Cyclone Protocol is open source under GPL-3.0 license, which can be found in <https://github.com/cycloneprotocol/cyclone-contracts>.

## Audit Reports

### Audit Report by ChainShield

No major issue has been identified. 5 low impact findings in the report.&#x20;

A detailed report can be found here:&#x20;

{% file src="/files/-MVwMB3sAAKGp9zma217" %}

### Audit Report by Slowmist

No major issue has been identified by [Slowmist](https://www.slowmist.com/en/). A detailed report can be found here:&#x20;

{% file src="/files/-MY3RKd1R4T7nq41E4hA" %}


# Deployment

## Ethereum Mainnet

* Cyclone Token: `0x8861cff2366c1128fd699b68304ad99a0764ef9a`
* Aeolus LP Mining v2.1: `0xdc71bc29d12960a3ee5452fac6f033a1b8e756fb`
* Hasher: `0x949452e32db13a5771445cf20b304474b866202b`
* Verifier: `0x7C994FB3a8C208C1750Df937d473040c604292D6`
* UniswapV2 Router: `0x602b40bf327c10370483ae5ecde15a7bb480dcca`

**Anonymity Pools**

* Latte - 100 ETH - Pool: `0xd619c8da0a58b63be7fa69b4cc648916fe95fa1b`&#x20;
* Expresso - 100000 USDT - Pool: `0xa38b6742cef9573f7f97c387278fa31482539c3d`
* Cold Brew - 100 TORN Pool: `0x09f03488291063a8f3c67d2aab7002419d11c113`

## BSC Mainnet

* Cyclone Token:`0x810ee35443639348adbbc467b33310d2ab43c168`
* Verifier: `0x9286e9271bf497ec39b3fdaef53e38bfc6b4cf14`
* Aeolus LP Mining v2: `0x92a737097d711bec4c31351997254e98e5f0d430`
* PancakeSwap Router: `0x10ed43c718714eb63d5aa57b78b54704e256024e`

**Anonymity Pools**

* C3PO - 100 BNB Pool:`0x66b5e322dc31f8c7a33ffd23975163795f8d16c7`
* R2D2 - 10,000 BUSD Pool: `0xbe19d541389c9d3e03efc08f3d5008e8c9cc42a5`
* BB8 - 25,000 IOTX Pool: `0x79459751f6882868d1299bfa412428488b434541`
* Jonny5 - 3 CYC Pool: `0xd90a6bf8439ef7214cf00da83e926068b6a507ec`

## IoTeX Mainnet

* Cyclone Token: `io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh`
* Timelock: `io10jv5lvagcgyvzagdlymagucyp3sy9ykktkudth`
* GovernorAlpha:`io1w8n28wr5dpc2uh3pzvx4n402h0l2agmu67a26x`
* Aeolus LP Mining v2: `io1rgwa22h66ney8sclpyrdqxwy4n0czjztc2rpu0`
* Mimo Router: `io1z2wmt6y74ctc9l4y4ly73gkynp0p4haj2d326m`

**Anonymity Pools**

* Biscuit - 50,000 IOTX: `io13lp2c88eqanyjg3h4y2klyax5s28gfx9q0j4nv`
* Snickerdoodle - 500,000 IOTX: `io1j2nnwztawyd7cnp3x5vewf2wnrjlp4psz556kv`
* Gingersnaps - 2,000,000 VITA: `io1jm0rr385aw4vxqkzn4vx2y0s7ja80etexg7ucu`

## Polygon Mainnet

* Cyclone Token:`0xcFb54a6D2dA14ABeCD231174FC5735B4436965D8`
* Verifier: `0xb6e9ea062a7719846bc9e3e3ae8712e74faad376`
* Aeolus LP Mining v2: `0xA8c187d8773bc9E49A10554715Ff49Bdcf39d55D`
* QuickSwap Router: `0xFCb851Ad3D98BD241dbE395cA1E6080f489D4624`

**Anonymity Pools**

* Pentagon - 1,000 MATIC: `0x5194932AD0f889B1E31041b8006A58FF70A11F43`
* Hexagon - 1,000 USDC: `0x8e6e472e4a3f8b1951D2970f59B3944eFf707e10`
* Octagon - 2 QUICK: `0x517CeeE661b57ed7d5b615bF700cb307D87a025B`


# Roadmap

In 2021, there are four major milestones for Cyclone Protocols: fair launch on IoTeX, liftoff on BSC, propel on Ethereum, and auto drive for all.

## Auto Drive for All (2021 Q3/Q4, Ongoing)&#x20;

#### Yielding Aggregation w/ Diversified Assets (2021 Q3, Ongoing)

We are working on yielding-aggregated anonymity pools of assets from top projects. These new pools will likely produces multiple-asset yield for anonymity providers, which will be launched through the community vote in Q3 2021.

#### Improve CYC Economics (2021 Q3, Planning)

Cyclone protocol, since its launch, is consistently improving the underlying token economics. For example, a proposal from the community suggests halving the CYC production for inactive anonymity pools while another one suggests to make CYC denomination more transparent. We are conducting research and experiments to prepare for economical improvement proposals.

#### Governance DAO (2021 Q4, Planning)

The governance DAO will be activated and take the ownership of all serving contracts to make cyclone protocol fully autonomous. Voters are encourage to cross-chain vote for new anonymity pools, update the parameters, among many other initiatives.

#### Common Layer for DeFi Apps (2021 Q4, Planning)

In 2021 Q4, we will be focused on the adoption of Cyclone Protocol by establishing partnership with all mainstream DeFi apps and products by providing anonymity to them.

## Propel on Ethereum (2021 Q2, Completed)

Launch Cyclone Protocol with anonymity mining and liquidity mining on Ethereum. New pools for top DeFi apps have been launched. CYC tokens on ETH can be seamlessly cross-chain-transferred from/to BSC and IoTeX at 1:1 ration, via bridges such as [ioTube](https://tube.iotex.io).

See details here - <https://snapshot.org/#/realcycloneprotocol.eth/proposal/QmYRA4sNuZWnPjsB97qZAayiqVa6pnqBCLtLpnNQCjyP6G>

More assets will be supported by the anonymity pools on Ethereum via community voting.

## Liftoff on BSC (2021 Q2, Completed)

Launch Cyclone Protocol with anonymity mining and liquidity mining on BSC. CYC tokens on BSC can be seamlessly cross-chain-transferred from/to ETH and IoTeX at 1:1 ration, via bridges such as [ioTube](https://tube.iotex.io). See details here - <https://cycloneprotocol.medium.com/tbd-on-chains-562261eac886>.

More assets will be supported by the anonymity pools on BSC via community voting.

## Fair Launch on IoTeX (2021 Q1, Completed)

Fair launches have always been lauded as the holy grail for a cryptocurrency. We advocate strongly for a fair launch for the community. **CYC tokens will be initially distributed to community supporters without a price or absurd valuation.**

When we deploy CYC token contracts, **2021 CYC** (yes, 2021!) will be minted and reserved for airdrop and lucky draw.

### **Day 1 - Day 7**

Day 1 started on **1/19/2020 6AM UTC**. Check out [this tweet](https://twitter.com/cycloneprotocol/status/1351413127112396802)!

This is the bootstrap phase of cyclone's pools, during which 3 Early Birds Pools will be deployed (where mint-n-burn and liquidity mining are disable with anonymity mining enabled). **Everyone is encouraged to deposit IOTX into the 3 early bird pools to get CYCs via airdrop and lucky draw** which works as below:

**Early Birds Rewards**

* Each deposit to Pool 1 - Early Sparrow (10,000 IOTX) earns 5 points
* Each deposit to Pool 2 - Early Raven (100,000 IOTX) earns 60 points
* Each deposit to Pool 3 - Early Eagle (1,000,000 IOTX) earns 720 points
* [mimo](https://mimo.exchange/) users (who have at least 1 transaction on [mimo](https://mimo.exchange/)) before 2020/12/31 PT earns 50 points
* All [IOTX bucket](http://member.iotex.io/) holders before 2020/12/31 PT earns 50 points
* Each address can have at most 8000 points
* **1500 CYCs will be airdropped to all participating addresses, proportional to their points obtained**

**Early Testers Reward**

* **88 CYCs** will be sent to all early testers proportional who held [CYC testing tokens](https://iotexscan.io/token/io1xhw6hc3sm0fs8gtqwhj843ytgqthxe9uv4aced)

**Social Birds Rewards**

* **100 CYC** will be airdropped to all social advocators based on points&#x20;
* **Telegram Bounty** (**max 1000 points**!!)
  * Follow twitter - required (for future lucky draws)
  * Join telegram group and channel - required, 2 points
  * Refer friends to join group - optiona&#x6C;**,** 1 points per referral
  * Talk to <http://t.me/cyclonebountybot> to get started
  * Spammers will void their points if detected
* **Please note these points are separate from Early Bird Rewards points.**

Please be aware of the rules for telegram referrals: \
1\. you need to set wallet address \
2\. your referral should be real people. Basic requirement is they have set their wallet address and in the group.\
&#x20;3\. you are not detected as spammers or bots.

**Lucky Draws**

* **3 CYCs** will be given to the **15** largest transaction hash in **Early Bird Pool 1**
* **30 CYCs** will be given to the **15** largest transaction hash in **Early Bird Pool 2**
* **300 CYCs** will be given to the **15** largest transaction hash in **Early Bird Pool 3**

### **On Day 8 (1/26/2021 6AM UTC)**

1. Airdrop and lucky-draw happen
2. Deploy Pools 1, 2, 3 and 4 which have all token economics components enabled (mint-n-burn, liquidity mining and anonymity mining), while keeping Early Bird Pools. We encourage users to move their funds from Early Bird Pools to Pools.
3. Trading on [mimo](https://mimo.exchange/) starts!

More assets will be supported by the anonymity pools on Ethereum via community voting.


# Decentralized Governance

Cyclone governance is inspired by the [Compound Governance Model](https://compound.finance/docs/governance). Cyclone will be governed and upgraded by CYC token holders using three distinct components: the CYC token, governance module (Governor Alpha), and Timelock. Together, these contracts will allow the community to propose, vote, and implement changes towards Cyclone. Proposals can include changes like adding support for new assets, optimizing current token pools, adjusting CYC's minting/burning rates, and more.

![](/files/-MNeNYZH_9yvoogvnnn6)

We estimate the governance DAO will be activated in early Q2 2021.

At least the following rights are entitled to CYC holders:

* Which blockchain to support next
* Launch a new anonymity pool with a certain asset
* Update params of an existing anonymity pool, e.g., CYC to mine per day
* Launch a new liquidity pool
* Update params of an existing liquidity pool, e.g., CYC to mine per day
* Other token economics of CYC


# Analytics

## Dashboard

You are welcome to use the dashboard here - <https://cyclone.xyz/analytics> - which shows the $CYC supply, number of deposits, pool value in USD along with other information, in real time.

![](/files/-MS03pKKGMgZKh-WX2qq)

## GraphQL

We have decoded and indexed Cyclone contracts data so every one can run powerful analysis with simple GraphQL queries through <https://analytics.cyclone.xyz/playground>. Some typical queries look like below.

![](/files/-MRT7t86WTEoLuibF46g)

### Total IOTX Deposited in All Pools

`query { tokensInPoolPerDay(count: 7) { name values { timestamp value } } }`

### Total IOTX Deposited and the Fee Associated

`query { total { iotx fee } }`

### Total IOTX Deposited per Day

`query { totalPoolPerDay(count: 7) { timestamp value } }`

### Points a User Gets for the airdrop

`query { airdropScore(address: "io1tmt2vp28afp2vd3h598n0lwu6sj3lyc64apjw3") }`

### 15 Luckiest Deposits in Pool 1

`query { luckyDrawTopN(poolAddress: "io1rqm2keejw4jypgl0w6hr96r054ns63u0hqrfuy", n: 15) { hash address method } }`

### 15 Luckiest Deposits in Pool 2

`query { luckyDrawTopN(poolAddress: "io1gkeeljp4grwskgq3tl2xqglqy546nhhmytnqqp", n: 15) { hash address method } }`

### 15 Luckiest Deposits in Pool 3

`query { luckyDrawTopN(poolAddress: "io1mlcgsv4ma0t6gffpxg2gva3lwqnlj5msradxk6", n: 15) { hash address method } }`


# Development

This page explains how to compile/deploy/test/interact with smart contracts. There are four major contracts which are Cyclone token, GovernorAlpha/Timelock, Aeolus, and Cyclone (Coin, ERC20)

### Preparation

1. Install truffle

   ```
   npm install -g truffle
   ```
2. Install dependencies

   ```
   npm install
   ```
3. Install `ioctl` - the command-line tool to interact with IoTeX blockchain

install ioctl following the instructions: <https://docs.iotex.io/developer/ioctl/install.html>

### Compile contracts

`npm run build:contract`

### Deploy contracts

* **CycloneToken**

1. Deploy a CycloneToken `ct`

```
ioctl contract deploy bytecode CYCLONETOKEN_BYTECODE ABI_PATH '{"_operator": "OPERATOR_ADDRESS", "_lp": "INITIAL_LP_ADDRESS"}'
```

* **Timelock & GovernorAlpha**

1. Deploy Timelock `tl`

```
ioctl contract deploy bytecode TIMELOCK_BYTECODE TIMELOCK_ABI_PATH '{"admin_": DEPLOY_ADMIN_ADDRESS, "delay_": DELAY_IN_SEC}'
```

&#x20;   2\. Deploy GorvernorAlpha `ga` (e.g., voting duration:3 days)

```
ioctl contract deploy bytecode GORVERNOR_BYTECODE GOVERNOR_ABI_PATH '{"timelock_": TIMELOCK_ADDRESS, "sushi_": CYCTOKEN_ADDRESS, "guardian_": ADMIN_ADDRESS, "votingDuration_": 51840}'
```

&#x20;  3\. Set Timelock's pending admin to GovernorAlpha `ga`

```
 ioctl contract invoke function TIMELOCK_ADDRESS TIMELOCK_ABI_PATH "setPendingAdmin" --with-arguments '{"pendingAdmin_": GOVERNOR_ADDRESS}'
```

&#x20;  4\. Accept Admin from GovernorAlpha `ga` triggered by guardian&#x20;

```
 ioctl contract invoke function GOVERNOR_ADDRESS GOVERNOR_ABI_PATH "__acceptAdmin"
```

* **Aeolus**

1. Add Liquidity for CYC/IOTX on MimoFactory and receive CYC-IOTX LP Token
2. Deploy an Aeolus `as` with `ct` address

```
ioctl contract deploy bytecode AEOLUS_BYTECODE ABI_PATH '{"_cycToken": CYC_TOKEN, "_lpToken" : LP_TOKEN}'
```

&#x20;   3\. Invoke `ct`.addMinter() to set `as` to be minters for CYC token

```
ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": AEOLUS_ADDRESS}'
```

* **CoinCyclone, ERC20Cyclone**

1. Deploy Hasher `hr`

   ```
   ioctl contract deploy bytecode HASHER_BYTECODE
   ```
2. Deploy Verifier `vr`

   ```
   ioctl contract deploy bytecode VERIFIER_BYTECODE
   ```
3. Deploy CoinCyclone `cc`, ERC20Cyclone `ec` linked by Hasher `hr` with `as`, `vr`, `ct`, `mf`and if necessary, XRC20 token address

   ```
   link CoinCyclone_BYTECODE/ERC20Cyclone_BYTECODE with HASHER_ADDRESS (use linker.js)
   ```

   ```
   ioctl contract deploy bytecode CoinCyclone_LINKED_BYTECODE CoinCyclone_ABI_PATH'{"_verifier": VERIFIER_ADDRESS, "_cyctoken": CYCTOKEN_ADDRESS, "_mimoFactory": MIMOFACTORY_ADDRESS, "_aeolus": AEOLUS_ADDRESS, "_initDenomination" : DENOMINATION_AMOUNT, "_denominationRound": DENOMINATION_ROUND, "_merkleTreeHeight" : MERKLETREE_HEIGHT, "_operator": TIMELOCK_ADDRESS}'
   ```

   ```
   ioctl contract deploy bytecode ERC20Cyclone_LINKED_BYTECODE ERC20Cyclone_ABI_PATH '{"_verifier": VERIFIER_ADDRESS, "_cyctoken": CYCTOKEN_ADDRESS, "_mimoFactory": MIMOFACTORY_ADDRESS, "_aeolus": AEOLUS_ADDRESS, "_initDenomination" : DENOMINATION_AMOUNT, "_denominationRound": DENOMINATION_ROUND, "_merkleTreeHeight" : MERKLETREE_HEIGHT, "_operator": TIMELOCK_ADDRESS, "_xrc20Token" : XRC20TOKEN_ADDRESS}'
   ```
4. Invoke `ct.addMinter()` to set `cc` and `ec` to be minters for CYC token

   ```
   ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": CoinCyclone_ADDRESS}'
   ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": ERC20Cyclone_ADDRESS}'  
   ```
5. Invoke `as`.addAddressToWhitelist() to set `cc` and `ec` to be whitelists for Aeolus to invoke `addReward()`&#x20;

   ```
   ioctl contract invoke function AEOLUS_ADDRESS AEOLUS_ABI_PATH "addAddressToWhitelist" --with-arguments '{"addr": CoinCyclone_ADDRESS}'
   ioctl contract invoke function AEOLUS_ADDRESS AEOLUS_ABI_PATH "addAddressToWhitelist" --with-arguments '{"addr": ERC20Cyclone_ADDRESS}'
   ```

### Test contracts

1. node version `nvm use 11.15.0`
2. build zk circuits `npm run build`
3. if you want to use `test` network, just run `npm run test` (default).

   If you want to use `development` network,

   * modify truffle-config.js (uncomment development network)
   * run `ganache-cli i 1337`
   * run `npm run test`

### Interaction with Cyclone contracts \[Anonymity Mining]

1. Requirements
2. `nvm use 11.15.0`
3. `npm install -g npx`
4. Set up .env file
   * `cp .env.example .env`
   * `vi .env` - add your private key, deployed contract address and denomination value
5. Build zk circuits: `npm run build`. Note that if you want to build zk circuits (including verifier.sol, proof/verify-keys) locally, you need to:
   * `npm uninstall websnark`
   * `npm install websnark@"git+https://github.com/tornadocash/websnark.git#2041cfa5fa0b71cd5cca9022a4eeea4afe28c9f7"`
   * `npm run build:local` - It might take more than 10 minutes as it performs the trust-setup locally.
6. Deposit
   * Testnet

     `./client.js deposit IOTX|XRC20 --rpc http://api.testnet.iotex.one:80`
   * Mainnet

     `./client.js deposit IOTX|XRC20 --rpc http://api.iotex.one:80`
7. Withdraw
   * Testnet

     `./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.testnet.iotex.one:80 --relayer RELAYER_URL`
   * Mainnet

     `./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.iotex.one:80 --relayer RELAYER_URL`

### Interaction with Aeolus contract \[Liquidity Mining]

1. Add Liquidity for CYC/IOTX on MimoFactory and receive CYC-IOTX LP Token
2. Deposit&#x20;

* Approve CYC-IOTX LP Token

```
ioctl xrc20 approve AEOLUS_ADDRESS AMOUNT -c LPTOKEN_ADDRESS
```

* Deposit CYC-IOTX LP Token

```
ioctl contract invoke function AEOLUS_ADDRESS abi/Aeolus.json "deposit" --with-arguments '{"_amount": AMOUNT}'
```

&#x20;  3\. Withdraw&#x20;

```
ioctl contract invoke function AEOLUS_ADDRESS abi/Aeolus.json "withdraw" --with-arguments '{"_amount": AMOUNT}'
```

### Interaction with GovernorAlpha contract \[Governance]

1. Self-delegate or delegate your CYC token for governance. If you do not delegate your votes, the token will not be considered as voting power.&#x20;

```
ioctl contract invoke function CYCTOKEN_ADDRESS abi/CycloneToken.json "delegate" --with-arguments '{"delegatee": ADDRESS_YOU_WANT_TO_DELEGATE}' -s mainnet -y
```

&#x20;   2\. Propose a new change in cyclone contracts such as updateConfig, changeGovDAO, and updateVerifier. The proposer should have more than 1000 CYC Token. Voting will run for 3 days. -- Use [abi-encoder](https://adibas03.github.io/online-ethereum-abi-encoder-decoder/#/encode) to get encoded argument data.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "propose" --with-arguments '{"targets": [CYCLONE_ADDRESS], "values": [0], "signatures": ["updateConfig(uint256,uint256,uint256,uint256)"], "calldatas": ["..."], "description": "update configs in cyclone contract"}'
```

&#x20;   3\. During the 3 days of voting duration, token holders who self-delegate or delegate can cast votes for a certain proposal.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "castVote" --with-arguments '{"proposalId": 1, "support": true}'
```

&#x20;  4\. After 3 days of voting duration, if the proposal gets more than 4000 CYC votes, the proposer can queue the transaction into Timelock.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "queue" --with-arguments '{"proposalId": 1}'
```

&#x20;  5\. After the timelock delay, the proposer can execute the transaction in timelock.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "execute" --with-arguments '{"proposalId": 1}'
```

###


# Community

## Twitter&#x20;

<https://twitter.com/cycloneprotocol>

## Telegram

Announcement Channel - <https://t.me/cycloneprotocol>

Community Chat - [ ](< https://t.me/group>)[ ](< https://t.me/group>)<https://t.me/cyclonegroup>

## Medium Blogpost

{% embed url="<https://cycloneprotocol.medium.com/>" %}

## BitcoinTalk Thread

<https://bitcointalk.org/index.php?topic=5310841.0>


# A Step-by-Step Guide

## Anonymity Mining

### How to Deposit

<https://docs.cyclone.xyz/a-step-by-step-guide/step-by-step-how-to-deposit>

### How to Withdraw

<https://docs.cyclone.xyz/a-step-by-step-guide/step-by-step-how-to-withdraw>

## Liquidity Mining

<https://docs.cyclone.xyz/a-step-by-step-guide/how-to-liquidity-mining>


# How to Deposit

Working in progress

## Cyclone with ioPay Mobile App&#x20;

The official IoTeX wallet, ioPay, is available to download for mobile(iOS, Android, APK).

Download from <https://iopay.iotex.io>

![](https://lh3.googleusercontent.com/4sUoaG9r8KGTwMb9Vh03DovKK-ov8wV0itguOp_OHulcLuFNVXWGjL5WGfGomT7MQlz_wVGSZjTWQ6oKDjKLo0jjyMBdv5ya87d6KaxMXc4mGmlbSsdDFL5kfj3PfsRONZh1cSca)

### Step 1 - Create/Import Wallet on ioPay

**Create a new address**: create a wallet if you don't have one. When prompted, record your address, private key/mnemonic phrase.

**Import Wallet**: if you already have an IoTeX wallet, you may import it using your keystore file, private key/mnemonic phrase.

![](https://lh3.googleusercontent.com/alxRfGVg4-YY7GPSMUNpMzbWDHT4i01TxVWBeq7V6520Dr30Vc5V3Hyp9KENy5ACNkCtYtAvEEryIMPDxRVqVjpJvMM2oxHEcxySdZux7lwYDsUZW8ssH6iwehqL4H0Ke345qTDC)

### Step 2 - Prepare IOTX

You can use **deposit** on ioPay to view options of getting IOTX.

### Step 3 - **Open "Cyclone App" in “Discover”**&#x20;

![](https://lh3.googleusercontent.com/ty58p8TtKnwWk62UDMZvk3ea-Lu4_wXVGCvjiwGqqoHlRcyrxhGKmuJOtu9g4RcS1c3I4H8m848_8YW12V_yjdw5iwHwMLqCOyFh4kYUFxYV6T2EHC0JAmymETEkmMXA9WF9g3Rv)![](https://lh3.googleusercontent.com/PSCb26Mtoh8oL1IlZyxUtWV2_N7B8qVJHgbqCf16wGDMOQHzcB1PktSnyA-TSdMYnoSW50beq2IfXN-Uvo5JzTMl9difkOxu3s4Z_3bHqax8HO_9h90o5brlUdBnPvXytuoV59Js)

Click “More” if you cannot find the Cyclone icon shown above. Or, you can directly type or paste the Cyclone website url (<https://cyclone.xyz/>) in the top searching bar.

### Step 4 - Connect Wallet with Cyclone

![](https://lh4.googleusercontent.com/XgXox7_J2I-b8aklbaCAUgwjZdzBO1SLNHhU0WfXjfi1oExXOKYeNnX_rMyaKozrSK5-giZdZl7u9IS4Z19HxRNikwGlGCYhRoyxzQOrkkinzeTbYIarJf6kHJ0hXR8Ch6Eii_bO)

### Step 5 - Select a Pool and Click “DEPOSIT”

![](https://lh4.googleusercontent.com/_dZmoGT0FQbUfTosTjS7Dce3qIhpCWFiuyqERFWpDSr3onnVbCqGNywKP90RKaiRhtmqKMXd4Bjo6XekMTh3tj2VVwiUyUEdCZIYrG35LtAtJV5hToyVChWStW1LntKXuvaGqEkK)

### Step 6 - Prepare to Send Deposit

1. Click the copy icon at the end of the note and back it up on your phone out of ioPay (Important!! You will lose your fund if you don’t find your note)
2. Check the box of “I have backed up the note”, and paste your NOTE to the white border-box below.

![](https://lh6.googleusercontent.com/zEWP04qPsTsekV0zdqWZCWOCKHv6HTvrrOfazNv81xtovtKzh9NzAu_hfST72oo6kqs_pfx86xjgtqKvbZxgcAcHGtM8p4Wk-Uj7APa5in0wPxAE9Xqf9zMGoUXi0MNszldG-Wld)![](https://lh6.googleusercontent.com/XpNjrEtDY5bC5m3N_BU1DvR1TbQnYtj2pzRTYnOBm_HbpOKHZL26C4HudN8IJd54k0107eNu_7zDPVRQ2OOwAKO5b1eQVs9enff6Cn90JRhRVBo2QSzfWkJzPOcfnlPVRUb9-lKc)

### Step 7 - Click "SEND DEPOSIT"

![](https://lh6.googleusercontent.com/bqe3ZDzcFbbpE_X898D2KoFc4EJFSU7GlcGN4Xd1cxUoWktKRAtQkBtMwW8mAtGKCwQB3BKTf-uNxOOOmOXy43mebLrJIJjCkFYpfEd7aFbdRQsackUaOan2TK-Z1wlZe4XpJwT3)

### Step 8 - Confirm on ioPay to Sign Transaction and You are All Set

## Cyclone with ioPay Desktop

If you prepare using ioPay desktop, please follow these similar steps:

1. Download the ioPay desktop [https://iopay.iotex.io](https://iopay.iotex.io/)
2. Open ioPay Desktop&#x20;
3. Create a wallet or import wallet
4. Make sure you have enough fund in your wallet
5. Visit <https://cyclone.xyz/>
6. Click “Launch App” button
7. Select a pool, then click “DEPOSIT”.
8. Click the copy button to copy the NOTE&#x20;
9. Please make sure your NOTE backed up securely on your laptop/computer. The NOTE will be automatically downloaded as a txt file as well.
10. Click the checkbox of “I backed up the note”, and past your NOTE to the white border-box below.
11. Click “SEND DEPOSIT”&#x20;
12. Confirm on ioPay and sign the transaction
13. You are all set


# How to Withdraw

You can use ioPay mobile app or ioPay desktop to withdraw from Cyclone Protocol.

### Step 1 - Navigate to "Withdraw" Tab

![](/files/-MRxtJyp-Ii8gVn8z7WD)

### Step 2 - Paste Note to Validate

![](/files/-MRxte3SZaevKaelTWrx)

### Step 3 - Enter Your Address

You can always withdraw to the address you used for deposit. But if you intend to use Cyclone Protocol to shield your transaction, please deposit to a new address that has never been used.&#x20;

### Step 4 - Click "WITHDRAW" Button and Confirm the Withdraw

![](/files/-MRxuFe7NTi0pORFVkou)

The zkSNARKs proof is generated using the note your provided which will usually take 30 seconds to finish. If you hang on this page for more than 2 minutes, please refresh Cyclone App and retry.

### Step 5 - Relayer Invokes Cyclone Contract and Fund Your Address

The relayer will invoke Cyclone contract and fund your address in about 30 seconds.&#x20;


# How to Liquidity Mining

You can use ioPay mobile app or ioPay desktop to setup liquidity mining for Cyclone Protocol.

### Step 1 - Click "Mining" in Menu to Open Liquidity Mining Tab

![](/files/-MS05nM15A_S2fl5yJ9U)

### Step 2 - Click "ADD LIQUIDITY" to  Add Liquidity on mimo.exchange

Make sure you have sufficient $CYC and $IOTX in your wallet and click "Supply" to proceed. Once the transaction finishes, your $CYC and $IOTX are deposited to mimo for [Automated Market Maker](https://academy.binance.com/en/articles/what-is-an-automated-market-maker-amm) (AMM), and you will receive the pool token in your wallet.

You can always check [here](https://info.mimo.exchange/pairs/io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh) to get an idea about the current status of liquidity.

![](/files/-MS06HuN6mHDLPodOjQi)

### Step 3 - Come Back to Liquidity Mining Tab and Click "STAKE" and Confirm

By doing this, your pool tokens are staked into Cyclone's contract, and you start to earn $CYC! You can always check the upper section of the Liquidity Mining Tab to see how much $CYC you are earning and the current APY, e.g., 2,168%!

### Step 4 - Use "CLAIM" to Collect Your Liquidity Mining Reward

Whenever you want, click "CLAIM" to redeem $CYC you earned, which will be deposited to your wallet once the transaction is done.

### Step 5 - Use "UNSTAKE" to Withdraw Your Pool Token

If you are done with liquidity mining, click "UNSTAKE" to with your pool token to your wallet. Optionally, you can go back to <https://mimo.exchange/pool> to remove your liquidity to get back $CYC and $IOTX.


# Mining Guide

{% hint style="success" %}
Cyclone Protocol v2.0 Anonymity/Liquidity Mining Guide
{% endhint %}

Cyclone Protocol v2.0 is launching on the Binance Smart Chain (BSC). This article provides a step-by-step guide using MetaMask as an example. Other BSC-compatible wallets such as TokenPocket, TrustWallet are supported and can be used in the same way.

## Preparation: Connect your Metamask with BSC

1\. Install MetaMask

PC：<https://metamask.io/download.html>;iOS: Use Hong Kong or US ID and search for MetaMask in the AppStore to install;Android: Search MetaMask in Google Play to download;

![](/files/-MW8FzRj0bliQkFi2Wqw)

2\. Connect to the BSC Mainnet

Open MetaMask, set the password as required, save and confirm the mnemonic phrase, complete the new account creation/import;Click on the network and select "Custom RPC" to enter the deployment interface:

![](/files/-MW8G2nD6VTDzKnUP4du)

**Fill in the** **information** **as below** **to connect MetaMask to BSC**\
Network name: BSC Mainnet\
RPC URL: <https://bsc-dataseed.binance.org/\\>
Chain ID: 56\
Symbol: BNBBlock\
Explorer URL: <https://bscscan.com>

![](/files/-MW8G5FZA-5ak3PfKLB6)

3\. Deposit Assets into BSC Mainnet Wallet

Deposit $BUSD, $BNB, $BSC-Peg IOTX into BSC mainnet wallet and participate in Cyclone Anonymity Mining! The easiest way to deposit is to withdraw from your binance account. **Please make sure have at** **leave** **0.1 BNB** **in your MetaMask account,** as each deposit will have 0.1 BNB deposited together with your asset ($BNB, $BUSD or $IOTX) into the pool which will be fully refunded to your withdrawal address, and help you with further operations.

## Buy CYC from Pancake

* **`TBD`**

## Anonymity Mining - Deposit

1\. Go to cyclone website [https://cyclone.xyz](https://cyclone.xyz/) and launch app.

![](/files/-MW8GDdPK6s4YhZzMTxG)

2\. Select to "Binance Smart Chain" as shown below

![](/files/-MW8GPCc3D8i8p5fkECp)

3.Click ”Connect“ and select the wallet to be connected to. We select MetaMask as example in this guide.

![](/files/-MW8GbtTjxEg5vVbdc9y)

![](/files/-MW8GjdpbJCW8g_3hM8V)

4.Select the pool you want to participate in.

![](/files/-MW8GoRWhyWFKU0nYr_5)

5.Approve $BUSD/$CYC (or any token) spend by clicking the "Approve" button.

![](/files/-MW8Gv1Lh4PzeatV7_wG)

6.Click "Confirm", and the token spend authorization is complete!

![](/files/-MW8Gy_0Xq4LoGCjjsqu)

7.Make a deposit

After token authorization is approved , click "Deposit" to deposit your assets into the pool.

![](/files/-MW8H247Acm3YTsklU5-)

**Note:** **back up** **your note!**&#x43;opy the note, check the box, and paste your note into the text box.Click"Send Deposit" button and start anonymity mining!Be sure to record the note on paper or in keystore, and don't share it with anyone. If you lose your note, you will also lose the access to withdraw your deposit!

![](/files/-MW8H67coulw-zweCfI4)

## Anonymity Mining v2 - Withdraw

Enter "Withdraw" page, fill in your backup note and the recipient address, click "Withdraw" button on the bottom to complete it!

![](/files/-MW8HABFrL8BLa9E37WP)

## Liquidity Mining - Stake

1.Click "Mining" button on the website menu bar.

![](/files/-MW8HEiYafECuiAWOn9t)

2.Click "Add Liquidity" to enter [Pancake](https://pancakeswap.finance/)[swap](https://pancakeswap.finance/) page.

![](/files/-MW8HJSdJMMNfF5fTSGS)

3.Add in $CYC and $BNB to create $CYC/$BNB Liquidity Pair("LP") on Pancakeswap.

![](/files/-MW8HN4KFA6hzYvuMYzo)

4.Return to the mining interface, enter your participated LP amount and click "Stake" to complete it! Now you can start liquidity mining!

![](/files/-MW8HQFIoEkkdxKQTJYB)

## Liquidity Mining - Unstake

Renturn to the mining interface, enter the LP amount you want to unstake and click "Unstake" button to complete it!

![](/files/-MW8HTEWDK_1cugMnrwm)

## Cross-chain Transfer of $CYC

1.Download [ioPay](https://iopay-wallet.iotex.io/) wallet on IoTeX Network, open ioPay and click into the discovery page, click [ioTube](https://bsc-tube.iotex.io/bsc), the asset cross-chain bridge, to start $CYC transfer from IoTeX Network to BSC Mainnet.

![](/files/-MW8Hb6dteltjmHQBapm)

2.Click on the V4 preview to transfer assets from IoTeX Network to BSC Mainnet (V3 is for IoTeX and Ethereum Bridge).

![](/files/-MW8Hhwc5pTl5zVg4Bq-)

3.Choose asset $CYC in the drop-down list, enter the transfer amount, and fill in your BSC Mainnet wallet address to received the $CYC on BSC (it's your MetaMask BSC wallet address!)

![](/files/-MW8HpVFO5JKbACKbNBm)

4.Click “Convert” and wait for the confirmation. Your $CYC cross-chain transfer from IoTeX to BSC is complete!


# FAQ

## How can I withdraw IoTeX chain's deposit?

Steps

1. select IoTeX blockchain
2. switch to withdraw tab
3. paste your note
4. you should be good to go!

## Why can I vote?

You need to go to snapshot page to vote: <https://snapshot.org/#/realcycloneprotocol.eth/>

To make a valid vote, you need to have CYC in your wallet before the "snapshot" time listed on each vote.

Below is an example.

![](/files/-MW5wDNs6DLSQ-IG6S62)

## Why invalid note?&#x20;

In short, your note is not in the right format. Here are some quick ways to investigate

1. For V1 cyclone pools on IoTeX, your note should starts with cyclone-IOTX-100000000000000000000000-1-N-0x. N is a number from 0-7. If it is not, you need to see which part is missing.&#x20;
2. For v1 cyclone pools, you need to select iotex chain before withdraw. Please see the other FAQ for details.
3. For V2 cyclone pools on BSC, your note should starts with cyclone-56-N-0x. N is a number from 8 to 10.&#x20;

**Ways to find your note back?**&#x20;

1. if you deposited on a desktop, a note was saved to your desktop hardrive by downloading it from browser. If you didn't delete it, it is likely still there in your default downloads folder.&#x20;
2. Your browser session. You will see your note at the bottom of cyclone's website if browser does not clean its cache. **Please note this storage is not permanent and you may lose it anytime.**&#x20;
3. If you deposited on phone, you may have it saved to a note app or somewhere.&#x20;
4. Otherwise, you may have lost your note.

## Note is "valid", but I cannot withdraw

First, the note does not show invalid just because the format is valid. It does not mean the note is "valid" or good to withdraw. Only if you start withdraw with ZK proof and the contract will verify if the note is good.&#x20;

If you cannot withdraw, there are three possible reasons

1. the note is spent. You or someone withdraw with the note.
2. the note is invalid. You might have recorded the wrong note or you got a fake note from someone.
3. \[unlikely, but it happened] the chain has an issue to verify the note. If you believe your note is this case, you can talk to admin of your social group to get help.&#x20;

**Please don't leak your note anytime. If you leak, you may lose the fund.**&#x20;

## What happened if I lose my note?

Note is like your private key. If you lose it, you cannot withdraw it from cyclone. If anyone found your note, they can withdraw your fund easily as well. So please keep it in a secure place, just they way you keep your private key.

## Why didn't I receive airdrop?

Cyclone did a large amount of airdrop at time of its launch. You can read this for more details: <https://docs.cyclone.xyz/cyc-token-roadmap#fair-launch-on-iotex-2021-q-1-completed>

All airdrop data are here: <https://github.com/cycloneprotocol/airdrop-data>&#x20;

Please note that some telegram users referral points may have reduced due to the following reasons

1. referrals didn't set up their wallet with the telegram bot (they are not eligible to earn points either)
2. accounts were detected as spammers (similar accounts)
3. referrals didn't join the group

Please stay tuned for new airdrops on BSC.&#x20;


# Вступление

{% hint style="success" %}
Эти документы находятся в активной разработке Cyclone Community.
{% endhint %}

![](/files/-MOs6YW1FPgMGoRLqBqc)

По умолчанию вся история транзакций и остатки на вашем блокчейне являются общедоступными. Все транзакции можно увидеть в обозревателях блоков, таких как Etherscan. Любой, кто знает, что у вас есть конкретный адрес, может быстро просмотреть ваши платежи, отследить источник ваших средств, подсчитать ваши авуары и проанализировать вашу активность в сети.

Но что, если вы не хотите, чтобы ваша история и балансы были публично доступны всем? Что, если вам нужна анонимность и конфиденциальность, когда дело касается ваших транзакций?

![](/files/-MQVTGVIWcsUE69ZZJJ0)

Cyclone создан для решения этих проблем и направлен на обеспечение расширенных экономических стимулов. Cyclone - это межсетевой, не связанный с хранением, универсальный протокол сохранения конфиденциальности с децентрализованным управлением. Cyclone применяет zkSNARK, чтобы обеспечить конфиденциальность транзакций для всех компонентов DeFi, разрывая внутрицепочечную связь между адресами депонента и получателя. Он использует смарт-контракт, который принимает депозиты монет / токенов, которые могут быть сняты по другому адресу. Всякий раз, когда актив выводится из Cyclone, нет возможности связать вывод с депозитом для абсолютной конфиденциальности.

Хотя часть Cyclone zkSNARKs основана на аттестованной реализации [tornado.cash](https://tornado.cash/), она предлагает уникальные преимущества в поддержке кросс-цепочки и является универсальным уровнем сохранения конфиденциальности почти для всех компонентов DeFi с децентрализованным управлением держателями CYC.

## Кросс-чейн

Cyclone был впервые запущен на [IoTeX](https://iotex.io/), поскольку это быстрый и совместимый с EVM блокчейн с активным сообществом. Согласно <https://cyclone.xyz/stats>, благодаря майнингу анонимности и майнингу ликвидности, которые должным образом стимулируют взносы в пулы анонимности, первые четыре запущенных пула анонимности получили TVL на 3+ миллиона долларов США за несколько дней.

Cyclone стремится запустить несколько пулов анонимности для различных активов в Ethereum, Binance Smart Chain ([BSC](https://www.binance.org/en/smartChain)) и других общедоступных блокчейнах, совместимых с EVM, в первом / втором квартале 2021 года. Мы будем рассматривать запуск на Polkadot и других общедоступных блокчейнах, не относящихся к EVM, в третьем квартале. 2021. CYC будет ТОКЕНОМ для всех экземпляров Cyclone Protocol.

## Децентрализованное управление

Cyclone Protocol управляется децентрализованно. Управляющий DAO живет в блокчейне IoTeX, в то время как каждый пул анонимности живет в разных блокчейнах, подключенных к блокчейну IoTeX через мосты (например, [ioTube](https://tube.iotex.io/)).По нашим оценкам, управление DAO будет активировано в начале второго квартала 2021 года.

Владельцы CYC имеют как минимум следующие права:

* Какой блокчейн поддерживать дальше
* Запустить новый пул анонимности с определенным активом
* Обновите параметры существующего пула анонимности, например, CYC для майнинга в день
* Запустить новый пул ликвидности
* Обновите параметры существующего пула ликвидности, например, CYC для майнинга в день
* Другая экономика токенов CYC

## Универсальный уровень защиты конфиденциальности для DeFi с агрегированием доходности

Cyclone Protocol - это гораздо больше, чем миксер токенов. Протокол Cyclone - это первый в мире протокол, который поддерживает пулы анонимности, объединяющие компоненты DeFi, генерирующие доход, и это универсальный уровень повышения конфиденциальности для всех приложений DeFi. Предполагается, что он станет универсальным уровнем конфиденциальности для всех компонентов DeFi в различных блокчейнах, позволяя пользователям участвовать в майнинге анонимности / ликвидности CYC и получать прибыль от базовых компонентов DeFi.


# Как это устроено

### zkSNARKs для транзакций с сохранением конфиденциальности

![](https://github.com/tornadocash/tornado-core/raw/master/docs/diagram.png)

Cyclone прост: пользователь вносит криптовалюту в пул, а затем выводит средства из этого же пула, что скрывает историю депонированных токенов. Для депозитов пользователь отправляет «секрет» в виде хеш-кода (называемого обязательством) и сумму депозита в смарт-контракт Cyclone. Контракт принимает депозит и добавляет обязательство в свой список депозитов.

Позже, когда пользователь решает снять средства, он предоставляет подтверждение с помощью того же секрета посредством неизрасходованного обязательства из списка депозитов смарт-контракта. Технология zkSNARKs позволяет это сделать, не раскрывая, какой именно депозит соответствует этому секрету. Смарт-контракт проверяет доказательство и переводит первоначально внесенные средства на адрес, указанный для вывода. Внешний наблюдатель не сможет определить, с какого депозита поступил этот вывод.

[Для еще более глубокого погружения см. Криптографический обзор.](https://tornado.cash/Tornado_cryptographic_review.pdf)

## Надежная установка

Как анонимная команда мы ценим полную прозрачность и стремимся к безопасному и плавному запуску Cyclone. Все с открытым исходным кодом и поддается проверке - мы применяем точную реализацию zkSNARKs, используемую tornado.cash, которая была тщательно проверена ([схемы](https://tornado.cash/Tornado_circuit_audit.pdf), [смарт-контракты](https://tornado.cash/Tornado_solidity_audit.pdf)). Кроме того, мы напрямую используем результат `Trusted Setup MPC`, который успешно работает на [Ethereum](https://medium.com/@tornado.cash/the-biggest-trusted-setup-ceremony-in-the-world-3c6ab9c8fffa#43d9).

## Контрактные адреса в основной сети IoTeX

* Cyclone Token: `io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh`
* Timelock: `io10jv5lvagcgyvzagdlymagucyp3sy9ykktkudth`
* GovernorAlpha:`io1w8n28wr5dpc2uh3pzvx4n402h0l2agmu67a26x`
* Aeolus: `io1j2rwjfcm7jt7cwdnlkh0203chlrtfnc59424xc`
* Hasher: `io1pfq0g3ye7pp0gamtw4hj9kskunn3ue7400wdm5`
* Verifier: `io1rn3z2c9hc3fxnukwa0cl69hdveh0uy8mar8vqr`

## Контрактные адреса в сети BSC Mainnet

* Cyclone Token:`0x810ee35443639348adbbc467b33310d2ab43c168`
* Aeolus: `0x74fb687ad9c2c7635a8cab7dbb97d2b025fa85fa`
* C3PO Pool:`0x66b5e322dc31f8c7a33ffd23975163795f8d16c7`
* R2D2 Pool: `0xbe19d541389c9d3e03efc08f3d5008e8c9cc42a5`
* BB8 Pool: `0x79459751f6882868d1299bfa412428488b434541`
* Verifier: `0x9286e9271bf497ec39b3fdaef53e38bfc6b4cf14`

## Контрактные адреса в  сети Ethereum Mainnet

* Cyclone Token: `0x8861cff2366c1128fd699b68304ad99a0764ef9a`
* Timelock: `TBD`
* Aeolus: `TBD`
* Hasher: `TBD`
* Verifier: `TBD`


# Пулы анонимности

{% hint style="success" %}
На этой странице перечислены все пулы анонимности, запущенные Cyclone Protocol. Открытие новых пулов будет проходить голосование.
{% endhint %}

## Пулы геометрии

Пулы Geometry запускаются на блокчейне Polygon с помощью Anonymity Mining v2 (AMv2) и Liquidity Mining (LM). Майнинг ликвидности пары CYC-MATIC производит 20 CYC каждый день.

![](/files/-MfRmEbKya73P2WZ6IJt)

| Название пула  | Номинал       | Тип         | Жизненный цикл | CYC в день через AMv2 | Время запуска |
| -------------- | ------------- | ----------- | -------------- | --------------------- | ------------- |
| Пентагон       | `1,000` MATIC | Coin        | `90` Дни       | `0.06`                | `27.7.2021`   |
| Шестиугольник  | `1,000`USDC   | Токен ERC20 | `90` Дни       | `0.03`                | `27.7.2021`   |
| Восьмиугольник | `2` QUICK     | Токен ERC20 | `90` Дни       | `0.03`                | `27.7.2021`   |

**Для пулов токенов ERC20 2 MATIC** (известные как «Номинал монет») **будут депонированы вместе с активом в пул, которые будут полностью возвращены на адрес вывода в качестве платы за газ для будущих операций.** Это удобная функция, позволяющая пользователю в дальнейшем перемещать свои активы ERC20 на адрес вывода, который обычно является новым адресом.

## Пул файлов cookie

Пулы cookie заменили Fish Pools (устарело) и EarlyBirds Pools (устарело) и запускаются на блокчейне IoTeX с помощью Anonymity Mining v2 (AMv2) и Liquidity Mining (LM). Майнинг ликвидности пары CYC-BNB производит 25 CYC каждый день.

![](/files/-M_UBc3NA9h-AZibJ3Mq)

| Название пула | Номинал          | Тип         | Жизненный цикл | CYC в день через AMv2 | Время запуска | Последнее пополнение |
| ------------- | ---------------- | ----------- | -------------- | --------------------- | ------------- | -------------------- |
| Печенье       | `50,000` IOTX    | Coin        | `90` Дни       | `0.2`                 | `9.5.2021`    | `12.8.2021`          |
| хихиканье     | `500,000`IOTX    | Токен XRC20 | `90` Дни       | `1`                   | `9.5.2021`    | `12.8.2021`          |
| имбирь        | `2,000,000` VITA | Токен XRC20 | `90` Дни       | `0.05`                | `9.5.2021`    | `12.8.2021`          |

**Для пулов токенов XRC20 100 IOTX** (известных как «деноминация монет») **будут депонированы вместе с активом в пул, которые будут полностью возвращены на адрес вывода в качестве платы за газ для будущих операций.** Это удобная функция, позволяющая пользователю дополнительно перемещать свои активы XRC20 по адресу вывода, который обычно является новым адресом.

## Бассейны с роботами

Пулы роботов запускаются на блокчейне BSC с помощью Anonymity Mining v2 (AMv2) и Liquidity Mining (LM). Майнинг ликвидности пары CYC-BNB производит 25 CYC каждый день.

![](/files/-MUz1BvKVFVaZ94o2FGB)

| Название пула | Номинал        | Жизненный цикл | CYC в день через AMv2 | Время запуска | Последнее пополнение |
| ------------- | -------------- | -------------- | --------------------- | ------------- | :------------------: |
| C3PO          | `100` BNB      | `90` Дни       | `3`                   | `17.3.2021`   |      `24.9.2021`     |
| R2D2          | `10,000` BUSD  | `90` Дни       | `1`                   | `17.3.2021`   |      `24.9.2021`     |
| BB8           | `25,000`  IOTX | `90` Дни       | `0.5`                 | `17.3.2021`   |      `24.9.2021`     |
| Jonny5        | `3` CYC        | `90` Дни       | `2`                   | `20.3.2021`   |      `24.9.2021`     |
| BTCB          | `0.25` BTCB    | `30`  Дни      | `0.01`                | `21.5.2021`   |           -          |
| ALPACA        | `8000` ALPACA  | `30`  Дни      | `0.01`                | `21.5.2021`   |           -          |
| BUNNY         | `60` BUNNY     | `30`  Дни      | `0`                   | `21.5.2021`   |           -          |

**Для пулов токенов BEP20 0,1 BNB** (известное как «Номинал BNB») **будет помещено вместе с активом в пул, который будет полностью возвращен на адрес вывода в качестве платы за газ для будущих операций.** Это удобная функция, позволяющая пользователю в дальнейшем перемещать свои активы BEP20 на адрес вывода, который обычно является новым адресом.

## Кофейные бассейны

Кофейные пулы запускаются на блокчейне Ethereum с помощью Anonymity Mining v2 (AMv2) и Liquidity Mining (LM). Майнинг ликвидности пары CYC-ETH производит 25 CYC каждый день.

![](/files/-MVXeknlTDlhJJ-joLiF)

| Название пула | Номинал           | Тип         | Жизненный цикл | CYC в день через AMv2 | Время запуска | Последнее пополнение |
| ------------- | ----------------- | ----------- | -------------- | --------------------- | ------------- | :------------------: |
| Латте         | `100` ETH         | Монета      | `90 дней`      | `3`                   | `16.4.2021`   |      `24.9.2021`     |
| Эспрессо      | `100,000` USDT    | Токен ERC20 | `90 дней`      | `3`                   | `16.4.2021`   |      `24.9.2021`     |
| Холодное пиво | `100`  TORN       | Токен ERC20 | `90 дней`      | `0.15`                | `16.4.2021`   |      `24.9.2021`     |
| Арабика       | `10` ETH          | Токен ERC20 | `90 дней`      | `0.3`                 | `15.6.2021`   |           -          |
| Доппио        | `2` ETH           | Токен ERC20 | `90 дней`      | `0.06`                | `15.6.2021`   |           -          |
| SHIB          | `200,000,000`SHIB | Токен ERC20 | `90 дней`      | `0.01`                | `15.6.2021`   |           -          |
| LINK          | `50` LINK         | Токен ERC20 | `90 дней`      | `0.01`                | `15.6.2021`   |           -          |
| MATIC         | `1,000` MATIC     | Токен ERC20 | `90 дней`      | `0.01`                | `15.6.2021`   |           -          |

**Для пулов токенов ERC20 0,2 ETH** (известное как «Номинал монет») **будут депонированы вместе с активом в пул, который будет полностью возвращен на адрес вывода в качестве платы за газ для будущих операций.** Это удобная функция, позволяющая пользователю в дальнейшем перемещать свои активы ERC20 на адрес вывода, который обычно является новым адресом.

## Рыбные бассейны (устарело)

Рыбные пулы запускаются на блокчейне IoTeX с помощью Anonymity Mining v1 (AMv1) и Liquidity Mining (LM). Майнинг ликвидности пары CYC-IOTX производит 25 CYC каждый день.

![](/files/-MV2Ny27oq2q1wxzRhrF)

| Название пула                           | Номинал         | Жизненный цикл | CYC в день через AM           |
| --------------------------------------- | --------------- | -------------- | ----------------------------- |
| Бассейн **1 (**&#x41A;альма&#x440;**)** | `1,000` IOTX    | Бессрочный     | Зависит от количества вкладов |
| Бассейн **2 (**&#x414;ельфи&#x43D;**)** | `10,000` IOTX   | Бессрочный     | Зависит от количества вкладов |
| Бассейн **3 (**&#x410;кул&#x430;**)**   | `100,000` IOTX  | Бессрочный     | Зависит от количества вкладов |
| Бассейн **4 (**&#x41A;И&#x422;**)**     | `1,000,000`IOTX | Бессрочный     | Зависит от количества вкладов |

## Пулы EarlyBirds (устарело)

Пулы EarlyBirds запускаются на блокчейне IoTeX с майнингом анонимности v1 и майнингом ликвидности. Они использовались для первоначального запуска Cyclone Protocol и устарели. Пожалуйста, переместите свои средства в другие пулы.

![](/files/-MVXf5FmHB_n-kyi1fu6)


# Экономика токенов

Обзор

Cyclone Protocol поддерживается токеном CYC, который предназначен для стимулирования поставщиков анонимности, поставщиков ликвидности и пользователей. CYC НЕ производится и не выделяется заранее. Те, кто вносит свой вклад в Cyclone, получат CYC.

* **Общее предложение:** 50,000, фиксированный
* **Оборотная поставка**: \~ 6,000 (текущий номер обновления см. На <https://cyclone.xyz/analytics>)
* **CYC мята**&#x20;
* * 4 пула анонимности Genesis будут предоставлены при запуске на блокчейне
  * **Открытие дополнительных пулов анонимности должно будет пройти через голосование сообщества.**
  * **Майнинг анонимности:** монеты / токены награждаются тем, кто вносит монеты / токены в пулы анонимности и хранит их там какое-то время. Есть две версии майнинга анонимности, которые по-разному используют CYC.
  * **Добыча ликвидности:** CYC вознаграждается пользователям, которые предоставляют ликвидность для CYC на DEX (децентрализованные биржи).
* **CYC полезность**&#x20;
  * **Используйте пул анонимности:** когда кто-то использует пул анонимности для обеспечения конфиденциальности, определенная часть CYC будет сожжена.

    **Децентрализованное управление:** держатели CYC имеют право управлять Cyclone Protocol.

![](/files/-MR8m76BEAlMl5cgXbzE)

Роли и награды

В Cyclone Protocol есть четыре роли.

| Роли                      | Как стать                                                                                | Преимущества                   |
| ------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------ |
| **Провайдер анонимности** | Обеспечьте анонимность, депонируя токены и позволяя им оставаться там на некоторое время | Награда за майнинг анонимности |
| **Пользователь**          | Жетоны ввода и вывода для обеспечения конфиденциальности транзакций                      | Получите конфиденциальность    |
| **Поставщик ликвидности** | Облигационные монеты / токены + CYC к DEX для обеспечения ликвидности CYC                | Награда за майнинг ликвидности |
| **Губернаторы**           | Держатели CYC, которые решают, как будет развиваться протокол                            | Определенные права             |

Токен CYC

Токен CYC выпускается на нескольких блокчейнах и полностью связан через мост. Контрактные адреса CYC представляют собой разные цепочки:

* IoTeX `io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh`&#x20;
* BSC `0x810ee35443639348adbbc467b33310d2ab43c168`
* Ethereum `0x8861cff2366c1128fd699b68304ad99a0764ef9a`&#x20;

Майнинг ликвидности и анонимности

Пожалуйста, обратитесь к следующим разделам для получения подробной информации.

* Ликвидность Майнинг: [https://docs.cyclone.xyz/cyc-token/liquidity-mining](https://docs.cyclone.xyz/v/russkii/cyc-token/liquidity-mining)
* Анонимность Майнинг v1: [https://docs.cyclone.xyz/cyc-token/anonymity-mining-v1](https://docs.cyclone.xyz/v/russkii/cyc-token/anonymity-mining-v1)
* Анонимность Майнинг v2: [https://docs.cyclone.xyz/cyc-token/anonymity-mining-v2](https://docs.cyclone.xyz/v/russkii/cyc-token/anonymity-mining-v2)


# Ликвидность Майнинг

### Ликвидность Майнинг

![](/files/-MVY48g_cK5LimI7zVEw)

* CYC может быть предоставлен DEX на различных блокчейнах, таких как [Uniswap](https://uniswap.org), [Pancake](https://pancakeswap.finance) и [mimo](https://mimo.exchange/pool), для производства токенов пула CYC-ETH (TBD), CYC-BNB и CYC-IOTX по отдельности.
* Внесение токенов пула в контракт для получения ежедневного вознаграждения за ликвидность
* Ежедневное вознаграждение за ликвидность для каждой пары ликвидности на данный момент состоит из 20 токенов CYC, которые могут быть изменены в соответствии с децентрализованным управлением.
* Все токены CYC в ежедневном пуле ликвидности пропорционально распределяются между теми, кто делает ставку на токены пула.
* Майнеры ликвидности могут потребовать вознаграждение за CYC в любое время, сделать ставку или снять свои токены пула в любое время.&#x20;

![](/files/-MRyFGsRIGmSf9okCPDr)

### Платеж

* За майнинг ликвидности на IoTeX БЕЗ КОМИССИИ;
* Для майнинга ликвидности на BSC взимается 0,5% депонированных токенов LP, которые используются для выкупа CYC и сжигания.


# Анонимность Майнинг v1 (AMv1)

{% hint style="success" %}
Анонимность Майнинг v1 (AMv1) использовался для пулов анонимности на IoTeX (<https://cyclone.xyz/iotx>), который будет постепенно упразднен в следующие 3 месяца. Все недавно запущенные пулы основаны на Анонимность Майнинг v2 (AMv2).
{% endhint %}

### Обзор Анонимность Майнинг v1&#xD;

Анонимность Майнинг v1 состоит из двух частей: мята-н-ожог и платы за анонимность. Весь процесс выглядит так, как показано ниже.

![](/files/-MRsWPhL6-P_xd7FWKKK)

### мята-н-ожог

Каждый может чеканить или сжечь CYC! Просто внесите депозит в следующие пулы, и вам будет начислено определенное количество CYC. Напротив, при выводе определенное количество CYC будет выкуплено у DEX (например, mimo) с использованием снятого IOTX и немедленно сожжено.

**Депозит и монетный двор**

| Депозит IOTX | Монетный двор CYC                                    |
| ------------ | ---------------------------------------------------- |
| `D`          | `a * 0.1D / CYCЦена`  (Максимальный предел см. Ниже) |

Сжечь и уйти

| Выкупить CYC с помощью IOTX | Гореть (CYC)         | Всего снятия (IOTX) |
| --------------------------- | -------------------- | ------------------- |
| `a * 0.1D`                  | `a * 0.1D / CYCЦена` | `(1-0.1a-0.01)D`    |

Информация о пуле

| Бассейн                  | **Номинал(IOTX)** | **МАКСИМАЛЬНАЯ МЯТА** | Максимальное количество депозитов |
| ------------------------ | ----------------- | --------------------- | --------------------------------- |
| **Бассейн  1 (Кальмар)** | `1,000`           | `0.2`                 | `8,000`                           |
| **Бассейн 2 (Дельфин)**  | `10,000`          | `2`                   | `4,000`                           |
| **Бассейн 3 (Акула)**    | `100,000`         | `20`                  | `2,000`                           |
| **Бассейн 4 (КИТ)**      | `1,000,000`       | `200`                 | `1,000`                           |

`CYCPrice` - это цена токена CYC в IOTX, а `a` - это ставка бонуса, которая начинается с `2` и линейно уменьшается с каждой четвертью максимального количества депозитов, разрешенных в пуле. например, `a = 2`, если в пуле 380 депозитов1, и `a = 0.5`, если в пуле 5300 депозитов.

Например, если `CYCPrice = 1000 IOTX` и `a = 1`, таблица выше выглядит так, как показано ниже.

| Бассейн                 | **Номинал(IOTX)** | CYC отчеканено / сжигается за депозит / снятие средств |
| ----------------------- | ----------------- | ------------------------------------------------------ |
| **Бассейн 1 (Кальмар)** | `1,000`           | `0.1`                                                  |
| **Бассейн 2 (Дельфин)** | `10,000`          | `1.2`                                                  |
| **Бассейн 3 (Акула)**   | `100,000`         | `13`                                                   |

И если `CYCPrice = 1 IOTX`, таблица выше выглядит так, как показано ниже.

| Бассейн                 | **Номинал(IOTX)** | CYC отчеканено / сжигается за депозит / снятие средств |
| ----------------------- | ----------------- | ------------------------------------------------------ |
| **Бассейн 1 (Кальмар)** | `1,000`           | `2`                                                    |
| **Бассейн 2 (Дельфин)** | `10,000`          | `20`                                                   |
| **Бассейн 3 (Акула)**   | `100,000`         | `200`                                                  |

### Комиссия за анонимность&#xD;

Каждый раз, когда пользователи используют Cyclone Protocol, они платят комиссию в размере 1% от базовых монет / токенов за вывод для всех пулов, известную как комиссия за анонимность. Взимаемые комиссии добавляются в пул анонимности. Это приводит к разделению совокупной комиссии за снятие средств между всеми существующими провайдерами анонимности.

Например,

| мероприятие                                                                                                                                     | Номинал пула 1 | Всего IOTX в пуле 1 |
| ----------------------------------------------------------------------------------------------------------------------------------------------- | -------------- | ------------------- |
| Алиса вносит 10000 IOTX в пул 1                                                                                                                 | `10,000`       | `10,000`            |
| Боб вносит 10 000 IOTX в пул 1                                                                                                                  | `10,000`       | `20,000`            |
| Карл вкладывает 10000 IOTX в пул 1                                                                                                              | `10,000`       | `30,000`            |
| Боб уходит, где он получает обратно 9 900 IOTX (при условии отсутствия сжигания для простоты) и платит 100 IOTX в качестве комиссии в пул.      | `10,050`       | `20,100`            |
| Карл уходит, где он получает 9 949,5 IOTX обратно (при условии отсутствия сжигания для простоты) и платит 100,5 IOTX в качестве комиссии в пул. | `10,150.5`     | `10,150.5`          |
| Алиса уходит, получая обратно 10048,995 IOTX (при условии отсутствия сжигания для простоты) и платит 101,505 IOTX в качестве комиссии.          | `10,000`       | `101.505`           |

Благодаря бонусной ставке `a` провайдеры анонимности могут потенциально получить CYC в качестве вознаграждения. Например, когда Алиса вносила депозит в пул, было 100 депозитов, она получила обратно X CYC. Через некоторое время Алиса решает снять деньги, когда в системе будет 4000 депозитов. в пуле она сжигает X / 2 CYC, чтобы вывести IOTX, а вторую половину оставляет в качестве прибыли.

### Как заработать?&#xD;

1. Депозит и мята CYC
2. Рост деноминации пула по мере вывода пользователей
3. Зарабатывайте награды за LP + плату за LP, когда присоединяетесь как LP.
4. Внесите депозит раньше, чтобы получить больше CYC, и снимите позже, чтобы сжечь меньше. Заработайте разницу.


# Анонимность Майнинг v2 (AMv2)

{% hint style="success" %}
Анонимность Майнинг v2 (AMv2) использовался в пулах анонимности на BSC (<https://cyclone.xyz/bsc>).
{% endhint %}

### **Цели дизайна**&#xD;

Хотя Анонимность Майнинг v1 (AMv1) использовался для запуска первых пулов анонимности в IoTeX, мы знаем об ограничении AMv1 - количество токенов CYC, добытых пользователем (путем помещения его актива в пул анонимности), не пропорционально продолжительности он блокирует свой актив в пуле, что не самый эффективный способ вознаградить долгосрочных поставщиков анонимности.

В AMv2 мы переработали анализ анонимности для достижения следующих двух свойств:

1. Количество добытых CYC пропорционально тому, как долго вы блокируете свой актив в пуле - чем дольше актив остается в пуле, тем больше поставщиков анонимности CYC получает;
2. Обеспечьте продолжительность жизни каждого пула анонимности (обычно 90 дней), чтобы побудить провайдеров анонимности перетасовать свои активы и внести депозит в новый пул, чтобы еще больше повысить степень конфиденциальности (поскольку пул с большим количеством долгосрочных депозитов, но не имеет краткосрочных депозиты / снятие средств предлагает очень ограниченную степень конфиденциальности).

### **Пулы анонимности**

Следующие пулы запущены на BSC.

| Название пула | Номинал       | Жизненный цикл | CYC в день через AM | Всего CYC через AM |
| ------------- | ------------- | -------------- | ------------------- | ------------------ |
| C3PO          | `100` BNB     | `90` Дни       | `3`                 | `270`              |
| R2D2          | `10,000` BUSD | `90` Дни       | `1`                 | `90`               |
| BB8           | `25,000` IOTX | `90` Дни       | `0.25`              | `22.5`             |

Фиксированное количество CYC, такое как `0.1`, `3` или `5`, предоставляется всем провайдерам анонимности в каждом пуле на ежедневной основе.

### **Как это устроено**

1. Внесите BNB (или BUSD или IOTX) в пул C3PO (или R2D2, BB8), при желании внесите X CYC
2. Пусть BNB остается в пуле N дней
3. Выведите BNB из пула и получите Y CYC (конечно Y> X)

Ниже приведен пример, демонстрирующий, как работает AMv2. Пока мы игнорируем все комиссии, чтобы упростить этот пример.

| День | Мероприятие                                                                                        | Всего CYC в пуле | Всего BUSD в пуле |
| ---- | -------------------------------------------------------------------------------------------------- | ---------------- | ----------------- |
| `1`  | День начинается                                                                                    | `0`              | `0`               |
|      | Алиса вносит в пул 10,000 BUSD.                                                                    | `0`              | `10,000`          |
| `2`  | День начинается                                                                                    | `1`              | `10,000`          |
|      | Алиса вносит в пул 10,000 BUSD.                                                                    | `2`              | `20,000`          |
| 3    | День начинается                                                                                    | `3`              | `20,000`          |
| 4    | День начинается                                                                                    | `4`              | `20,000`          |
|      | Алиса снимает 10,000 BUSD и получает 2 CYC.                                                        | `2`              | `10,000`          |
| 5    | День начинается                                                                                    | `3`              | `10,000`          |
|      | Боб снимает 10,000 BUSD и получает 3 CYC (таким образом, его награда за майнинг составляет 2 CYC). | `0`              | `0`               |

### **Платеж**&#xD;

**При выводе актива взимается следующая плата:**

* `1,5%` полученного CYC заряжается и немедленно сжигается
* `0,5%` полученного CYC передается ретранслятору для компенсации стоимости газа на отводе tx.


# Смарт-контракты

## Исходный код

Смарт-контракты Cyclone Protocol имеют открытый исходный код по лицензии GPL-3.0, которую можно найти по адресу <https://github.com/cycloneprotocol/cyclone-contracts>.

## Аудиторские отчеты

### Аудиторский отчет от ChainShield

Никаких серьезных проблем не обнаружено. 5 выводов с низким уровнем воздействия в отчете.

Подробный отчет можно найти здесь:

[Smart Contract Audit Report - Cyclone Protocol v2.pdfSmart Contract Audit Report - Cyclone Protocol v2.pdf - 537KB](https://firebasestorage.googleapis.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-MNeAQGL5skC11vu82Sy%2F-MVwM2h1RmXM94Ik7NAO%2F-MVwMB3sAAKGp9zma217%2FSmart%20Contract%20Audit%20Report%20-%20Cyclone%20Protocol%20v2.pdf?alt=media\&token=03e492f6-bebc-4969-aff4-d0441fe662df)

### Аудиторский отчет Slowmist

[Slowmist](https://www.slowmist.com/en/?lang=en) не выявил серьезных проблем. Подробный отчет можно найти здесь:

[Smart Contract Security Audit Report - Cyclone.pdfSmart Contract Security Audit Report - Cyclone.pdf - 892KB](https://firebasestorage.googleapis.com/v0/b/gitbook-28427.appspot.com/o/assets%2F-MNeAQGL5skC11vu82Sy%2F-MY3RBSlDMhVlkrMsx5Y%2F-MY3RKd1R4T7nq41E4hA%2FSmart%20Contract%20Security%20Audit%20Report%20-%20Cyclone.pdf?alt=media\&token=339e5433-2dac-4022-8310-5a87ad0f9b09)

​


# Дорожная карта

В 2021 году у Cyclone Protocols есть четыре основных вехи: честный запуск на IoTeX, запуск на BSC, продвижение на Ethereum и автоматическое движение для всех.

## автоматический привод для всех (3/4 квартал 2021 г., в процессе)

**Урожайная агрегация с диверсифицированными активами (3 квартал 2021 г., продолжается)**

Мы работаем над получением агрегированных анонимных пулов активов из лучших проектов. Эти новые пулы, вероятно, обеспечат доходность нескольких активов для поставщиков анонимности, которые будут запущены через голосование сообщества в третьем квартале 2021 года.

**Улучшение экономики CYC (3 квартал 2021 г., планирование)**

Протокол Cyclone с момента его запуска постоянно улучшает экономику лежащих в основе токенов. Например, предложение сообщества предлагает вдвое сократить производство CYC для неактивных пулов анонимности, в то время как другое предлагает сделать номинал CYC более прозрачным. Мы проводим исследования и эксперименты, чтобы подготовить предложения по экономическому улучшению.

**Управление DAO (4 квартал 2021 г., планирование)**

Управляющий DAO будет активирован и станет владельцем всех обслуживающих контрактов, чтобы сделать протокол циклонов полностью автономным. Избирателям предлагается голосовать через цепочку за новые пулы анонимности, обновлять параметры, среди многих других инициатив.

**Общий уровень для приложений DeFi (4 квартал 2021 г., планирование)**

В четвертом квартале 2021 года мы сосредоточимся на внедрении Cyclone Protocol, установив партнерские отношения со всеми основными приложениями и продуктами DeFi, предоставив им анонимность.

Продвигать на Ethereum (2 квартал 2021 г., завершено)

Запустите Cyclone Protocol с анонимным майнингом и майнингом ликвидности на Ethereum. Запущены новые пулы для топовых приложений DeFi. Токены CYC на ETH могут быть беспрепятственно перенесены между BSC и IoTeX в соотношении 1: 1 через мосты, такие как [ioTube](https://tube.iotex.io/eth-iotx).

Подробности смотрите здесь - <https://snapshot.org/#/realcycloneprotocol.eth/proposal/QmYRA4sNuZWnPjsB97qZAayiqVa6pnqBCLtLpnNQCjyP6G>

Больше активов будет поддерживаться пулами анонимности на Ethereum посредством голосования сообщества.

Старт на BSC (2 квартал 2021 г., завершен)

Запустите Cyclone Protocol с анонимным майнингом и майнингом ликвидности на BSC. Токены CYC на BSC можно беспрепятственно передавать в кросс-цепочку из / в ETH и IoTeX в соотношении 1: 1 через мосты, такие как [ioTube](https://tube.iotex.io/bsc-iotx). Подробности смотрите здесь - <https://cycloneprotocol.medium.com/tbd-on-chains-562261eac886>

Больше активов будет поддерживаться пулами анонимности на BSC через голосование сообщества.

Ярмарка запуска IoTeX (1 квартал 2021 г., завершена)

Честные запуски всегда считались святым Граалем для криптовалюты. Мы решительно выступаем за справедливый запуск для сообщества. Первоначально токены CYC будут распространяться среди сторонников сообщества без цены или абсурдной оценки.

Когда мы развертываем контракты с токенами CYC, 2021 CYC (да, 2021!) Будет отчеканен и зарезервирован для раздачи и удачного розыгрыша.

### **День 1 - День 7**&#xD;

День 1 начался 19.01.2020 в 6:00 по всемирному координированному времени. [Посмотрите этот твит](https://twitter.com/cycloneprotocol/status/1351413127112396802)!

Это фаза начальной загрузки пулов циклонов, во время которой будут развернуты 3 пула Early Birds (где mint-n-burn и добыча ликвидности отключены при включенном майнинге анонимности). Всем предлагается внести IOTX в 3 пула ранних пташек, чтобы получить CYC через раздачу и удачный розыгрыш, который работает следующим образом:

**Награды Early Birds**

* Каждый депозит в пул 1 - Early Sparrow (10,000 IOTX) приносит 5 баллов.
* Каждый депозит в пул 2 - Early Raven (100000 IOTX) приносит 60 баллов.
* Каждый депозит в пул 3 - Early Eagle (1,000,000 IOTX) приносит 720 баллов.
* Пользователи [mimo](https://mimo.exchange) (у которых есть хотя бы 1 транзакция на [mimo](https://mimo.exchange)) до 31.12.2020 по PT зарабатывают 50 баллов
* Все держатели ковшей [IOTX](http://member.iotex.io) до 31.12.2020 PT зарабатывают 50 баллов
* Каждый адрес может иметь не более 8000 точек.
* 1500 CYC будут розданы на все участвующие адреса пропорционально полученным баллам.

**Награда для ранних тестировщиков**

* 88 CYC будут отправлены всем ранним тестировщикам, которые держали токены тестирования [CYC](https://iotexscan.io/token/io1xhw6hc3sm0fs8gtqwhj843ytgqthxe9uv4aced).

**Награды Социальные птицы**&#x20;

* 100 CYC будут розданы всем социальным защитникам на основе баллов.&#x20;
* Telegram Bounty (максимум 1000 баллов !!)&#x20;
  * Подписывайтесь на твиттер - обязательно (для будущих розыгрышей)&#x20;
  * Присоединиться к телеграмм группе и каналу - обязательно, 2 балла&#x20;
  * Пригласите друзей присоединиться к группе - необязательно, 1 балл за каждого реферала&#x20;
  * Поговорите с <http://t.me/cyclonebountybot>, чтобы начать&#x20;
  * Спамеры аннулируют свои баллы в случае обнаружения&#x20;
* **Обратите внимание, что эти баллы отличаются от баллов Early Bird Rewards.**

Обратите внимание на правила для рефералов в Telegram:

1. &#x20;вам нужно указать адрес кошелька
2. вашим рефералом должны быть реальные люди. Основное требование - они указали адрес своего кошелька и в группе.
3. вас не распознают как спамеров или ботов.

**Удачные розыгрыши**

* **3 CYC будут отданы 15 крупнейшим хешам транзакций в Раннем пуле 1.**
* **30 CYC будут отданы 15 крупнейшим хешам транзакций в Early Bird Pool 2.**
* **300 CYC будут отданы 15 крупнейшим хешам транзакций в Early Bird Pool 3.**

### **В День 8 (26.01.2021, 06:00 UTC)**

1. Происходят раздача и удачный розыгрыш
2. Разверните пулы 1, 2, 3 и 4, в которых включены все компоненты экономики токенов (mint-n-burn, добыча ликвидности и майнинг анонимности), сохраняя при этом пулы Early Bird. Мы рекомендуем пользователям переводить свои средства из пулов Early Bird в пулы.
3. Торговля на [mimo](https://mimo.exchange) начинается!


# Развертывание

## Основная сеть Ethereum

* Cyclone Token: `0x8861cff2366c1128fd699b68304ad99a0764ef9a`
* Aeolus LP Mining v2.1: `0xdc71bc29d12960a3ee5452fac6f033a1b8e756fb`
* Hasher: `0x949452e32db13a5771445cf20b304474b866202b`
* Verifier: `0x7C994FB3a8C208C1750Df937d473040c604292D6`
* UniswapV2 Router: `0x602b40bf327c10370483ae5ecde15a7bb480dcca`

**Пулы анонимности**

* Latte - 100 ETH - Pool: `0xd619c8da0a58b63be7fa69b4cc648916fe95fa1b`&#x20;
* Expresso - 100000 USDT - Pool: `0xa38b6742cef9573f7f97c387278fa31482539c3d`
* Cold Brew - 100 TORN Pool: `0x09f03488291063a8f3c67d2aab7002419d11c113`

## Основная сеть BSC

* Cyclone Token:`0x810ee35443639348adbbc467b33310d2ab43c168`
* Verifier: `0x9286e9271bf497ec39b3fdaef53e38bfc6b4cf14`
* Aeolus LP Mining v2: `0x92a737097d711bec4c31351997254e98e5f0d430`
* PancakeSwap Router: `0x10ed43c718714eb63d5aa57b78b54704e256024e`

**Пулы анонимности**

* C3PO - 100 BNB Pool:`0x66b5e322dc31f8c7a33ffd23975163795f8d16c7`
* R2D2 - 10,000 BUSD Pool: `0xbe19d541389c9d3e03efc08f3d5008e8c9cc42a5`
* BB8 - 25,000 IOTX Pool: `0x79459751f6882868d1299bfa412428488b434541`
* Jonny5 - 3 CYC Pool: `0xd90a6bf8439ef7214cf00da83e926068b6a507ec`

## Основная сеть IoTeX&#x20;

* Cyclone Token: `io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh`
* Timelock: `io10jv5lvagcgyvzagdlymagucyp3sy9ykktkudth`
* GovernorAlpha:`io1w8n28wr5dpc2uh3pzvx4n402h0l2agmu67a26x`
* Aeolus LP Mining v2: `io1rgwa22h66ney8sclpyrdqxwy4n0czjztc2rpu0`
* Mimo Router: `io1z2wmt6y74ctc9l4y4ly73gkynp0p4haj2d326m`

**Пулы анонимности**

* Biscuit - 50,000 IOTX: `io13lp2c88eqanyjg3h4y2klyax5s28gfx9q0j4nv`
* Snickerdoodle - 500,000 IOTX: `io1j2nnwztawyd7cnp3x5vewf2wnrjlp4psz556kv`
* Gingersnaps - 2,000,000 VITA: `io1jm0rr385aw4vxqkzn4vx2y0s7ja80etexg7ucu`

## Основная сеть Polygon

* Cyclone Token:`0xcFb54a6D2dA14ABeCD231174FC5735B4436965D8`
* Verifier: `0xb6e9ea062a7719846bc9e3e3ae8712e74faad376`
* Aeolus LP Mining v2: `0xA8c187d8773bc9E49A10554715Ff49Bdcf39d55D`
* QuickSwap Router: `0xFCb851Ad3D98BD241dbE395cA1E6080f489D4624`

**Пулы анонимности**

* Pentagon - 1,000 MATIC: `0x5194932AD0f889B1E31041b8006A58FF70A11F43`
* Hexagon - 1,000 USDC: `0x8e6e472e4a3f8b1951D2970f59B3944eFf707e10`
* Octagon - 2 QUICK: `0x517CeeE661b57ed7d5b615bF700cb307D87a025B`


# Децентрализованное управление

[Управление циклонами основано на модели комплексного управления.](https://compound.finance/docs/governance) Cyclone будет управляться и обновляться держателями токенов CYC с использованием трех отдельных компонентов: токена CYC, модуля управления (Governor Alpha) и Timelock. Вместе эти контракты позволят сообществу предлагать, голосовать и вносить изменения в Cyclone. Предложения могут включать такие изменения, как добавление поддержки для новых активов, оптимизация текущих пулов токенов, регулировка скорости чеканки / сжигания CYC и многое другое.

![](/files/-MNeNYZH_9yvoogvnnn6)

По нашим оценкам, управление DAO будет активировано в начале второго квартала 2021 года.

Владельцы CYC имеют как минимум следующие права:

* Какой блокчейн поддерживать дальше
* Запустить новый пул анонимности с определенным активом
* Обновите параметры существующего пула анонимности, например, CYC для майнинга в день
* Запустить новый пул ликвидности
* Обновите параметры существующего пула ликвидности, например, CYC для майнинга в день
* Другая экономика токенов CYC


# Аналитика

Приборная панель

Вы можете использовать здесь панель управления - <https://cyclone.xyz/analytics> - которая показывает в режиме реального времени предложение в долларах CYC, количество депозитов, стоимость пула в долларах США, а также другую информацию.

![](/files/-MS03pKKGMgZKh-WX2qq)

График QL

Мы расшифровали и проиндексировали данные контрактов Cyclone, чтобы каждый мог выполнить мощный анализ с помощью простых запросов GraphQL через <https://analytics.cyclone.xyz/playground>. Некоторые типичные запросы выглядят следующим образом.&#x20;

![](/files/-MRT7t86WTEoLuibF46g)

### Всего IOTX, депонированных во всех пулах

`query { tokensInPoolPerDay(count: 7) { name values { timestamp value } } }`

### Общая сумма депонированного IOTX и связанная с этим комиссия

`query { total { iotx fee } }`

### Всего IOTX, депонированных за день

`query { totalPoolPerDay(count: 7) { timestamp value } }`

### Очки, которые пользователь получает за раздачу

`query { airdropScore(address: "io1tmt2vp28afp2vd3h598n0lwu6sj3lyc64apjw3") }`

### 15 самых удачных вкладов в пуле 1

`query { luckyDrawTopN(poolAddress: "io1rqm2keejw4jypgl0w6hr96r054ns63u0hqrfuy", n: 15) { hash address method } }`

### 15 самых удачных вкладов в пуле 2

`query { luckyDrawTopN(poolAddress: "io1gkeeljp4grwskgq3tl2xqglqy546nhhmytnqqp", n: 15) { hash address method } }`

### 15 самых удачных вкладов в пуле 3

`query { luckyDrawTopN(poolAddress: "io1mlcgsv4ma0t6gffpxg2gva3lwqnlj5msradxk6", n: 15) { hash address method } }`


# Разработка

{% hint style="success" %}
На этой странице объясняется, как компилировать / развертывать / тестировать / взаимодействовать со смарт-контрактами. Существует четыре основных контракта: токен Cyclone, GovernorAlpha / Timelock, Aeolus и Cyclone (Coin, ERC20).
{% endhint %}

### Подготовка

1. Установить трюфель

   ```
   npm install -g truffle
   ```
2. Установить зависимости

   ```
   npm install
   ```
3. Установите `ioctl` -инструмент командной строки для взаимодействия с блокчейном IoTeX

установите ioctl, следуя инструкциям: <https://docs.iotex.io/developer/ioctl/install.html>

### Составляем контракты

`npm run build:contract`

### Развернуть контракты

* **CycloneToken**

1. Развернуть CycloneToken `ct`

```
ioctl contract deploy bytecode CYCLONETOKEN_BYTECODE ABI_PATH '{"_operator": "OPERATOR_ADDRESS", "_lp": "INITIAL_LP_ADDRESS"}'
```

* **Timelock & GovernorAlpha**

1. Развертывать Timelock `tl`

```
ioctl contract deploy bytecode TIMELOCK_BYTECODE TIMELOCK_ABI_PATH '{"admin_": DEPLOY_ADMIN_ADDRESS, "delay_": DELAY_IN_SEC}'
```

&#x20;   2\. Развертывать GorvernorAlpha `ga` (например, продолжительность голосования: 3 дня)

```
ioctl contract deploy bytecode GORVERNOR_BYTECODE GOVERNOR_ABI_PATH '{"timelock_": TIMELOCK_ADDRESS, "sushi_": CYCTOKEN_ADDRESS, "guardian_": ADMIN_ADDRESS, "votingDuration_": 51840}'
```

&#x20;  3\. Установите ожидающего администратора Timelock на GovernorAlpha `ga`

```
 ioctl contract invoke function TIMELOCK_ADDRESS TIMELOCK_ABI_PATH "setPendingAdmin" --with-arguments '{"pendingAdmin_": GOVERNOR_ADDRESS}'
```

&#x20;  4\. Accept Admin from GovernorAlpha `ga` triggered by guardian&#x20;

```
 ioctl contract invoke function GOVERNOR_ADDRESS GOVERNOR_ABI_PATH "__acceptAdmin"
```

* **Aeolus**

1. Добавьте ликвидность для CYC / IOTX на MimoFactory и получите токен CYC-IOTX LP
2. Разверните Aeolus `as` с `ct` адресом

```
ioctl contract deploy bytecode AEOLUS_BYTECODE ABI_PATH '{"_cycToken": CYC_TOKEN, "_lpToken" : LP_TOKEN}'
```

&#x20;   3\. Вызовите `ct.`addMinter (), чтобы установить `as` в качестве минтеров для токена CYC

```
ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": AEOLUS_ADDRESS}'
```

* **CoinCyclone, ERC20Cyclone**

1. Развертывать Hasher `hr`

   ```
   ioctl contract deploy bytecode HASHER_BYTECODE
   ```
2. Развертывать Verifier `vr`

   ```
   ioctl contract deploy bytecode VERIFIER_BYTECODE
   ```
3. Развертывать CoinCyclone `cc`, ERC20Cyclone `ec` связано с Hasher `hr` с `as`, `vr`, `ct`, `mf`и при необходимости адрес токена XRC20

   ```
   link CoinCyclone_BYTECODE/ERC20Cyclone_BYTECODE with HASHER_ADDRESS (use linker.js)
   ```

   ```
   ioctl contract deploy bytecode CoinCyclone_LINKED_BYTECODE CoinCyclone_ABI_PATH'{"_verifier": VERIFIER_ADDRESS, "_cyctoken": CYCTOKEN_ADDRESS, "_mimoFactory": MIMOFACTORY_ADDRESS, "_aeolus": AEOLUS_ADDRESS, "_initDenomination" : DENOMINATION_AMOUNT, "_denominationRound": DENOMINATION_ROUND, "_merkleTreeHeight" : MERKLETREE_HEIGHT, "_operator": TIMELOCK_ADDRESS}'
   ```

   ```
   ioctl contract deploy bytecode ERC20Cyclone_LINKED_BYTECODE ERC20Cyclone_ABI_PATH '{"_verifier": VERIFIER_ADDRESS, "_cyctoken": CYCTOKEN_ADDRESS, "_mimoFactory": MIMOFACTORY_ADDRESS, "_aeolus": AEOLUS_ADDRESS, "_initDenomination" : DENOMINATION_AMOUNT, "_denominationRound": DENOMINATION_ROUND, "_merkleTreeHeight" : MERKLETREE_HEIGHT, "_operator": TIMELOCK_ADDRESS, "_xrc20Token" : XRC20TOKEN_ADDRESS}'
   ```
4. Вызовите `ct.addMinter ()`, чтобы установить `cc` и `ec` в качестве minters для токена CYC

   ```
   ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": CoinCyclone_ADDRESS}'
   ioctl contract invoke function CYCTOKEN_ADDRESS CYCTOKEN_ABI_PATH "addMinter" --with-arguments '{"_minter": ERC20Cyclone_ADDRESS}'  
   ```
5. Вызов `as.`addAddressToWhitelist (), чтобы установить `cc` и `ec` в белые списки для Aeolus, чтобы вызвать `addReward ()`

   ```
   ioctl contract invoke function AEOLUS_ADDRESS AEOLUS_ABI_PATH "addAddressToWhitelist" --with-arguments '{"addr": CoinCyclone_ADDRESS}'
   ioctl contract invoke function AEOLUS_ADDRESS AEOLUS_ABI_PATH "addAddressToWhitelist" --with-arguments '{"addr": ERC20Cyclone_ADDRESS}'
   ```

### Контракты на тестирование

1. версия узла `nvm use 11.15.0`
2. построить схемы zk `npm run build`
3. если вы хотите использовать `test` сеть, просто запустите `npm run test` (дефолт).

   Если вы хотите использовать `development`сеть,

   * изменить truffle-config.js (раскомментировать сеть разработки)
   * пробег `ganache-cli i 1337`
   * пробег`npm run test`

### Взаимодействие с контрактами Cyclone \[Анонимность Майнинг]

1. Требования
2. `nvm use 11.15.0`
3. `npm install -g npx`
4. Настроить файл .env
   * `cp .env.example .env`
   * `vi .env` - добавьте свой закрытый ключ, развернутый адрес контракта и номинал
5. Построить схемы zk: `npm run build`. Обратите внимание, что если вы хотите создавать схемы zk (включая verifier.sol, proof / verify-keys) локально, вам необходимо:
   * `npm uninstall websnark`
   * `npm install websnark@"git+https://github.com/tornadocash/websnark.git#2041cfa5fa0b71cd5cca9022a4eeea4afe28c9f7"`
   * `npm run build:local` - Это может занять более 10 минут, поскольку установка доверия выполняется локально.
6. Депозит
   * Тестовая сеть

     `./client.js deposit IOTX|XRC20 --rpc http://api.testnet.iotex.one:80`
   * Mainnet

     `./client.js deposit IOTX|XRC20 --rpc http://api.iotex.one:80`
7. Снять со счета
   * Тестовая сеть

     `./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.testnet.iotex.one:80 --relayer RELAYER_URL`
   * Mainnet

     `./client.js withdraw NOTE RECIPIENT_ADDRESS --rpc http://api.iotex.one:80 --relayer RELAYER_URL`

### Взаимодействие с контрактом Aeolus \[Ликвидность Майнинг]

1. Добавьте ликвидность для CYC / IOTX на MimoFactory и получите токен CYC-IOTX LP
2. Депозит

* Утвердить токен CYC-IOTX LP

```
ioctl xrc20 approve AEOLUS_ADDRESS AMOUNT -c LPTOKEN_ADDRESS
```

* Депозит CYC-IOTX LP Token

```
ioctl contract invoke function AEOLUS_ADDRESS abi/Aeolus.json "deposit" --with-arguments '{"_amount": AMOUNT}'
```

&#x20;  3\. Снять со счета

```
ioctl contract invoke function AEOLUS_ADDRESS abi/Aeolus.json "withdraw" --with-arguments '{"_amount": AMOUNT}'
```

### Взаимодействие с GovernorAlpha контракт \[Управление]&#xD;

&#x20; 1.Самостоятельно делегируйте или делегируйте свой токен CYC для управления. Если вы не делегируете свои голоса, жетон не будет считаться правом голоса.

```
ioctl contract invoke function CYCTOKEN_ADDRESS abi/CycloneToken.json "delegate" --with-arguments '{"delegatee": ADDRESS_YOU_WANT_TO_DELEGATE}' -s mainnet -y
```

&#x20;   2\. Предложите новое изменение в контрактах циклонов, таких как updateConfig, changeGovDAO и updateVerifier. У предлагающего должно быть более 1000 токенов CYC. Голосование продлится 3 дня. - Используйте [abi-encoder](https://adibas03.github.io/online-ethereum-abi-encoder-decoder/#/encode), чтобы получить закодированные данные аргумента.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "propose" --with-arguments '{"targets": [CYCLONE_ADDRESS], "values": [0], "signatures": ["updateConfig(uint256,uint256,uint256,uint256)"], "calldatas": ["..."], "description": "update configs in cyclone contract"}'
```

&#x20;   3\. В течение 3 дней, в течение которых проводится голосование, держатели токенов, которые делегируют или делегируют собственные полномочия, могут голосовать за определенное предложение.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "castVote" --with-arguments '{"proposalId": 1, "support": true}'
```

&#x20;  4\. Если после 3 дней голосования, если предложение набирает более 4000 голосов CYC, предлагающий может поставить транзакцию в очередь в Timelock.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "queue" --with-arguments '{"proposalId": 1}'
```

&#x20;  5\. После задержки временной привязки предлагающий может выполнить транзакцию с временной привязкой.

```
ioctl contract invoke function GOVERNOR_ADDRESS abi/GovernorAlpha.json "execute" --with-arguments '{"proposalId": 1}'
```

###


# Сообщество

## Тwitter

<https://twitter.com/cycloneprotocol>

## Telegram

Анонсирующий канал - <https://t.me/cycloneprotocol>

Чат сообщества - [ ](< https://t.me/group>)[ ](< https://t.me/group>)<https://t.me/cyclonegroup>

## Medium Blogpost

{% embed url="<https://cycloneprotocol.medium.com/>" %}

## BitcoinTalk Thread

<https://bitcointalk.org/index.php?topic=5310841.0>


# Пошаговое руководство

## Анонимность Майнинг

### Как внести депозит

<https://docs.cyclone.xyz/a-step-by-step-guide/step-by-step-how-to-deposit>

### Как снять

<https://docs.cyclone.xyz/a-step-by-step-guide/step-by-step-how-to-withdraw>

## Как добывать ликвидность

<https://docs.cyclone.xyz/a-step-by-step-guide/how-to-liquidity-mining>


# Как внести депозит

Working in progress

Cyclone с мобильным приложением ioPay

Официальный кошелек IoTeX, ioPay, доступен для загрузки для мобильных устройств (iOS, Android, APK).

Скачать с [https://iopay.iotex.io](https://iopay-wallet.iotex.io/)

![](https://lh3.googleusercontent.com/4sUoaG9r8KGTwMb9Vh03DovKK-ov8wV0itguOp_OHulcLuFNVXWGjL5WGfGomT7MQlz_wVGSZjTWQ6oKDjKLo0jjyMBdv5ya87d6KaxMXc4mGmlbSsdDFL5kfj3PfsRONZh1cSca)

### Шаг 1 - Создайте / Импортируйте кошелек на ioPay&#xD;

Создайте новый адрес: создайте кошелек, если у вас его нет. При появлении запроса запишите свой адрес, закрытый ключ / мнемоническую фразу.

Импорт кошелька: если у вас уже есть кошелек IoTeX, вы можете импортировать его, используя файл хранилища ключей, закрытый ключ / мнемоническую фразу.

![](https://lh3.googleusercontent.com/alxRfGVg4-YY7GPSMUNpMzbWDHT4i01TxVWBeq7V6520Dr30Vc5V3Hyp9KENy5ACNkCtYtAvEEryIMPDxRVqVjpJvMM2oxHEcxySdZux7lwYDsUZW8ssH6iwehqL4H0Ke345qTDC)

### Шаг 2 - Подготовьте IOTX&#xD;

Вы можете использовать депозит на ioPay, чтобы просмотреть варианты получения IOTX.

### Шаг 3 - Откройте «Приложение Cyclone» в «Discover».

![](https://lh3.googleusercontent.com/ty58p8TtKnwWk62UDMZvk3ea-Lu4_wXVGCvjiwGqqoHlRcyrxhGKmuJOtu9g4RcS1c3I4H8m848_8YW12V_yjdw5iwHwMLqCOyFh4kYUFxYV6T2EHC0JAmymETEkmMXA9WF9g3Rv)![](https://lh3.googleusercontent.com/PSCb26Mtoh8oL1IlZyxUtWV2_N7B8qVJHgbqCf16wGDMOQHzcB1PktSnyA-TSdMYnoSW50beq2IfXN-Uvo5JzTMl9difkOxu3s4Z_3bHqax8HO_9h90o5brlUdBnPvXytuoV59Js)

Нажмите «Еще», если вы не можете найти значок Cyclone, показанный выше. Или вы можете напрямую ввести или вставить URL-адрес веб-сайта Cyclone ([https://cyclone.xyz/](https://cyclone.xyz)) в верхнюю строку поиска.

### Шаг 4 - Подключите кошелек к Cyclone

![](https://lh4.googleusercontent.com/XgXox7_J2I-b8aklbaCAUgwjZdzBO1SLNHhU0WfXjfi1oExXOKYeNnX_rMyaKozrSK5-giZdZl7u9IS4Z19HxRNikwGlGCYhRoyxzQOrkkinzeTbYIarJf6kHJ0hXR8Ch6Eii_bO)

### Шаг 5 - Выберите пул и нажмите «ДЕПОЗИТ».

![](https://lh4.googleusercontent.com/_dZmoGT0FQbUfTosTjS7Dce3qIhpCWFiuyqERFWpDSr3onnVbCqGNywKP90RKaiRhtmqKMXd4Bjo6XekMTh3tj2VVwiUyUEdCZIYrG35LtAtJV5hToyVChWStW1LntKXuvaGqEkK)

### Шаг 6 - Подготовка к отправке депозита&#xD;

1. Щелкните значок копии в конце заметки и создайте резервную копию на своем телефоне из ioPay (Важно! Вы потеряете свои средства, если не найдете заметку)
2. Установите флажок «Я сделал резервную копию заметки» и вставьте ее в поле с белой рамкой ниже.

![](https://lh6.googleusercontent.com/zEWP04qPsTsekV0zdqWZCWOCKHv6HTvrrOfazNv81xtovtKzh9NzAu_hfST72oo6kqs_pfx86xjgtqKvbZxgcAcHGtM8p4Wk-Uj7APa5in0wPxAE9Xqf9zMGoUXi0MNszldG-Wld)![](https://lh6.googleusercontent.com/XpNjrEtDY5bC5m3N_BU1DvR1TbQnYtj2pzRTYnOBm_HbpOKHZL26C4HudN8IJd54k0107eNu_7zDPVRQ2OOwAKO5b1eQVs9enff6Cn90JRhRVBo2QSzfWkJzPOcfnlPVRUb9-lKc)

### Шаг 7 - Нажмите «ОТПРАВИТЬ ДЕПОЗИТ».

![](https://lh6.googleusercontent.com/bqe3ZDzcFbbpE_X898D2KoFc4EJFSU7GlcGN4Xd1cxUoWktKRAtQkBtMwW8mAtGKCwQB3BKTf-uNxOOOmOXy43mebLrJIJjCkFYpfEd7aFbdRQsackUaOan2TK-Z1wlZe4XpJwT3)

### Шаг 8 - Подтвердите в ioPay, чтобы подписать транзакцию, и все готово

Cyclone с ioPay Desktop

Если вы готовитесь к использованию рабочего стола ioPay, выполните следующие действия:

1. Загрузите рабочий стол ioPay [https://iopay.iotex.io   ](https://iopay-wallet.iotex.io/)
2. Откройте ioPay Desktop
3. Создайте кошелек или импортируйте кошелек
4. Убедитесь, что в вашем кошельке достаточно средств
5. Посетите [https://cyclone.xyz/   ](https://cyclone.xyz/)
6. Нажмите кнопку «Запустить приложение».
7. Выберите пул, затем нажмите «ДЕПОЗИТ».
8. Нажмите кнопку «Копировать», чтобы скопировать
9. ПРИМЕЧАНИЕ.
10. Убедитесь, что ваше ПРИМЕЧАНИЕ надежно зарезервировано на вашем ноутбуке / компьютере. ПРИМЕЧАНИЕ также будет автоматически загружено как текстовый файл.
11. Установите флажок «Я создал резервную копию заметки» и вставьте заметку в поле с белой рамкой ниже.
12. Нажмите «ОТПРАВИТЬ ДЕПОЗИТ».
13. Подтвердите на ioPay и подпишите транзакцию
14. У вас все настроено


# Как снять

Вы можете использовать мобильное приложение ioPay или настольный компьютер ioPay, чтобы выйти из Cyclone Protocol.

### Шаг 1. Перейдите на вкладку «Снятие»

![](/files/-MRxtJyp-Ii8gVn8z7WD)

### Шаг 2 - Вставьте примечание для проверки

![](/files/-MRxte3SZaevKaelTWrx)

### Шаг 3 - Введите свой адрес&#xD;

Вы всегда можете вывести на тот адрес, который вы использовали для депозита. Но если вы намереваетесь использовать Cyclone Protocol для защиты своей транзакции, внесите депозит на новый адрес, который никогда не использовался.

### Step 4 - Click "WITHDRAW" Button and Confirm the Withdraw

![](/files/-MRxuFe7NTi0pORFVkou)

Доказательство zkSNARKs генерируется с использованием предоставленной вами заметки, что обычно занимает 30 секунд. Если вы зависаете на этой странице более 2 минут, обновите приложение Cyclone и повторите попытку.

### Шаг 5 - Relayer вызывает контракт Cyclone и финансирует ваш адрес&#xD;

Ретранслятор вызовет контракт Cyclone и оплатит ваш адрес примерно через 30 секунд.


# Как добывать ликвидность

You can use ioPay mobile app or ioPay desktop to setup liquidity mining for Cyclone Protocol.

### Вы можете использовать мобильное приложение ioPay или настольный компьютер ioPay для настройки добычи ликвидности для Cyclone Protocol.

![](/files/-MS05nM15A_S2fl5yJ9U)

### Шаг 2 - Нажмите «ДОБАВИТЬ ЛИКВИДНОСТЬ», чтобы добавить ликвидность на mimo.exchange.&#xD;

Убедитесь, что в вашем кошельке достаточно $ CYC и $ IOTX, и нажмите «Поставить», чтобы продолжить. После завершения транзакции ваши $ CYC и $ IOTX переводятся в mimo для [Automated Market Maker (AMM)](https://academy.binance.com/en/articles/what-is-an-automated-market-maker-amm), и вы получите токен пула в свой кошелек.

[Вы всегда можете проверить здесь, чтобы получить представление о текущем состоянии ликвидности. ](https://info.mimo.exchange/pairs/io1f4acssp65t6s90egjkzpvrdsrjjyysnvxgqjrh)

![](/files/-MS06HuN6mHDLPodOjQi)

### Шаг 3 - Вернитесь на вкладку «Добыча ликвидности», нажмите «СТАВКА» и подтвердите.&#xD;

Таким образом, токены вашего пула будут включены в контракт Cyclone, и вы начнете зарабатывать $ CYC! Вы всегда можете проверить верхнюю часть вкладки Liquidity Mining, чтобы узнать, сколько долларов CYC вы зарабатываете, и текущий APY, например, 2168%!

### Шаг 4 - Используйте «ЗАЯВЛЕНИЕ», чтобы получить вознаграждение за майнинг ликвидности&#xD;

В любое время нажмите «ЗАЯВИТЬ», чтобы обменять заработанные вами $ CYC, которые будут переведены на ваш кошелек после завершения транзакции.

### Шаг 5 - Используйте «UNSTAKE», чтобы вывести токен пула&#xD;

Если вы закончили майнинг ликвидности, нажмите «UNSTAKE», чтобы перевести токен пула в свой кошелек. При желании вы можете вернуться на <https://mimo.exchange/pool>, чтобы удалить свою ликвидность и вернуть $ CYC и $ IOTX.


# Аудит

Предварительный отчет

Предварительный отчет сделан [ChainShield](https://chainshield.io/). Никаких серьезных проблем не обнаружено. В ближайшее время мы предоставим отчет.

Полный отчет

В настоящий момент [Slowmist](https://www.slowmist.com/?lang=zh) работает над полным аудиторским отчетом, который будет опубликован по завершении. Мы активно общаемся с командой Slowmist на ежедневной основе, и пока никаких серьезных проблем не выявлено.


