Interest Rate Calculation
Definitions:
- u is the capital utilization rate of a certain token
- Compound Supply Rate: the real-time supply rate on the money market
- Compound Borrow Rate: the real-time borrow rate on the money market
- Compound Supply Rate Weight: the weight parameter of the Compound Supply Rate
- Compound Borrow Rate Weight: the weight parameter of the Compound Borrow Rate
- Compound Supply Ratio: the percentage of capital deployed on money market
Borrow Rate Model:
BorrowAPR=CompoundSupplyRateWeights×CompoundSupplyRate+CompoundBorrowRateWeights×CompoundBorrowRate()+RateCurveConstant÷(1−u)
When uu >0.999,
Rate Curve Constant\div(1-u) = Rate Curve Constant \div(1-0.999)= RateCurveConstant\times1000RateCurveConstant÷(1−u)=RateCurveConstant÷(1−0.999)=RateCurveConstant×1000
For assets that are not available on Compound or other money markets, Compound Supply Rate Weights=0, Compound Borrow Rate Weights=0,
In summary, there are two factors that decided the Borrow APR, the prevailing market rate that is available in the market and the capital utilization rate in the DeFiner protocol. Also, it's a non-linear model. The borrowing interest can adapt quickly if the utilization of the pool approaches a relatively high level.
Based on different parameter sets, we have three different strategies: Conservative Mode, Moderate Model, and Aggressive Model.

Deposit Rate Model:
DepositRate=CompoundSupplyRatio×CompoundSupplyRate+BorrowRate×u
For assets that are not available on Compound or other money markets, Compound Supply Rate Weights=0, Compound Borrow Rate Weights=0
Interest Accounting System
Definitions:
- Deposit Principle: the crypto assets that users deposited
- Deposit Interest: interest that the depositor earned
- Deposit Storage Interest: the interest that depositor accrued
- Deposit Accrual Interest: the deposit interest that has not accrued
- Deposit Interest Per Block: interest that user earned for every block
- Blocks Per Year: annual expected blocks of the blockchain
Formular:
DepositInterestRatePerBlock=BorrowAPR÷BlocksPerYear
Deposit Interest Per Block = (Deposit Principle+Deposit Storage Interest) \times Deposit Interest Rate Per BlockDepositInterestPerBlock=(DepositPrinciple+DepositStorageInterest)×DepositInterestRatePerBlock
DepositInterest(block_t)=DepositInterest(block_t -_1))+DepositInterestPerBlockDepositInterest(blockt)=DepositInterest(blockt−1))+DepositInterestPerBlock
BorrowAPR will be updated in the contract if there were any users who have deposits of the token performs a transaction
The interest earned between the last transaction block of the user and the latest transaction block will be accrued if the user performed a transaction and will be added to the Deposit Storage Interest.