Interest Calculator
This module handles the calculations of Utilization Rate, Borrow Rate & Supply Rate for all the PalPools.
The Interest Calculator V2 has 2 ways to calculate Borrow & Supply Rates :
The Jump Rate, relying on the Utilization Rate and the liquidity of a Pool
The Multiplier Rate, also based on the Utilization Rate, but also on some Governance values : the Proposal Threshold, and the Quorum Amount. This method of calculation allows to calculate a Borrow Rate increased by a Multiplier to prevent any cheap access to huge amounts of voting power that could hurt Governances.
Each PalPool is linked to a Multiplier matching the governance token it holds. The switch between the 2 calculation methods can be done for each PalPool individually, and will depend on the TVL of the PalPool, and the amount of voting power it represents.
Methods :
utilizationRate
function utilizationRate(uint cash, uint borrows, uint reserves) public pure returns(uint);
Gives the utilization rate of a Pool given the parameters (uint, scaled 1e18):
Utilization rate = Borrows / (Cash + Borrows - Reserves)
Parameters:
name | type | desc |
cash | uint | amount of underlying token in the Pool |
borrows | uint | amount borrowed from the Pool |
reserves | uint | amount of the token set in the Pool’s reserve |
getSupplyRate
function getSupplyRate(address palPool, uint cash, uint borrows, uint reserves, uint reserveFactor) external view override returns(uint);
Returns the Supply Rate for the given parameters (uint, scaled 1e18).
Parameters:
name | type | desc |
palPool | address | address of the Pool |
cash | uint | amount of underlying token in the Pool |
borrows | uint | amount borrowed from the Pool |
reserves | uint | amount of the token set in the Pool’s Reserve |
reserveFactor | uint | ratio of borrow fees to set as Reserve |
getBorrowRate
function getBorrowRate(address palPool, uint cash, uint borrows, uint reserves) external view override returns(uint);
Returns the Borrow Rate for the given parameters (uint, scaled 1e18).
Parameters:
name | type | desc |
palPool | address | address of the Pool |
cash | uint | amount of underlying token in the Pool |
borrows | uint | amount borrowed from the Pool |
reserves | uint | amount of the token set in the Pool’s reserve |
Multipliers
Multipliers, when activated through the Interest Calculator, will check the total amount of voting power borrowed from Paladin for a given Governance (the total amount across multiple PalPools if their tokens are used in the same Governance). Using 2 common values in most Governances, the Proposal Threshold and the Quorum Amount, it will return a multiplier used to increase the Borrow Rate to better price large borrowed amounts of voting power.
The Multiplier is triggered when the Total Borrowed from Paladin reaches 75% of the Proposal Threshold for the given Governance, and will increase based on the Total Borrowed compared to the Proposal Threshold and the Quorum Amount based on the formula :
tB : Total Borrowed / pT : Proposal Threshold / qA : Quorum Amount
There are currently 2 types of Multipliers:
The Governor Multiplier: Based on Governor Alpha/Bravo contracts, it used for Compound and Uniswap governances (1 for each governance).
The Aave Multiplier : Based on Aave Governance, and using Proposal Threshold and Quorum Amount from the Short Executor, it is used for both AAVE & stkAAVE PalPools (where the Total Borrowed amount is the sum of the borrowed amount from both PalPools).
Last updated