Algorithmic Market Operations (AMO)
To maintain lisUSD’s price stability & peg at $1, it is crucial to balance lisUSD’s supply and demand in the circulating market and LPs. Previously, the borrow rate of lisUSD was regularly adjusted to indirectly affect the supply and demand of lisUSD. With the launch of our AMO, Lista DAO will implement a dynamic borrow rate, similar to Curve Finance’s MonetaryPolicy contracts for crvUSD, to further strengthen price stability of lisUSD.
At the start, the Lista core team will decide the parameter based on market conditions. In the futures, parameter changes will require a proposal and community vote.
Interest Rate Mechanics
The interest rates in lisUSD markets are not static but fluctuate based on a set of factors, including:
The price of lisUSD, which is determined through Binance oracle.
The variables r0, and Beta.
The formula for calculating the Borrowing interest rate (r) is as follows:
Key variables in this calculation include:
r: Annual Percentage Yield (APY)
r0: Default annual rate, different for each collateral type, configured when launched on the smart contract
exp(x): Exponential function of x (e*e*e*...*e)
Price(lisUSD): Current price of lisUSD, obtained from an oracle
Beta: Adjustment parameter, configured when launched on the smart contract
Note* For each different Collateral, a different r0 is set. However, the maximum r0 will always be capped at 200% or less at any point in time.
Note* For each different Collateral, a different Beta will be set. As seen in r calculation, the Beta has a huge effect on x, and thus r.
Example:
r0 = 8%, Price(lisUSD) = $0.98, Beta = 2% r = 8% * exp[(1 - 0.98)/2%] = 21.746%
This means if the price of lisUSD is $0.98, with r0 = 8% and Beta = 2% , the current borrowing rate will be 21.746%. Users will repay lisUSD, reducing the supply.
Calculation for r
For accuracy and consistency, both r and r0 are expressed in terms of 10^27 to denote precision and are calculated per second.
Here are the steps taken when calculating for r:
Retrieve the current price of lisUSD to get price(lisUSD). (r0, Beta is fixed for each collateral)
Update the current borrow rate every 15 minutes or when users interact with the contract (borrow, repay)
Calculate the borrow interest based on the current rate
The exact formula for calculating the interest rate (r) is as follows:
r: Interest rate per second, in terms of 10^27, converted to APY, always be less than 200% at any point in time
r0: Default rate, different for each collateral type, configured when launched on the smart contract
exp(x): Exponential function of x ((e*e*...*e)
Price(target): Target price ($1), calculated in terms of 10^8
Price(lisUSD): Current price of lisUSD, obtained from Binance oracle, in terms of 10^8
Beta: Adjustment parameter, configured when launched on the smart contract, tentative rang: (3 * 10^5, 10^8)
APY(Default): Confirms r0
All smart contract details can be found here.
Source code parameters:
r0:
exp(x):
Price(target):
Price(lisUSD):
Beta:
Last updated