Utilization rate

Borrow rate

The effective interest rate for borrowing liquidity on InfinityPools consists of two components. The first is the fair value interest rate mentioned in the previous section. This fair value rate has the same expected returns for each loan type when adjusting for term structure and optionality. It is also equal to the expected returns for providing liquidity in the float pool.

As a result, it doesn't make sense for liquidity providers to lend out their assets below the fair value rate as their expected returns would otherwise be inferior to those offered by the underlying float pool. The fair value rate is therefore considered the "floor rate" for borrowing assets.

The second component is a utilization rate that, for each liquidity bucket (also known as bin), responds to demand through a scaling factor. This scaling factor, noted s(u), is a function of the utilization ratio u for the given bucket, ie. u is the proportion of liquidity on loan vs. the total supply for a given bucket.

borrow rate for a given bucket=scaling factor s(u)×the floor rateborrow\ rate\ for\ a\ given\ bucket = scaling\ factor\ s(u) × the\ floor\ rate

Lend yield

As we saw above, the borrow rate is s(u) times the floor rate and u is the proportion of liquidity that is lent out. 1-u is the liquidity that is not lent out and it earns the floor rate, in expectation. Therefore the effective yield for the lender is then u × s(u) × floor rate + (1-u) × floor rate, which simplifies to:

lend yield for a given bucket=(u×s(u)+1u)×the floor ratelend\ yield\ for\ a\ given\ bucket = (u×s(u)+1-u) × the\ floor\ rate

Optimal scaling factor

For a given bucket, suppose there exists a market interest rate r* for which there is very high borrow demand (greater than the total supply) at rates below r*, and negligible demand at rates above. The maximum interest which liquidity providers could earn is therefore r* (assuming that r* is above the floor rate), which would occur with the full supply lent out at rate r*, therefore making the utilization ratio equal to 1.

InfinityPools quotes rates for borrowing swappers on LPs' behalf. Ideally for LPs, the rate would be the highest which the borrowers will accept, ie. r*. This is not possible however because the contract cannot infer r* except by seeing its offers lifted (at which point some liquidity has already been lent below r*). The best that LPs can hope for then is for the scaling factor to minimize this forgone interest, whereby the effective rate is always close to the optimal rate r*.

A scaling factor s(u) is needed such that the effective rate is as close as possible to the market rate r* (so that liquidity providers get as close as possible to the maximum theoretical yield r*) and such that s(u) has reasonable growth as u increases (so that the effective rate is stable relative to changes in u).

The scaling factor s(u) used is 19(1(1u)2+8)\frac{1}{9}(\frac{1}{(1-u)^2}+8).

The scaling factor has the property of having liquidity providers earn an effective rate at least 84% of the maximum achievable rate (ie. r*), irrespective of the value of r*. How close the effective interest rate gets to the maximum interest rate r*, over a range of market rates r*, is shown in the plot below (note the effective rate only gets closer to the maximum rate for any higher values of r* not shown).

Last updated