Principal author on this document: @McNut, with special thanks to @Sam_M in Analytics and to Nagaking and the Curve team for helping with analytics and conversations.
This is a draft proposal we will be sharing in the Curve governance forums in the coming days, soliciting Lido community feedback prior to sending it to Curve.
Table of Contents
- Curve Proposal: Change the stETH:ETH pool A factor from 30 → 200
- stETH liquidity in context of changing market conditions
- A-factor at 200 is better suited for the new paradigm
Curve Proposal: Change the stETH:ETH pool A factor from 30 → 200
Summary
Requesting an A factor change from 30 → 200 with a ramp-up period of 30 days on the steth pool, 0xdc24316b9ae028f1497c275eb9192a3ea0f67022
Motivation
We will be proposing to Curve governance to modify the stETH:ETH pool A factor to 200 from 30. Liquidity is an important feature of the stETH token. However, liquidity conditions have changed since withdrawals have opened. We believe modifying the stETH:ETH pool A factor to 200 is more suitable for this new paradigm because:
- This change will allow the Curve pool to route more trade volume at greater market depth
- It will attract more LPs over time into the pool by creating more attractive conditions to generate fees
- There are no major incremental risks relative to holding the A factor constant at its current value
Specification
Modify A factor on the steth pool (0xdc24316b9ae028f1497c275eb9192a3ea0f67022) from 30 → 200 with a 30 day ramp-up period
For
- Deeper markets on curve
- More attractive for LPs
- No new incremental risks from the A factor change
Against
- Change is hard
stETH liquidity in context of changing market conditions
Historically, stETH liquidity was used by a smaller number of users, but institutional users are accelerating their uptake of stETH, and have additional requirements. Previously, the primary risk to liquidity was arguably AMM pool balance, which directly impacted price stability and execution costs. At the time, prior to the Ethereum Shapella upgrade, withdrawals had not been enabled, and there was single pool concentration in Curve, which magnified risk with most secondary market liquidity on a single AMM.
To mitigate risk, governance parameter decisions in Curve were made to lower the A factor and decrease the efficiency of the pool. This would effectively lower the market depth in order to solicit arbitrageurs to rebalance the pool earlier. This parameter protects the pool against volatile markets, prioritizing future users over current users. Ultimately this decision served its purpose in the short run, but has come at the expense of pool utility in the long run.
Today, stETH has a different set of risks. Withdrawals are enabled, additional AMM pools exist, CEX liquidity is growing and a variety of OTC desks are available to support large swaps. stETH is by orders of magnitude the most liquid LST on the market. Even so, stETH liquidity can be meaningfully improved starting with a parameter change on the single largest venue for stETH by size (but not efficiency).
With the implementation of Shapella, stETH withdrawals were enabled, dramatically improving tail liquidity. While it’s not required, it is expected that stETH holders are rational enough to evaluate the optimal path to exit stETH. Explicitly, this means we expect some holders may elect to unstake in lieu of swapping. While not instant, as unstaking >50K stETH may require up to 76 hours, users will nevertheless receive 0% price impact. In comparison, secondary liquidity may deliver up to 200 bps in price impact on trades of this size.
The paradigm has shifted. With withdrawals enabled, rational users have tail liquidity of any size, with some lag time. However, the value of stETH liquidity comes from its instant, secondary market liquidity, not 3-5 day liquidity that every node operator can offer. Governance parameter changes on pools in the secondary market can build on these strengths to deliver much greater efficiency for current stETH users.
Arguably, before withdrawals, the A factor could have been lower and then increased after, rather than the other way around as Curve governance appears to have done. Pool falls into balance only as of May 2023, when withdrawals open.
A factor at 200 is better suited for the new paradigm
The A factor on the Curve stETH/ETH pool may be the most impactful and cost effective way to improve stETH liquidity. At the time of this writing, Curves ETH inventory is ~46k but market depth is effectively 7k ETH at 100 bps. In comparison the largest stETH pool on Uniswap v3 has ~8k ETH of inventory and provides nearly a full 8k ETH in market depth. This disparity in efficiency is due to AMM design but it’s not set in stone.
Curve pool will be able to route more trade volume at greater market depth
The table below is a curvesim simulation of A Parameters to estimate how much stETH is required to cause a 100 bps price impact. Effectively this is an estimation of market depth across A.
A Factor | 20 | 25 | 30 | 35 | 40 | 45 | 50 | |||
stETH Required | 4681 | 5780 | 6870 | 7948 | 9014 | 10065 | 11101 | |||
Depth Improvement | 0 | 23% | 47% | 70% | 93% | 115% | 137% | |||
A Factor | 55 | 60 | 65 | 70 | 75 | 80 | 85 | 90 | 95 | 100 |
stETH Required | 12121 | 13123 | 14108 | 15073 | 16020 | 16947 | 17854 | 18742 | 19609 | 20457 |
Depth Improvement | 159% | 180% | 201% | 222% | 242% | 262% | 281% | 300% | 319% | 337% |
A Factor | 105 | 110 | 115 | 120 | 125 | 130 | 135 | 140 | 145 | 150 |
stETH Required | 21285 | 22094 | 22883 | 23653 | 24405 | 25138 | 25854 | 26552 | 27233 | 27897 |
Depth Improvement | 355% | 372% | 389% | 405% | 421% | 437% | 452% | 467% | 482% | 496% |
A Factor | 155 | 160 | 165 | 170 | 175 | 180 | 185 | 190 | 195 | 200 |
stETH Required | 28545 | 29177 | 29794 | 30396 | 30984 | 31558 | 32118 | 32665 | 33199 | 33721 |
Depth Improvement | 510% | 523% | 536% | 549% | 562% | 574% | 586% | 598% | 609% | 620% |
A Factor | 205 | 210 | 215 | 220 | 225 | 230 | 235 | 240 | 245 | 250 |
stETH Required | 34230 | 34729 | 35215 | 35691 | 36157 | 36612 | 37057 | 37493 | 37919 | 38336 |
Depth Improvement | 631% | 642% | 652% | 662% | 672% | 682% | 692% | 701% | 710% | 719% |
A Factor | 255 | 260 | 265 | 270 | 275 | 280 | 285 | 290 | 295 | 300 |
stETH Required | 38745 | 39145 | 39537 | 39920 | 40297 | 40665 | 41026 | 41381 | 41728 | 42069 |
Depth Improvement | 728% | 736% | 745% | 753% | 761% | 769% | 776% | 784% | 791% | 799% |
Today, market depth is evaluated in aggregate, where Curve is but a single contributor. At 100m in market depth at 100 bps in the recent past, stETH liquidity is orders of magnitude higher than the nearest LST competitor.
Putting this in context, the simulations suggest that an increase in A factor could materially improve market depth today, upwards of 100% improvement and 100m of additional market depth (100% and 100m at A = 300, 75% and 75m at A = 200).
Slippage is a more complicated tradeoff as it is a factor of many parameters of the pool and swap itself. It is helpful to first visualize how an adjustment to A flattens the center portion of the bonding curve, therefore concentrating liquidity near the expected exchange rate.
The graphic above illustrates the evolution of AMMs to Curves’ Stableswap Invariant (dark purple line), which stETH uses. Notably, you see the curve flattens out along the Constant price (orange line). The A parameter controls the flat part of the curve, where users receive optimal execution. As you move to either edge past the flat part of the Curve, it is proportional with the pool falling out of balance and the respectively worse execution that follows.
This keeps the pool’s asset ratio balanced, where users are penalized for pushing the pool farther out of balance. In essence, the rounder the curve (lower A), the more users will be exponentially penalized for moving the pool up either end of the curve. It’s intentionally designed to be a self-balancing mechanism, but it comes at the cost of a large portion of the inventory in an AMM remaining unused. To use the AMM to the full extent of the curve in a low A design would be to subject a swap to extreme penalties. Conversely, this means that a flat curve will not only offer better execution to users, but also enable more inventory to be used, creating efficiency gains in terms of market depth.
What is not obvious from the curves above is that there are various points of parity in terms of price slippage for different pool designs. Specifically a high A pool that is far out of balance can be just as performant in terms of price impact as a low A pool that is nearly perfectly balanced.
A flatter curve (higher A factor) creates efficiency gains and a wider spectrum of scenarios that result in good user outcomes. Therefore such a design implicitly may cause the probability of imbalance to occur. Imbalance is not the cause, it is the effect. The risk to this system is not imbalance but negative price impact. A higher A factor decreases the probability of negative price impact across every input.
More LPs may be drawn into the pool over time
Another significant outcome of a change in A is the overall usability of the pool for daily volume. As A increases, it increases liquidity density (conceptually similar to what we see on clAMMs), which improves the pools ability to capture more router volume. Ultimately, this is not only a benefit for stETH users, but is a major step in the right direction for LP sustainability on Curve. The charts below again run a simulation that shows that sharp improvements in pool efficiency can be created with changes in A until we see the marginal improvement of density begin to level off near ~200 A.
The primary trade-off being made with an increase in the A parameter is the likelihood of pool imbalance. There are two primary risks of pool imbalance, generally speaking:
- IL exposure
- Slippage increase as a result of decreased liquidity density
While IL is a real risk for many LPs, it is less so for LPs of this ETH:stETH pool where there is a reasonable expectation for prices to mean revert towards 1:1. At one point this risk was more pronounced with all secondary depth concentrated in a single pool, but today liquidity can be sourced from multiple other venues or withdrawals themselves, reinforcing the pool balance.
With well functioning pools in existence today utilizing A factors ranging from 20 all the way to 2 million, it’s difficult to pinpoint what A factor is optimal. On one hand, it’s rational to assume that maximizing A = 2 million is the optimal point, maximizing market depth and minimizing price impact. But there are key constraints for most trading pairs that deter this design decision. In a scenario where A = 2 million and the pool is completely unbalanced all the way to 99.9% token A : 00.1% token B, there is no monetary incentive for anyone to rebalance the pool.
Practically this means that if you want to swap from token A to token B, there is no liquidity. The pool is performant, likely offering no price impact, but liquidity doesn’t exist here outside of the whims of market participants already holding token B deciding to swap into token A. It creates an unfortunate timing problem, dependent on the coincidence of wants and effectively eliminates any value of such a pool. This is the exact reason why a pool may elect a much smaller A factor, to create a negative price impact and financial incentives to keep some amount of balance (liquidity) in the system. But there is a middle ground between irrationally punitive (low A) and irrationally accommodating (high A).
Analytically, we see various signals that A = 200 may be where marginal utility is maximized. At approximately A = 200, liquidity the median and minimum liquidity density begin to spread, increasing the probability of worse outcomes. Further, if we couple this with the expected improvements in volume and LP profitability, we have additional data pointing to limited marginal utility beyond this point.
Anecdotally, in conversations with Curve researchers / contributors, the lower bounds where most LPs are happy is > ~80% pool balance (40% token x / 60% token y). This qualitative input is ultimately a reflection of difficult to quantify risk by LPs and often correlated to their fear of impermanent loss (IL). While IL is not a comparable risk in the stETH pool, the heuristic exists and LP preferences ought to be a key factor in this decision. Further, the stETH-ng pool, with A = 1500, is consistently the most profitable pool for LPs and often sits around 40 / 60 balance, a clear indication of the pools ability to be highly performant, even if not perfectly balanced. In light of the anecdotal evidence, we see that an A Factor of 200 expects the minimum balance to be > 86%, which provides a large buffer to the tune of ~ 43% further out of balance (or 6% in absolute terms).
Evaluation of low likelihood of incremental risks relative to holding the A factor at current value
The objective of this evaluation is to determine whether risk is materially altered from a change in the A parameter of stETH’s largest pool on Curve. It is prudent to note that liquidation risk exists today with Curve’s A Parameter set to 30. In summary, we believe the optimization target should be slippage and effectiveness of the pool to support market activity, not pool balance. At a lower A factor, a pool may stay more balanced, but as a result of negative price impact that occurs sooner and with less volume, providing an overall worse experience for users. Further, in evaluation of the many exogenous risks, an increase (or decrease) in the A factor is inconsequential in comparison to the material forces exerted by the market.
The risk factors leading to exchange rate volatility have been significantly mitigated today. Many lending protocols have gone as far as reading 1:1 values for the price of stETH relative to ETH, reflecting the ability to withdraw stETH at 0 price impact and deliver on efficient liquidations. Other lending protocols that don’t rely on hardcoded prices use an increasingly diverse set of markets as inputs, which rely less and less on Curve. Most importantly, with a well functioning withdrawal queue as a backstop, even if saturated, any major divergence in price should be swiftly picked up by arbitrageurs.
There may exist an increased likelihood of pool imbalance, caused by improved price execution at much wider levels of imbalance. However, the levers that exist to rebalance are equal regardless of A Factor (e.g. when price impact >2%, an arbitrager may elect to rebalance the pool). Even under highly stressed conditions, if it does not empty completely, it is likely to move out to the shoulders of the curve where there is sufficient illiquidity premium to stabilize the exchange rate, but at a much larger trade size. To wit, the Curve pool may be more capable of accommodating increased volume while providing better execution.
With respect to the incentive to arbitrage and organically maintain pool health, in normal market conditions, arbitrageurs will still be able to rebalance the pool, earning positive slippage. The only caveat is that the amount of $ required to create 2% positive slippage will go up, thereby creating more arbitrage opportunities on an absolute scale. Concretely, the risk premium traders may receive at the shoulders of the Curve is the exact same in terms of APR. That said, increasing the capital requirement through parameter modification may eliminate the window through which retail users could manually rebalance the pool and capture this discount
In tail event conditions where liquidity ceases to exist, arbitrageurs may have no incentive to arbitrage regardless of A factor. This is empirically supported by various tail events of the last cycle. Traders want to be delta neutral, earning arbitrage, not directionally biased in some kind of Grayscale basis trade. In short, traders care about risk premium and are unlikely to catch a falling knife in a tail event, regardless of the A factor.
However, it’s important to define controllable, endogenous risk vs uncontrollable, exogenous risk. It can be complex to evaluate how all the vectors of risk are interconnected, but our focus should largely be on evaluating risk that can be controlled and planned for.
The following types of risk are intentionally segregated in this analysis because they all present draconian outcomes for staking more generally. In such scenarios, an adjustment to the Curve pool is believed to be inconsequential to the impact on the scale of problems destined to arise. However, we will evaluate a few of the key ones:
- Mass Slashing forces reliance on secondary market liquidity
- Full utilization of the curve pool up until penalties = fair risk premium for holding risk of illiquidity
- Historically this risk premium ~ 7-10%, which means the pool may find an equilibrium and wait for external factors to resolve themselves
- With higher A, the pool provides 75% more liquidity before it hits equilibrium and waits for a liquidity event
- Clogged withdrawal queue (large number of users demanding 1:1 withdrawals)
- Minor price deviations in stETH may be expected, as traders who place a premium in exiting faster will deplete inventories of ETH:stETH across various venues
- However, absent a structural lack of confidence in stETH, there is every incentive for long-term holders to arbitrage the difference and wait for the queue to subside
- Having a higher A factor means that larger ‘impatient’ traders can exit without impacting the market price, and larger slugs of trades can be exchanged between market participants
- Liquidations
- Liquidators may begin to experience increased amounts of negative price impact to transact and may stall or delay
- Since the enablement of withdrawals and continued diversification of liquidity venues, the exchange rate of stETH in ETH terms has held extremely tight
- Further, many lending protocols have stETH explicitly hardcoded to the price of ETH. Inherently this means that the real risk to cascading liquidations is major price movements in ETH, not stETH alone, a price follower.
- In the event of cascading liquidations, a higher A factor may actually materially improve the markets ability to absorb this volume
- The best factor to mitigate a liquidation from cascading is sufficient liquidity (market depth) and increasing A increases the likelihood of absorbing any hypothetical cascades