Introduction
One of the key considerations when market making on AMM DEXs is how to best utilize the available funds to generate the most trading fees. That is, how do I maximize the capital efficiency of my funds. This is especially so in the case of concentrated liquidity DEXs (i.e. KyberSwap Elastic, Uniswap V3, etc.) whereby liquidity providers (LPs) will have to decide on a specific price range within which to market make.
Given varying LP risk profiles and the number of considerations which goes into selecting a position’s range, this guide is divided into 2 sections:
- Part 1: Why narrower ranges result in higher APRs but greater risks?
- Part 2: A practical look at selecting the best ranges
For LPs that are looking to maximize their potential returns, all the learnings have been condensed into a simple flow diagram which walks you through each of the key decision points when determining the best risk-adjusted position range. View and interact with the full diagram in greater detail here.
Trading fees distribution: Narrower ranges, higher APRs, higher risks
By contributing liquidity towards a customized price range, an LP’s assets are actively being traded against whenever the market trades within their selected range. In exchange for this convenience, liquidity pools charge a trading fee which is then distributed to the active LPs as an incentive for market making. As long as the market continues to trade within the LPs selected range (i.e. “in-range”/“in-the-money”), LPs will continue to earn a portion of the trading fees.
Put simply, the selected price range determines the capital efficiency of the LP’s funds. For the same value of tokens, a wider price range would mean that the liquidity provided is spread thinner throughout the price range. As such, the proportion of tokens which goes towards supporting the active trade will be lower as compared to the same value of tokens spread across a narrower range. The example below illustrates this fact.
Taking an ETH-USDC pool with 3 positions of the same TVL (Total Value Locked), we can see that the proportion of tokens which each position contributes towards supporting the market price differs. The liquidity (y-axis) measures the proportion of liquidity which a position contributes to each price point within the selected price range. Note that this relationship is not linear but has been vastly simplified for ease of understanding.
Position | TVL (USD value) | Price Range | Liquidity Contributed |
1 | 6,000 | 1,960-2,020 (Width: 60) | 10 |
2 | 6,000 | 1,980-2,000 (Width: 20) | 30 |
3 | 6,000 | 1,990-2,000 (Width: 10) | 60 |
Each of the positions above have a TVL of 6,000USD with the only difference being the specified price range. With a wider range, the liquidity is spread thinner across the selected price range. In the above example, the current market price is 1ETH:1,995USDC and hence all 3 positions are supporting the active market price. However, notice that for trades between the price range of 1,990-2,000, more of Position 3’s tokens are being utilized for the trade (i.e. 60% of the tokens being traded between 1,990-2,000 belong to Position 3). As such, it follows that each position should receive a cut of the trading fees based on the liquidity contributed towards a trade.
Following the above, LPs should therefore always aim to set a price range which is as narrow as possible so as to maximize their capital efficiency. The tradeoff for this therefore comes down to the selected price range relative to the market price. Remember that LPs only earn fees when the market trades within their selected price range (i.e. a position’s tokens are being used to support the trades). As such, every time the market moves outside the selected range, the position goes out-of-range with the LPs funds sitting idle and not earning any trading fees.
Other LP risks: Impermanent Loss, Gas Fees, and Market Volatility
In addition to the above, whenever a position goes out-of-range, the LP will also have to account for impermanent loss risks whereby all his funds can be converted to the less valuable token. Taking the same example above, if ETH price suddenly increases to 1ETH:2,020USDC, all of Position 3’s funds would have been converted to USDC at ≤2,000USDC and is therefore worth less then if held at the current market price. The same thing applies in the opposite direction whereby the LP would have been left with ETH acquired at ≥1,990USDC but each unit of ETH is worth less based on a current market price below 1,990USDC. In short, impermanent loss is the difference in value between holding the tokens versus market making with the asset.
Lastly for any adjustments to out-of-range positions, LPs will also incur a gas fee which can be a significant cost depending on the chain as well as their position size. Generally, liquidity adjustments involve withdrawing liquidity from the current position, swapping tokens to get the right ratio for the new position, and lastly creating a new position. LPs therefore also have to consider the swap and slippage risks of the intermediate step when sourcing the right ratio of tokens (liquidity contributions have to approximate the pool’s token ratio at point of deposit). This is in addition to the management overhead required for constant monitoring and adjustment of positions.
One thing to note, increased market volatility results in upsized yields but also implies higher gas fees as well as higher likelihood of a position going out-of-range. This means whenever a position goes out-of-range, any immediate adjustments to the position will likely incur a higher gas cost for the same set of transactions. Moreover, higher volatility also increases the likelihood of slippage when sourcing the right token ratio. The larger the position’s value, gas fees as a portion of total transaction value decreases but the higher the likelihood of slippage incurred when swapping. The smaller the position, the less the LP has to worry about slippage but gas fees become an increasingly important factor.
LP Considerations
To summarize, the potential returns for a LP is directly related to their selected position price range. Narrower ranges enable the LP to capture more of the trading fees as long as the market price remains within the selected price range. Wider ranges get a smaller cut of the fees per trade but are less likely to go out-of-range. For an LP, the expected returns must therefore outweigh all the risks brought about by market uncertainty.
When contributing liquidity, LPs must therefore contend with the below factors which are grouped and ordered based on their specificity.
Chain specific factors
- Multi-chain DeFi activity: A critical but less obvious factor for LPs who are chain agnostic is that each chain supports varying levels of DeFi activity. For the exact same token pools on different chains, the fees generated per dollar of value locked can differ significantly. Trading activity for certain token pairs can even be concentrated on a particular chain.
The 2 snapshots above highlight this fact via snapshots of the same WBTC-WETH 0.04% pool across Arbitrum and Polygon. For each dollar in the pool, the Arbitrum pool generates more volume and therefore fees (i.e. TVL:Volume ratio for Arbitrum is ~0.374 where Polygon is ~0.361). Assuming the above continues to hold true, the same position range across both chains, the position on Arbitrum will provide a better return.
- Bridging and cross-chain swap availability: While directly related to the above, the ease of value transfer to and from the selected chain will also limit the total value transferred between chains. The presence of cross-chain dapps ensures that LPs will also benefit from inter-chain trading volume and not just intra-chain swaps.
Token specific factors
- Token market capitalization: Tokens with a larger market capitalization will require significantly more trade volume for their price to move accordingly and vice versa. In general, the higher the token’s market capitalization, the smaller the range that it tends to trade within.
- Constant token trade volume: Interest in the token has to be sustained in order to support a meaningful amount of trades. For example, meme tokens which tend to experience short bursts of interest might not generate much trading fees outside those periods and also be exposed to higher IL risks. By looking at how a token has traded previously, LPs can adjust the range according to token specific price factors.
- Token distribution: The more widely a token is distributed, the less likely that the token will experience rapid change in prices. For tokens with a significant portion of tokens held by individual wallets, the price impact of a single whale trade can immediately cause a position to go out of range. Moreover, such whale trades are also much harder to predict.
- Token correlation: The correlation between the tokens selected is a critical factor as a ±0.001% range will be woefully insufficient for a USDC-WBTC pool but might be suited for a USDC-USDT pool. This involves understanding the relationship between the tokens selected and how the tokens have historically traded relative to each other. The more correlated the token pair, the less their prices tend to deviate hence the narrower the trading range.
Pool specific factors
- Pool’s fee tier: LPs might also be provided the option to select different fee tiers for the same token pair. The fee tier determines the trading fee that is charged for every trade going through the pool. Higher fee tiers generate more fees but might result in less trades being routed via that pool (as the fee % might be larger than the % price movement). In general, the higher the fee tier, the less sensitive the pool’s price relative to the market price.
- Active liquidity ratio: If the majority of a pool’s liquidity is concentrated around the market price, any liquidity contributions will receive a smaller proportion of the trading fees due to the liquidity factor as highlighted in the previous section. A highly concentrated position in a pool whose liquidity is evenly spread will earn an outsized share of the trading fees.
Position specific factors
- Management overhead: How often can the LP monitor the position and make changes when required. More narrow ranges require more management due to the higher likelihood that a position goes out-of-range. Passive LPs might benefit from a wider range where returns are diminished but less active management is required.
- Gas fees: For chains with more expensive gas fees, the gas costs associated with making constant adjustments can easily outweigh the potential returns for smaller positions. If it takes USD10 to adjust a USD1,000 position, the LP is already starting out with a 1% loss with the risks of going out-of-range against heightened for a narrower range.
- Liquidity provision token ratio: It is unlikely that a LP will have the exact ratio of tokens required for a selected range and will therefore have to source the tokens via a swap. If the pool price changes in between sourcing the tokens and adding liquidity, the required token ratio might have also changed. Note that for larger LPs, the price impact of the intermediate swap could also result in the price of the pool changing. The narrower the price range, the more a price change affects the required token ratio.
Conclusion
As can be seen from the above, there are a multitude of interdependent factors which a LP must weigh based on their personal risk preferences. LPs can achieve supercharged yields by concentrating liquidity into ever narrower ranges but after a certain point the adjustment costs and management overhead might outweigh the potential profit. This sweet spot will be different for every token, pool, and chain combination.
Having covered the mechanics and complexity behind such a simple choice, the follow up to this article will put these concepts into practice by creating positions of varying ranges across multiple pools. Through tracking these positions over the course of a week, you will be able to see how the aforementioned concepts materializes into real yield. This will hopefully provide you a stronger foundation when deciding on an appropriate range for your position.