A guide for liquidity provision for staked ETH tokens on Uniswap V3
It took only 3 weeks from the launch of Uniswap V3 for it to become the #1 DEX by daily trading volume. Thanks to the concentrated liquidity, the exchange already generates 25% more trading fees than V2 and offers a significant improvement in slippage, despite commanding only 20% of its predecessor’s TVL. The APYs are really juicy thanks to a superior ratio of volume to liquidity, and it seems like the party is only getting started.
With the listing of sETH2/ETH and rETH2/sETH2 pairs on Uniswap V3, StakeWise users who intend to provide liquidity for the tokens can also get a piece of the action. This guide will go into details about the mechanics of adding and removing liquidity, choosing ticks, claiming fees and rewards, and understanding the underlying dynamics (and risks) of liquidity provision on Uniswap V3.
Choosing the trading fee
For the sETH2/ETH liquidity pool: choose 0.3% trading fee to be eligible for the liquidity mining program.
For the rETH2/sETH2 liquidity pool: choose 0.05% trading fee to be eligible for the liquidity mining program
Why do I need to choose this?
Before Uniswap V3, the trading fee used to be fixed at 0.3% for all of the Uniswap pools. One of the innovations of V3 is that when creating a pool, the trading fee can be chosen from a predefined set of options:
- 0.05%, intended for stable pairs with a large volume
- 0.3%, the usual choice
- 1%, for the more exotic asset pairs with high volatility
It is impossible to change the trading fee once it has been set for a given pool, hence every asset pair can theoretically have three tiers (pools) with a different trading fee in each. Naturally, the market forces will determine which of the pools receives the most volume and liquidity, as both traders and LPs (liquidity providers) will optimize volume and liquidity for their benefit.
Based on the popular support, the StakeWise DAO has decided to set the trading fees in the sETH2/ETH and rETH2/sETH2 pools to 0.3% and 0.05% respectively and will incentivize only these pools. While LPs are free to deploy sETH2 and rETH2 pools with different trading fees, they must choose the trading fees set by the DAO when adding liquidity to be eligible for liquidity mining.
Choosing the range (“ticks”)
For the sETH2/ETH and rETH2/sETH2 liquidity pools: choose the desired price range for providing liquidity by entering the prices manually or using ticks to choose an interval.
The tighter your range is centered around the current price, the better your liquidity will be utilized and the more trading fees and $SWISE incentives you will earn.
Why do I need to choose a range and how does concentrated liquidity work?
Uniswap V3 allows users to concentrate liquidity in the desired price range, thus improving the efficiency of deployed capital. In contrast to the “lazy” liquidity that is offered across the curve in the [0;∞] price range on Uniswap V2, concentrated liquidity enables trades only within its range, which allows to significantly reduce slippage for traders and increase return on investment for LPs.
The incremental step in the range is called a tick and choosing the price range is called choosing the ticks. Each tick is equal to a 0.1% incremental change from the current price, e.g. for the asset trading at $1,000, each tick would be $10; for the asset priced at $1,050, each tick would be $10.50, and so forth. When entering a price range manually, Uniswap’s interface will round up the numbers to the nearest tick, depending on the asset’s current price.
The choice of ticks matters — the tighter one’s range is focused around the current price of the asset, the better the deployed capital is utilized, and the larger the trading fees. Farming incentives too are allocated proportionally to how much of one’s capital is utilized; therefore, picking a tighter range around the current price will result in higher earnings from both the farming incentives and the trading fees.
Important considerations about choosing the ticks
Prices of crypto assets tend to be volatile. LPs need to be mindful that if the asset price moves out of their liquidity range, their capital will become inactive, and they will stop earning the trading fees and farming incentives. Therefore, when choosing narrow ticks, liquidity providers must consider the trade-off between the opportunity to earn more rewards against the risk that their position becomes inactive and stops earning fees altogether. In this case, liquidity providers may consider withdrawing liquidity from the inactive position and moving it into another range, which costs gas. Choosing wide ticks will be safer and will likely require fewer adjustments to the position; however, it will also likely be less profitable (depending on the choices of other LPs in the pool).
This dynamic is considerably less pronounced for the bonded asset pairs like USDT/USDC, USDC/DAI, sETH2/ETH, and rETH2/sETH2, whose prices move in unison. Oftentimes, choosing a narrow range for these assets does not require one to frequently change positions because the price tends to fluctuate around 1. For example, around 80% of liquidity deployed in the USDC/USDT pool on V3 is concentrated within -+0.1% (i.e. 1 tick) of 1 USDT and 93% of the TVL is concentrated within -+0.2% (i.e. 2 ticks) of 1 USDT.
Depending on the trading dynamic in sETH2/ETH and rETH2/sETH2 pairs, LPs may consider choosing similar ranges. Still, we advise users to be mindful of their positions becoming inactive due to the changes in token prices and choose a range they would be comfortable with under any circumstances. You can always check the StakeWise App dashboard to see how much of your liquidity is currently active.
Choosing the amount of liquidity
For the sETH2/ETH and rETH2/sETH2 liquidity pool: choose the amount of liquidity you would like to provide by entering the amount you are deploying for one of the assets; the amount required for the other will be adjusted according to your choice of ticks.
Note that the size of liquidity required for the position may not be equally split between the two assets and will depend on the distance of each of the ticks from the asset’s current price. Choosing to provide liquidity out of range will result in the creation of a limit order.
How is the amount of liquidity that is required for each of the assets determined?
Despite allowing to concentrate liquidity in a range, Uniswap V3 still uses the old x*y=k bonding curve under the hood for the chosen interval. This means that whenever the chosen ticks are not located equidistantly from the market price, Uniswap will request more inventory of one of the assets. This has a couple of interesting implications:
- Whenever a liquidity provider chooses the range that contains the current price of the asset, and then its price moves higher than the range, the LP’s inventory of the quoted asset will be entirely used up. For example, if ETH/USDC moves to $3,100 from $2,750 when the LP has a position in the range [$2,500;$3,000], they will be left holding only USDC. The LP suffers what we call an impermanent loss because they are effectively selling ETH on the upswing, not benefitting from its appreciation.
- Whenever a liquidity provider chooses the range that contains the current price of the asset, and then its price moves lower than the range, the LP’s inventory of the other asset will be entirely used up. For example, if ETH/USDC moves to $2,400 from $2,750 when the LP has a position in the range [$2,500;$3,000], they will be left holding only ETH. This again implies an impermanent loss, because the LP effectively buys ETH on its way down, catching the falling knife.
With this risk in mind, consider the good news: one cannot experience impermanent loss when LPing for the bonded asset pairs like sETH2/ETH and rETH2/ETH because their true prices do not move relative to each other. Hence, choosing a narrow range for liquidity in the sETH2/ETH and rETH2/sETH2 pools is a relatively safe bet for the LPs.
It is also important to note that exposure to staked ETH assets may increase or decrease vs the original weights (e.g. to 70/30 from 50/50 between sETH2 and ETH, or the opposite) as a result of trading activity in the pool. This is not considered to be an impermanent loss because the tokens represent wrapped Ether redeemable in Phase 2, and hence no dollar value is lost when the weights change. However, an increasing exposure to the tokens may lead to increased illiquidity risk (i.e. the burden of holding the tokens until Phase 2 to realize their intrinsic value), and while it is also compensated by a higher return, LPs should be mindful of this possibility.
What is a limit order and how to create one?
A limit order is a commitment to buy or sell some amount of the asset at a price not higher or lower than a certain limit. For example, one can submit a limit order to buy 10 ETH for no more than $2,000 apiece, and this order will only be executed if the market price of ETH hits below or exactly $2,000. The ability to submit limit orders was previously reserved only for the users of exchanges with order books. However, Uniswap V3 replicates this functionality by allowing LPs to offer inactive liquidity in the ranges that are above or below the current price of an asset.
Liquidity providers may choose to submit a fee-earning “limit order” by providing liquidity in the range that does not contain the current price. Instead of deploying liquidity for both assets in the pair, the LP will be asked to submit just one of the assets as liquidity. If the chosen range exceeds the current price, the LP will be asked to submit only liquidity in the quoted asset; if the range is below the current price, submitting liquidity only in the other asset will be required.
For example, if ETH/USDC is trading at $2,750 and the LP chooses the [$2,000;$2,500] range, they will be required to deposit only USDC as liquidity, thus acting as a limit order to buy ETH at prices between $2,000 and $2,500. On the contrary, if the chosen range exceeds $2,750, the LP will be required to submit only ETH, thus acting as a limit order to sell ETH at prices above $2,750. Interestingly, in both instances, the LP will also be earning trading fees on the volume of selling/purchasing that their liquidity is engaged in.
Therefore, stakers and market participants alike may choose to provide one-sided liquidity in ranges that do not contain the market price, in the anticipation that sETH2 and rETH2 can be bought at a discount/sold at a premium to ETH. Providing liquidity in a higher range than the current price would be akin to submitting a limit order to sell the tokens. Meanwhile, choosing ticks that are below the current price would constitute a limit buy order for the tokens once the range is hit.
Uniswap V3 is a big innovation in decentralized market-making and potential LPs should understand the risks and rewards of providing liquidity there. The instructions to deploy liquidity can be found on the Farms page on the StakeWise dashboard and are also available in this guide.
- Providing liquidity on Uniswap V3 requires active management of one’s position to avoid impermanent loss and maximize the trading revenue, yet the stable nature of the sETH2 and rETH2 tokens vs ETH significantly reduces the risk of IL while maxing out trading fees for the LPs.
- The StakeWise farming contract incentivizes the provision of liquidity in as tight a range around the current price as possible, which should lead to liquidity being concentrated in a narrow range, resulting in low slippage for traders.
- LPs should remain wary of the illiquidity risk if they do not intend to hold the tokens until Phase 2 as their exposure may shift away from ETH towards the staked ETH tokens.
The development team and the community are always happy to answer any remaining questions in Discord and Telegram and offer any support related to liquidity provision and swaps on Uniswap V3.
On behalf of the StakeWise team, we hope you enjoy the profits from liquidity provision and find it a smooth sailing!