[RFC] Composable Stable Pool Amplification Parameter Framework

Composable Stable Pool Amplification Parameter Framework

Background

Balancer adopted the StableMath Invariant, originally developed by Curve, to introduce various new pool configurations; and we continue to do so. With this pool type, users have been able to experience several highly capital efficient pools compared to traditional weighted pools due to the nature of the invariant surface the math utilizes. While these pools increase the capital efficiency of a set of assets by intrinsically deepening the liquidity around pegged assets (price or exchange rate of nearly 1:1); they can be very dangerous in terms of over exposing users to impermanent loss when a single token in the pool loses its value. We have seen this in various cases such as the UST collapse, and the Euler exploit. This is referred to as de-pegging of assets in most cases.

Reference Case

As with many instances in Defi, the presence of high, unsustainable incentivization can cause users to make less than optimal decisions. In the case of tetuBAL and its current issue maintaining peg, 54.58% at time of writing per defiwarz.xyz (filter “Balancer”), we can see this has happened in our ecosystem. Primarily due to BAL emissions being sequestered on this gauge for a long period of time, coupled with a higher than suggested amplification parameter, (2000) users are now left in a circumstance where they will have to realize a significant loss. Please note, I am stating tetu had no bad intentions, I am merely observing this case as a bad outcome.

While a decrease in the amplification parameter would have made the issue only slightly better than it is, one can argue that it permitted arbitrageurs with misaligned motivations to maintain the pool at an off-peg state, thereby misrepresenting the safety and depth of the pool. This framework aims to protect not only liquidity providers in such cases, but also to align the DAO in taking a risk averse stance towards approving gauges when an amplification parameter is outside of the suggested ranges in the framework.

Framework

To determine the range of the amplification parameter a Composable Stable Pool should have; we must consider several factors related to the nature of the assets. Each of these will be given multipliers related to the range in which the pool should be permitted to set its amplification parameter.

Firstly, what is the class of tokens within a pool? This boils down to three mainly on Balancer.

  1. Stable coins. Pegged to 1 USD. (USDC, DAI, USDT, etc.) – Varies upon three types:
  • Equal & Overcollateralized - Custom table, implied value of 50
  • Fractionalized - Value of 10
  • Algorithmic - Value of 5
  1. Ethereum or LST. Pegged to WETH plus bearing yield. rETH, wstETH etc. - Value of 5.
  2. veBAL wrapper, limited to auraBAL, sdBAL, and tetuBAL currently. - Value of 1.

Secondly, what is the credibility of the protocol? To not make this a subjective measure, we must define it based upon the protocol’s governance token circulating market cap, showing their overall adoption in Defi to be determined as reputable. There can be flexibility in this rule in the case of major adoption of for example a stable coin or LST which has a small governance market cap, however we must leave exceptions for open discussion on individual forum posts.

Project Tiers:

  1. Highly reputable - CMC > $50 MM (30)
  2. Middle tier - $25MM < CMC < $50MM (20)
  3. Low tier – CMC < $25MM (10)

Lastly, we can consider the total value within a pool. As a pool deepens in liquidity on Balancer, users should have more trust in their ability to enter and exit the pool. This liquidity depth strengthens the peg of the token regardless of classification, and the DAO can feel more confident with its ability to stay within the desired 1:1 window.

Total Value tiers:

  1. High depth- TVL > $50 MM (10)
  2. Middle depth - $25MM < TVL < $50MM (5)
  3. Low depth – TVL < $25MM (1)

Amplification Parameter Framework Tables

Spreadsheet for reference

Stablecoin Pools

Overcollateralized

Project vs. TVL CMC > $50MM $25MM < CMC < $50MM CMC < $25MM
TVL > $25MM 3,000 2,000 1000
TVL < $25M 1500 1,000 500

Fractionalized

Project vs. TVL CMC > $50MM $25MM < CMC < $50MM CMC < $25MM
TVL > $50MM 3,000 2,000 1000
$25M < TVL < $50M 1500 1,000 500
TVL < $25M 300 200 100

Algorithmic

Project vs. TVL CMC > $50MM $25MM < CMC < $50MM CMC < $25MM
TVL > $50MM 1,500 1,000 500
$25M < TVL < $50M 750 500 250
TVL < $25M 150 100 50

Liquid Staking Derivative Pools

Project vs. TVL CMC > $50MM $25MM < CMC < $50MM CMC < $25MM
TVL > $50MM 1,500 1,000 500
$25M < TVL < $50M 750 500 250
TVL < $25M 150 100 50

veBAL Liquid Wrappers

Project MC vs. TVL CMC > $50MM $25MM < CMC < $50MM CMC < $25MM
TVL > $50MM 300 200 100
$25M < TVL < $50M 150 100 50
TVL < $25M 30 20 10

Conclusion

This framework is meant to serve as a bearing for any teams who interact with Balancer Composable Stable Pools in the present and future. There will always be edge cases where a higher or lower value is warranted, and we will work through those cases as they come. Discussion on the forum for each individual project to best navigate their pool parameters with the DAO when requesting a gauge is the way Balancer has and should continue to operate. By adopting a framework, we as a community can better protect ourselves and our users from intentional or unintentional bad outcomes for liquidity providers, and thereby uphold our reputation to the highest degree.

I invite anyone from the community to provide feedback on this for us to land at an agreed upon approach. When we do reach a consensus, or if this framework is sufficient, I suggest we perform a governance vote to refer to the final form when any new stable pool proposes to ask for a gauge.

5 Likes

This is a really important issue to be discussed. Thanks for initiating the discussion and the proposed framework, which looks quite well thought about.

One comment I have is that perhaps the “stable coins” needs some more fine grained categories, such as over-collateralized, fractional collatoralized, algorithmic, etc. Not all stable coins are created equal.

4 Likes

To me, this is just a baseline to get thoughts flowing. I am all for a more detailed framework in these cases. Do you have a live example or potential pairs on your mind we can consider for this? My intent was these would be handled by the circulating MCAP and TVL requirements.

1 Like

Some rough numbers following what’s proposed would be
algorithmic stable coin (value of 1)
fractionally collateralized stable coin (value of 8)
over-collateralized stable coin (value of 10)

2 Likes

To round this out, I noticed the UZD gauge passed without any pushback at A=500 mainly for being overcollateralized, while being at the minimum of both CMC & TVL thresholds. UZD’s case would make the overcollateralized factor (50). I do not see a problem with this pool, however based on this, the table can change. I suggest the table for overcollateralized tokens become the two top tiers with the threshold of TVL being 25MM. Fractionalized coins keep the current table, and algorithmic drops to a factor of 5. This can be a baseline for now we iterate on. Special cases of course can be debated on their respective proposal.

3 Likes