> ## Documentation Index
> Fetch the complete documentation index at: https://docs.berachain.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interest Rates

> How supply and borrow rates are set by the IRM and utilization; AdaptiveCurveIRM and target utilization.

Interest rates on Bend are set by each market's **Interest Rate Model (IRM)**. If you're building a borrow integration, you need to show how rates work and how they affect positions.

## IRM role

Each Bend market has a single, immutable IRM. That contract computes the borrow rate from market conditions, mainly **utilization** (total borrows / total supply). Only IRMs approved by Bend governance can be used; the main one is **AdaptiveCurveIRM**.

### AdaptiveCurveIRM

AdaptiveCurveIRM targets **90% utilization**.

* **Below 90%**: Borrow rate falls to encourage borrowing.
* **Above 90%**: Borrow rate rises to encourage repayments and more supply.

That keeps markets capital-efficient while keeping enough liquidity for withdrawals. For formulas and behavior, see [Interest Rate Model](/bend/learn/irm).

### Finding the market rate

To get the rate at a given utilization (e.g. 80%) for a market:

* **Morpho Contract** - To retrieve IRM for market
* **IRM Contract** - Query rate at utilization point (e.g. 80%)

With the assumption that you will use one of the following markets:

| Market         | MarketId                                                             |
| -------------- | -------------------------------------------------------------------- |
| wsRUSD / HONEY | `0x04d3b8b00c6f3b75481492b76139473e2368339ee58587df65684fdb9103984e` |
| WBTC / HONEY   | `0x950962c1cf2591f15806e938bfde9b5f9fbbfcc5fb640030952c08b536f1f167` |
| sUSDe / HONEY  | `0x1ba7904c73d337c39cb88b00180dffb215fc334a6ff47bbe829cd9ee2af00c97` |
| wgBERA / HONEY | `0x63c2a7c20192095c15d1d668ccce6912999b01ea60eeafcac66eca32015674dd` |
| WETH / HONEY   | `0x1f05d324f604bd1654ec040311d2ac4f5820ecfd1801a3d19d2c6f09d4f7a614` |
| WBERA / HONEY  | `0x147b032db82d765b9d971eac37c8176260dde0fe91f6a542f20cdd9ede1054df` |
| iBERA / HONEY  | `0x594de722a090f8d0df41087c23e2187fb69d9cd6b7b425c6dd56ddc1cff545f0` |

#### Step 1 - Determine IRM contract

Go to [https://berascan.com/address/0x24147243f9c08d835C218Cda1e135f8dFD0517D0#readContract](https://berascan.com/address/0x24147243f9c08d835C218Cda1e135f8dFD0517D0#readContract) and enter one of the **MarketIds** from above in the `idToMarketParams` field.

<Frame>
  <img src="https://mintcdn.com/berachain-422fce37/spFyXF2YSQlNtmpH/images/bend/interest-rates-irm-01.png?fit=max&auto=format&n=spFyXF2YSQlNtmpH&q=85&s=a60d0d82dbb37255a28a5c6e9602ea35" alt="Berascan - Determine IRM Contract Address" width="3104" height="1808" data-path="images/bend/interest-rates-irm-01.png" />
</Frame>

The returned result should provide something similar to the following:

| Name            | Type    | Value                                      |
| --------------- | ------- | ------------------------------------------ |
| loanToken       | address | 0x0dE23153BC280dD95BE914ddafb5591aE877e067 |
| collateralToken | address | 0xC3aD1095c231bb5D25E7EB1Aa23de7A9439EA12c |
| oracle          | address | 0xc76A0E60016dFd4B18Db71b6DaEF769bc8057a3d |
| irm             | address | 0x1d5376e532CcF25b740270624111D665830E5dB9 |
| lltv            | uint256 | 945000000000000000                         |

Take note of the `irm` address and go to that address on [BeraScan](https://berascan.com/).

#### Step 2 - Determine Market Rate Target Utilization

Enter one of the **MarketIds** from above into the `rateAtTarget` field.

<Frame>
  <img src="https://mintcdn.com/berachain-422fce37/spFyXF2YSQlNtmpH/images/bend/interest-rates-irm-02.png?fit=max&auto=format&n=spFyXF2YSQlNtmpH&q=85&s=c136ccdacf563704254b13f8105122fb" alt="Berascan - Determine Market Rate Target Utilization" width="3104" height="1808" data-path="images/bend/interest-rates-irm-02.png" />
</Frame>

## How interest accrues on debt

For a borrower, the most important takeaway is that **interest is constantly accruing**, increasing their total debt over time. This directly impacts their position's health.

The process is as follows:

#### 1. Rate calculation

The IRM calculates the instantaneous `borrowRate` based on the market's current utilization.

#### 2. Interest accrual

This rate is applied to the borrower's debt continuously. The amount of interest accrued increases the `totalBorrowAssets` in the market and, proportionally, the asset value of each borrower's `borrowShares`.

#### 3. Impact on Health Factor

As the debt value increases due to accrued interest, the user's **LTV rises** and their **Health Factor falls**, even if collateral and asset prices remain stable.

Health Factor = (Collateral Value x LLTV) / (Initial Debt + Accrued Interest)

This is a critical concept to communicate to users: their position can become riskier over time simply from interest accrual.

## Onchain state and `accrueInterest`

The Bend contract does not update interest for every block to save gas. Instead, interest is calculated and applied only when a market interaction occurs via the `_accrueInterest` internal function. This function is triggered by actions like `borrow`, `repay`, `supply`, and `withdraw`.

<Note>
  When you fetch a user's position from the contract, the `totalBorrowAssets` value reflects the
  state at the last interaction. To get the up-to-the-second debt value, you must account for the
  interest accrued since the `lastUpdate` timestamp.
</Note>
