Volatility Tokens Usability

Tradable outside the CVI platform

The unique technology behind the Volatility Tokens allows them to be easily tradable on DEXs and secondary markets without losing their peg to their relevant index. For example, users instead of going to the CVI platform and opening a position when they believe volatility in the market will rise, can simply go to a secondary market such as Uniswap and buy the ETHVOL token for the pair USDC-ETHVOL.

Buying ETHVOL or CVOL tokens on secondary markets is equivalent to taking a long position on ETHVI and CVI indexes. But unlike opening a position on the platform, when you buy Volatility Tokens:

  • You can sell it immediately on secondary markets, with no lockup period.
  • There are no purchase/sell fees.
  • If you buy Volatility Tokens, then provide liquidity to their relevant pool on the DEX, and then stake your LP tokens in the CVI platform, you will be also earning GOVI rewards on top of the transaction fees earned from providing liquidity on the DEX.
Users can choose which of these options best suits their needs. The tokens offer an easy UX (simply buying them on a secondary market) and composability, while more advanced traders can continue opening/closing individual positions directly on the platform. In a similar fashion, selling the Volatility Token can be made either via the platform or on the secondary market (DEX) according to where higher returns are expected.

Arbitrageurs Playground

As the volatility tokens can be traded in both the CVI platform and Dexes such as Uniswap, it creates a unique and incredible landscape for arbitrageurs to constantly build different strategies and profit from the price difference between both markets. This incentivizes the market to self-adjust while keeping the tokens pegged to the index.
In order to learn more about arbitrage within the CVI ecosystem, please review the Arbitrageurs page of this Gitbook.

Volatility Tokens Liquidity Mining

An interesting way to utilize volatility tokens is by providing them as liquidity in DEXs, receiving LP tokens, and then staking them in the CVI platform. This would allow users to earn fees from every transaction in the Uniswap/QuickSwap pool as well as GOVI rewards.

For example:

  • Alice minted ETHVOL volatility tokens in the CVI platform or bought some on Uniswap.
  • She adds liquidity to an ETHVOL-USDC liquidity pool and received ETHVOL-USDC-LP tokens in return. The amount of tokens she receives is relative to the amount of liquidity she added to the pool in relation to the pool's existing liquidity.
  • Alice then goes to the CVI platform, clicks on the "Stake" tab, and clicks on the "Stake" button in the ETHVOL-USDC-LP line under "Liquidity mining". She then initiates a transaction to start the staking process.
  • After the transaction completes, her ETHVOL-USDC-LP tokens are staked, she now receives GOVI in return and a share of the transaction fees collected from the liquidity pool in the DEX.

Minting and Burning Volatility Tokens within the CVI Platform:

There are 3 main actions for volatility tokens that can be performed in the CVI platform:

Mint

Create new volatility tokens by sending a stable coin (currently only USDC) to the platform's contract.

Burn

Destroy your volatility tokens and receive stable coins back.

Collateralized Mint

Create new volatility tokens and provide liquidity for the equivalent amount which can be used to avoid paying a high premium fee. This unique action allows arbitrageurs to mint new tokens when the platform's collateral ratio is high (as this action does not increase the collateral ratio).

Minting and Burning Steps:

Before minting/burning, a user has to commit his intentions to do so. The requirement to commit to an intention is designed to mitigate front-running, at the expense of an immediate term market-risk exposure for arbitrageurs. While arbitrage opportunities are essential to the operation of the majority of DeFi's protocols, this unique mechanism reduces possible negative effects of arbitrage on the bottom line of liquidity providers, while creating an interesting new playground for arbitrageurs.
The user submits a request stating that he intends to perform the action (fulfill) at a specified time within a timeframe ranging from time_window_{min} to time_window_{max} (currently 1 to 3 hours).
After submission, a time delay fee is taken. The later the stage at which the user chooses to fulfill his action within this timeframe, the lower the time delay fee will be. Let delay_fee_{max} and delay_fee_{min} be the maximal and minimal fees (applicable for the beginning and end of the allowed timeframe for the fulfillment, accordingly). Let time_delay be the delay between the time the request submission time and its fulfillment time.
The time delay fee will be calculated as follows:
time_delay_fee=delay_feemax(time_delaytime_windowmin)time_windowmaxtime_windowmin(delay_feemaxdelay_feemin)time\_delay\_fee=delay\_fee_{max}- \frac{(time\_delay-time\_window_{min})}{time\_window_{max}-time\_window_{min}}\cdot(delay\_fee_{max}-delay\_fee_{min})
The fee decreases the more the user's time to fulfillment target gets closer to the 3 hours bound.
The user is unable to fulfill a request for the first 15 minutes after submitting a request.
A time penalty fee may also be taken if the user-specified a target time and fails to fulfill it at this timestamp. The time penalty fee changes according to the time the user fulfills his submission.
After the minimum waiting time (
min_wait_timemin\_wait\_time
is 15 minutes) the fee is 3% and decreases linearly down to 0% at the target time. The fee increases to 3% linearly ending 1 hour after the target time. After that, the fee increases linearly until it reaches 5% 12 hours after the target time.
Let
tmint_{min}
,
ttargett_{target}
,
tmidt_{mid}
and
tmaxt_{max}
be the time points of minimum waiting time, target wait time, mid and maximal waiting time accordingly. Let the percentage of fees configured for these time points be
feetminfee_{t_{min}}
,
feettargetfee_{t_{target}}
,
feetmidfee_{t_{mid}}
and
feetmaxfee_{t_{max}}
, and
tt
be the time point of the request's fulfillment.
The time penalty fee is calculated as follows:
time_penalty_fee={t<ttarget(ttargett)(ttargettrequestmin_wait_time)feetminttargett<tmid(tttarget)tmidttargetfeetmidtmidt<tmaxfeetmid+(ttmid)(tmaxtmid)(feetmaxfeetmid)time\_penalty\_fee=\begin{cases} t<t_{target} & \frac{(t_{target}-t)}{(t_{target}-t_{request}-min\_wait\_time)}\cdot fee_{t_{min}}\\ t_{target}\leq t<t_{mid} & \frac{(t-t_{target})}{t_{mid}-t_{target}}\cdot fee_{t_{mid}}\\ t_{mid}\leq t<t_{max} & fee_{t_{mid}}+\frac{(t-t_{mid})}{(t_{max}-t_{mid})}\cdot(fee_{t_{max}}-fee_{t_{mid}}) \end{cases}
A time penalty fee is introduced if the user fulfills his request prior/after his specified target time.
If the user never fulfills his submission (after 12 hours have passed since his specified target time) the tokens he sent when he submitted are held until someone liquidates his position. The liquidator will earn a finders fee and the rest of the fees will go to the GOVI stakers.
Fulfilling a submission acts as a wrapper for opening a position (on mint) and closing a position (on burn) in the CVI platform. This means that you will need to pay the same purchase or close fee on submission