TL;DR
After many discussions with @MadBlocks and @PurritoGeneral, I have come up with a formalized model that derives the MIN emissions per pool in a purely data-driven manner. The model looks at the 14 day moving average of TVL and 14 day moving average of Volume. The model rewards pools that have high Volume and low TVL. Volume is more important (currently 9x more important).This is because for a DEX, Volume is the most important metric , as it is what determines the swap fees for LPs, and an indicator of how much traffic it gets. So essentially, for a DEX, Volume is equivalent to what the Revenue would be in a company, and it should be maximized.
Then the model uses the Volume and TVL metrics to come up with a number somewhere between 0 and 1 for each LP. That number is used to put each LP somewhere between the Minimum and Maximum MIN Emissions Points (MEPs) Allocation, which is a parameter of the model. So if the number is 0 the LP gets its minimum allowed MEPs. If the number is 1, the LP is capped at the maximum allowed MEPs. Minimum and Maximum allocations are set based on what Farm Group the pool is in.
Introduction
I have been using Minswap DEX since they launched. I was extremely impressed with their FISO, their LBE for Protocol Owned Liquidity, the fact that they open sourced their code, and their overall community oriented approach to everything they do. After they announced their farming pools, I was curious how they would change the MIN Emissions. @madBlocks was on their discord talking about a more quantitative way of determining how MIN Emissions would change over time. We put our heads together and came up with a unique solution that is parameterized but uses live inputs from the DEX and the Liquidity Pools to determine MIN Emissions. After discussing with @PurritoGeneral, I think we have found a dynamic approach that would satisfy all parties.
Why do we need a formulaic approach?
As of now, current Minswap MIN Farming Emissions have been set by the team. These emissions should change over time. But how should they change? Who should determine how the emissions change, and what farms get more or less emissions? Given we do not have a good way of allowing MIN holders to vote for pools, a formula driven approach can be an objective solution to choosing MIN Emission Points (MEPs) per liquidity pool.
What are the inputs?
-
14 Day Average Daily Volume (14D ADV) — This measure is a smoothed measure of the volume transacted in a LP over the past 14 days. The long term success of a DEX is driven by deep liquidity and volume. Token emissions cannot last forever, so eventually LP rewards will come down to volume only. A DEX that has strong volume after emissions end will continue to incentivize users to provide liquidity to the LPs. We should be rewarding pools with high volume.
-
14 Day Average Total Value Locked (14D Ave TVL) — This measure is a smoothed measure of the Total Value Locked inside of an LP over the past 14 days. TVL shows how deep the liquidity of a pool is. Deeper liquidity means less slippage for anyone who wants to transact in that pair of tokens. So deeper liquidity incentivizers users to use Minswap DEX to swap this specific pair of tokens. If a token pair has deeper liquidity on a competing DEX, it is highly likely that the competing DEX will have better pricing. We should be rewarding pools with lower TVL in order to incentivize users to deposit liquidity in those pools, and drive volume to Minswap.
Going Forward
It would be beneficial for Minswap to transition to a more objective and data driven method for determining MIN emissions over time. While some decisions, such as addition of new Farms, or the Minimum and Maximum Points that Farms are still determined by the Team, this formulaic approach is a better way to determine allocation of MIN emissions than one based purely on consensus by the Kitty Farmer Committee.
I have a full, very long, article detailing every parameter and every step of the model. Please feel free to read at your leisure here!
Happy to answer any and all questions.
Authors
This was not possible without support from these degens below plus others. Thank you all!
@marco_112358
@madblocks
@PurritoGeneral