Deep Dive in Ranged Pool (ft. bCRE/CRE pool #22)

Kevin Meowth
CrescentNetwork
Published in
7 min readAug 2, 2022

Governance proposal #12 has passed, orderbook and ranged pool function is now available in Crescent DEX. However it seems lots of users are having difficulties because of its complexity. This post is written to address questions related to ranged pool using the example for bCRE/CRE #22.

Question #1. Why this range?

  • Min Price : 1.063
  • Max Price : 1.15

The price of bCRE/CRE was 1.085 when the governance proposal was presented. So the intended price range of the pool was [-2%,+6%]. This pool has asymmetric price range because of the nature of liquid staking token. As bCRE accumulates staking reward, it increases its value against CRE. Following chart shows expected price of bCRE/CRE based on current APR of 31%.

Fig 1. Extrapolation of bCRE/CRE price under current APR

As you can see in the chart, the upper bound of the range is determined by considering bCRE price after 2+ months. Then what about the lower bound? If the fair price is 1.085 and goes up for good, then we don’t need to have lower buffer of -2%, isn’t it?

But that’s not the case. Market price doesn’t have to be the same with fair price. It can be rattled depending on short-term supply and demand condition or other external market environment. Overall, the volatility will be relieved as market matures and the liquidity becomes deep enough. Then the lower bound to -2% can be adjusted higher in the future.

Fig 2. Historical chart of bCRE/CRE price. It never sit still in fair price

Question #2. Why deposit ratio is not 1:1 ?

In basic pool, the value of the two tokens should be the same when users deposit or withdraw. However in ranged pool, the value can be different depending on the price range and current price.

Fig 3. Basic pool and ranged pool has different numbers

To calculate the deposit ratio of the ranged pool, we need to derive the amount of tokens from the generalized formula of CPMM(Constant Product Market Maker)

combining (1) and (2)

We set price range of liquidity provision with [P_min, P_max]. All X are changed into Y at P_min(X = 0) and all Y has changed into X at P_max, therefore Y=0

with (3) and(4), constant a and b can be expressed in p(price) and k(liquidity)

by putting a,b in (2a), we get

When a user deposits/withdraw delta x, delta y to the pool, which value should be the deposit/withdraw ratio?

As designated P_min and P_max, pool price P should not be changed by deposit or withdraw. However, liquidity k and constant a and b changes into k’, a’ and b’.

Therefore, by using the same logic to (1) and (2a), we can have the following.

Then, we can see

This results means that deposit/withdraw ratio is the same as the reserve ratio. It is noteworthy that the deposit/withdraw ratio is different from the pool price( (X+a)/(Y+b) ).

Applying bCRE/CRE case with given k, we can get current deposit ratio.

Table 1. Example of for Deposit ratio

The deposit ratio can vary as price changes. As the price of bCRE/CRE rises, deposit ratio also moves up. (relative share of bCRE decline)

Fig 4. Relative amount changes in different price point

The other example of ranged pools are USDC.axl/USDC.grv and WETH.axl/WETH.grv. Because these pairs share same token fundamentals, the price range is set up as narrow as [-1%,+1%]. The pairs’ deposit ratio converges to 1:1, but it can fluctuate as market price falters. These fluctuations are a natural response to market dynamics, and once the divergence is resolved the deposit ratio returns to the balanced level.

Question #3. How do we calculate Amplification Factor?

The advantage of applying ranged pool to pegged assets is that liquidity provided by the pool has significantly enhanced at desired prices. Not only investors can provide liquidity with far better efficiency, but also users can enjoy deep liquidity. This is due to the amplifying effect on liquidity of the ranged pool.

Amplification factor can be calculated by comparing sqrt(k) — liquidity of the pool — of ranged pool and basic pool.

Let’s express V(TVL) in k (liquidity) and P (price) :

So the amplification factor A is as following :

Table 2. Amplification Factor of bCRE/CRE and USDC.a/USDC.g Pool

With this equation, we can obtain the amplification factor of bCRE/CRE is 51 and USDC.a/USDC.g. — WETH.a/WETH.g as well — pool is 200. Amplifying means that the depth of bCRE/CRE ranged pool is 51X from that of basic pool if each has same TVL.

Current TVL of basic pool is $3mil and ranged pool is almost $600k. The effective liquidity provided by ranged pool is actually 10 times larger than basic pool because ranged pool has 50x efficiency level.

Fig 5. Orderbook of bCRE/CRE

As you can see in the order book, ranged pool provides much better effective liquidity with a fifth TVL of basic pool. This means the traditional approach to use TVL(total value locked) for valuation of DEX is completely misleading the actual performance of DEX. It should be considered with the effective liquidity provided, followed by innovation of AMM from basic CPM model.

Question #4. How about the impermanent loss for ranged pool?

Impermanent loss happens when the prices of tokens change compared to when you deposited in the pool. In most cases, ranged pool results more impermanent losses. But there is obvious reason why you don’t have to worry about it.

First, let’s derive impermanent loss of basic pool assuming volatile and stable coin pair case.

  • X, Y : Amount of token (X : stablecoin, Y : volatile coin)
  • P : Pool price of Y ( P = X/Y )

For constant k (X*Y = k), X and Y can be expressed in k, P.

We define 3 values and impermanent loss can be expressed as following :

  • V_0 : value of initial holdings
  • V_1 : value of pool after price moves ( price moves : P → ɑP )
  • V_n : value out of the pool after price moves ( price moves : P → ɑP )

To do the same calculation with ranged pool, put (5) and (6) in X, Y

The coefficient is bigger than 1 because numerator is always bigger than denominator. Therefore IL of ranged pool is always larger than that of basic pool. Narrower the range (bigger P_min, smaller P_max), the greater the IL which is basically the same with amplification.

Impermanent loss chart below : blue line is for basic pool, red line is [-90%, 1000%] ranged pool, yellow line is [-80%, 500%] ranged pool.

Fig 6. Impermanent loss chart for different pools (Initial price : 1)

Ranged pools are vulnerable to high volatility aggravating impermanent loss. So it is important that the ranged pools be used only in a limited way in appropriate circumstances.

In Crescent DEX, ranged pools are applied to pegged assets such as liquid staking tokens like bCRE or same tokens in different bridges. We can assume that those pairs tend not to move much in price.

Therefore LP investors who are interested in ranged pools do not have to worry about impermanent loss. The risk of ranged pool is very limited while the advantages is maximized.

--

--