Objective:
This CMP seeks to modify and clarify [CMP #3] in three ways:
- Compute the time-weighted price average calculation (TWAP) over the whole quarter instead of the last 10 days
- Ensure there is always some liquidity for VOLTA to avoid volatility when computing the TWAP
- Define in depth how to compute the TWAP
Community Interest:
- I would like to see a formal proposal
- I am not interested in seeing more
High Level Details:
“[CMP #3] - Protocol Compensation Overhaul” states to only consider the last 10 days of each quarter to calculate the TWAP for paying the performance fee. Therefore, the Volta team is incentivized to preserve liquidity and stop doing buybacks outside the last 10 days.
This proposal aims to always incentivize the team to execute profitable buybacks during the whole quarter, keeping price stable and avoiding any kind of frontrunning before the end of the quarter.
It also has the goal of defining an in-depth method to calculate the TWAP and lower the volatility for the calculations by adding a small amount of protocol-owned liquidity for VOLTA.
Provide Low Level Details:
Note: [CMP #3] remains in place except for the modifications listed.
TWAP period
Starting from Q2 2024, the TWAP defined in [CMP #3] should be calculated over the whole quarter instead of the last 10 days. The 10 day period defined in [CMP #3] remains unchanged for the calculations of the current quarter (Q1 2024).
Additional liquidity
If the proposal passes, within 7 days the protocol must provide liquidity in the two biggest (at the time of the proposal passing) liquidity pools of VOLTA on Ethereum and Avalanche.
Pair 250 VOLTA with the corresponding amount of stables (in the 0-∞ range if it’s a v3-style pool that allows customizing the range) on each chain (Ethereum and Avalanche).
At the time of writing, this amounts to approximately $56k worth of liquidity ($28k worth of stables, $28k worth of VOLTA) on each chain.
The total of 500 VOLTA needed must be bought back by the treasury at the best price on the open market within 7 day and paired with the appropriate stablecoin(s). The Volta team is free to decide the best way to acquire said stablecoin(s) from the treasury.
The liquidity provided must be held by the treasury at all times and must not be removed unless another proposal states otherwise.
Calculating the TWAP
To calculate the TWAP, we must first define how to calculate the price at any given block of the chain.
The price at a given block is defined by the worth (in $) of the output that would be obtained by selling 1 VOLTA in the treasury-owned liquidity pool (mentioned above) of the given chain. Uniswap and other protocols provide contract functions to get a quote for selling a certain amount of tokens (for example, see Getting a Quote | Uniswap). Most RPC endpoints can simulate a call of a contract function at any given block.
The TWAP over any time period on a given chain must be calculated as follows.
Variables:
{start block}
: the block closest in time to the start of the TWAP period
{end block}
: the block closest in time to the start of the TWAP period
{block interval}
: divide 60 seconds by the average block time (in seconds) of the chain, rounding down (for example, if blocks on Ethereum take 12 seconds on average, {block interval}
would be 5)
TWAP: counting from block {start block}
, exactly every {block interval}
blocks take the price using the method defined above, stop before surpassing {end block}
, and compute the average of the price.
Pseudo-code:
current block = {start block}
total = 0
counted blocks = 0
while (current block < {end block}) {
total = total + price(block)
counted blocks = counted blocks + 1
current block = current block + {block interval}
}
TWAP = total / counted blocks
After calculating the TWAP on Ethereum and Avalanche separately, compute an equally-weighted average to obtain the final (global) TWAP used for calculating performance fees.
As further clarification for [CMP #3], which says:
“The performance fee will be capped at 80% of the liquid backing of Volta Club token in order to protect the interest of long term holders.”
The liquid backing used for capping the performance fee must be calculated on the last day of each quarter.
Since a DAO Discussion is meant to introduce a proposal, not all information may be available at this stage. The discussion should be used to measure the community’s interest in what is being proposed. If the minimum requirements are met, it can be submitted as a Request for Comments.