TL; DR: Average slippage of large trades from stETH to ETH was only 36 bps. But the problem with Curve pools is that the sooner you get out, the better. Integral SIZE offers a new way to do large trades between stETH/ETH.
In a previous post, we analyzed slippage and price impact of trades during the UST depeg event in May. This event has had an extended impact on the crypto market. Contagion from the depeg and the collapse of UST and LUNA has lead to insolvent platforms, failed hedge funds, and a host of other second-order effects. One of these has been the “depeg” of stETH from ETH.
As part of our continued research in to slippage and price impact in on-chain trading, we reviewed the past months’ data for stETH to understand how traders were dealing with the stETH discount and what kind of slippage was realized on chain.
We used data from dune analytics from of May 1, 2022 until June 18, 2022. There were over 13002 trades through the Curve stETH/ETH pool during this period, totaling over $5.2 billion in volume. Whales were heavier traders than normal during the period. 68 trades had over $10mm volume, 838 trades more than $1mm volume, 1,336 trades more than $500K volume and 3,540 trades with more than $100K volume.
The periods of highest volume correspond with the high-volatility days in the overall crypto market. One set of high volumes is concentrated during the May 8th – May 13th period when UST lost its peg. The second period of high volume happened the week of June 8th when forced selling from 3 Arrows Capital and others continued to hammer sells into the pool. For comparison, May 12th had volumes almost 1.5x as much as the highest volume day in April.
Some gigantic sells were processed during the period. Some trades like this transaction for just over 76k stETH in volume were executed through private Flashbots transactions to incur minimal slippage. Other whales were not as lucky. This 80k stETH sell executed directly through the Curve pool had 1% slippage.
In June, as the extent of UST contagion was revealed to the market, huge sells continued from institutional participants.
We looked at all executed trades during the period to understand realized slippage on an aggregate level. After excluding trades with negative slippage (surplus, rather than trade cost) and trades smaller than $100K, we found a total volume of $2.6 bn in trades. The aggregate slippage cost for this volume was $9.5mm or about 36 bps in slippage. Most trades had less than 2% slippage, even during peak activity with high volume trades.
While we would typically expect large trades to incur more slippage, the rank correlation between trade size and slippage was just 8%. But as the price of stETH vs ETH declined, overall slippage on trades almost doubled.
With large players scrambling for liquidity and some forced to liquidate their assets to meet other obligations, withdraws of liquidity and further trades out of stETH lead to a steep drop in the stETH price vs ETH.
This is a unique dynamic of the Curve pools. Higher A-factor pools maintain their peg for much longer, but once a critical ratio of liquidity and volume is reached the pools’ realized pricing can deteriorate with haste.
A large pool with deep liquidity and a high A factor like the stETH pool mean that large trades can pass through the pool with low slippage. But only if they are early.
By reviewing chain data, we can see that on May 1st, the stETH Curve pool had whopping balances of 813528 stETH and 796924 ETH. Over 1.5b ETH in total assets. This left the resting price with a differential less than 7 bps.
Compare that to July 1st and we can see the stark contrast. On July 1st, the stETH balance stood at 470286, but almost of the ETH from the pool has left, leaving only 146075 ETH. Meanwhile, the discount widened to 3.85%. This steep drop is a cumulation of withdraws from the pool and trades from stETH into ETH, and it has a high cost for large trades in the pool.
By simulating the Curve pool math we can compute the implied slippage of a trade by using the stETH A factor and the token balances. To follow along you can use the helpful Curve pool modeling tool by @0xdef1
On May 1st with the pool balances above and the stETH pool A factor of 50, a 100k stETH to ETH trade would have executed at .996 stETH/ETH compared to the advertised pool price of .9996. Compare this to the balances at the start of July and the contrast is stark. A 100k stETH trade would be ill-advised, with an execution price of .902 compared to the advertised pool price of .962, over 6% slippage.
Even a more realistic sell of 10k stETH would execute at a price just under .96. The large sells with low slippage that were possible just two months ago, would now get rekt by the Curve pools design and a lack of liquidity. The 240k stETH that fled the earliest during the early May contagion made out the best. Exiting without regard for slippage turned out to be the winning move as the price has only continued to decline.
This raises interesting questions for AMM design. The constant product market maker and its innovations like the Curve AMM have been dominant in the DeFi market. But the stress testing of the last months has shown that there are many downsides to these approaches. When liquidity dries up and large players start to exit, it almost always pays to be first. Later liquidity providers are left holding the bag and large trades become very difficult to execute at advertised market prices.
At Integral, we have pioneered a new approach to large volume trades that tackles many of the downsides present in the early DeFi AMMs. SIZE pools like the newly launched stETH/ETH pool, are far more capital-efficient, and a large trade can make use of all liquidity available in the pool. This lets trades execute at the 30-minute TWAP with zero slippage, even at huge volumes. As we continue to experiment in facilitating large trades on chain, we hope you will try out the new stETH/ETH pool and benefit from zero price impact trades with SIZE.
If you would like to reach out to us to discuss it more deeply, or want to suggest a topic for us, feel free to email us firstname.lastname@example.org.