Page cover image

Borrow rate

This section is being worked on and parts can be incomplete/be changed in the future!

The borrow rate (also known as the interest rate) is the cost of borrowing $MONEY in a given lending market at any given time, represented as APR (does not account for compounding interest). The borrow rate is set algorithmically and updates anytime there is a change in the market, which can lead to a loan's ongoing costs increasing or decreasing at some point in time after a loan was created.

The purpose of the dynamic interest rate is to ensure the stability of $MONEY as a stablecoin to its 1 USD peg. Stability of the borrow rates in turn is managed through governance.

The 3 primary factors that change a given market's borrow rate are:

  • How close to its debt ceiling the given market is

    • The closer to the debt ceiling, the higher the rate, and vice versa

  • The current price of $MONEY

    • If the price of $MONEY is above 1 USD, it lowers the interest rate, and vice versa

  • How much debt the Peg Keepers have

    • The more debt the Peg Keepers have, the lower the interest rate, and vice versa

There are also a few variables that are set by governance that modify how much impact the above factors have on the borrow rates, and these are described in the formula section.

Why does a market being close to its debt ceiling affect the borrow rate?

A market being closer to its debt ceiling will push the borrow rate higher, all other factors being equal. The reason for this is that the closer to the debt ceiling a market is, the higher the chance that the protocol is getting closer to the point where it is not comfortable managing the total supply of $MONEY anymore, which correlates with the price of $MONEY being pushed below its 1 USD peg.

The debt ceiling is just a pre-set variable that can be changed anytime though if governance deems the protocol could comfortably manage an increased debt ceiling, taking into account other economic factors. Raising the debt ceiling would push the borrow rate lower.

It is also important to keep in mind that closeness to the debt ceiling is also just one factor in the borrow rate formula, and if the other factors indicate that there is more demand than supply of $MONEY, the borrow rate will be pushed lower regardless of closeness to the debt ceiling.

Why does the price of $MONEY affect the borrow rate?

The borrow rate formula is designed to help stabilize the price of $MONEY. If the price of $MONEY is below 1 USD, it reflects that there is an over-supply of $MONEY in a few key liquidity pools the protocol uses to track the real price of $MONEY, hence the borrow rate will go up to disincentivize over-borrowing. Likewise if the price of $MONEY goes above 1 USD, it reflects a lack of supply of $MONEY in liquidity pools, hence the borrow rate will be pushed down to incentivize more borrowing.

Why do the Peg Keepers affect the borrow rate?

Contracts called Peg Keepers help maintain the stability of $MONEY by depositing and removing $MONEY in a few key liquidity pools to help balance the pools which stabilizes the price of $MONEY to around 1 USD. Thus the amount of $MONEY the Peg Keepers have currently deposited into the pools to balance them is a way to track the general supply and demand of $MONEY on a given chain. If the Peg Keepers have more debt (deposited more $MONEY into the liquidity pools), it indicates there is a general lack of supply of $MONEY, hence the borrow rate is lowered to incentivize more borrowing to help keep the price close to the 1 USD peg. By incentivizing more borrowing, more $MONEY would likely end up in these key liquidity pools, which would let the Peg Keepers withdraw some of their $MONEY which would then balance the borrow rates back. Likewise if the Peg Keepers have low debt, it indicates there is more than enough supply of $MONEY, hence the borrow rate increases to make sure there is not an over-supply of $MONEY which would push the price below 1 USD.

The Borrow Rate Formula

r=rate0epower    power=1pricesigmaDebtFractionTargetFraction  DebtFraction=PegKeeperDebtTotalDebtr = \textrm{rate0} * e^{\textrm{power}} \ \\ \ \\ \ \\ \ \\ \textrm{power} = \frac {1 - \textrm{price}} {\textrm{sigma}} - \frac {\textrm{DebtFraction}}{\textrm{TargetFraction}} \ \\ \ \\ \textrm{DebtFraction} = \frac {\textrm{PegKeeperDebt}}{\textrm{TotalDebt}}

where:

  • r is the borrow rate

  • rate0 is a predefined base interest rate

  • price is the current price of $MONEY as reported by oracles, on the same network the borrow rate is calculated for

  • sigma is a variable configured by governance that determines how big effect the price distance from the peg has on the borrow rate

  • DebtFraction is the ratio of the debt of the Peg Keepers to the debt in the market, on the same network the borrow rate is calculated for

  • TargetFraction is a predefined value that determines how big effect the DebtFraction has on the borrow rate

  • PegKeeperDebt is the debt of all Peg Keepers, on the same network the borrow rate is calculated for

  • TotalDebt is the debt in all markets, on the same network the borrow rate is calculated for

The borrow rate produced by this formula defines the base borrow rate for all markets on a given network, but there is an additional modifier that changes the interest rate between the different markets on that same network to account for the utilization difference, which can be found here on line 257.

The variables set by governance

The following variables are static and can be changed through governance. These static variables modify how big of an effect the market variables have.

  • rate0 - currently set at 10%

  • sigma

  • TargetFraction - currently set at 10%

Last updated