# Testnet Interest Rate Model

### Interest Rate Model

We use a **jump rate model** to determine interest rates based on pool utilization. This model adjusts borrow and supply rates depending on how much of the available liquidity is being used.

#### Utilization

Utilization is calculated as:

```
utilization = total_borrowed / (total_supplied + total_borrowed)
```

* When utilization is low, borrow rates are low.
* As utilization increases, borrow rates rise to incentivize more supply and limit excessive borrowing.

***

### Borrow Rate

The borrow rate increases linearly up to a kink point (80% utilization). Beyond the kink, the rate increases more steeply.

Parameters used on testnet:

* `baseRate`: 10%
* `slopeLow`: 10%
* `slopeHigh`: 50%
* `kink`: 80%

Borrow rate formula:

```
if utilization <= kink:
    borrow_rate = baseRate + slopeLow * utilization
else:
    borrow_rate = baseRate + slopeLow * kink + slopeHigh * (utilization - kink)
```

***

### Supply Rate

Suppliers earn a portion of the interest paid by borrowers. A small cut is kept by the protocol via the reserve factor.

* `reserveFactor`: 10%

Supply rate formula:

```
supply_rate = utilization * borrow_rate * (1 - reserveFactor)
```

***

### Interest Rate vs Utilization graph

<figure><img src="/files/25CPh8r4E6XrBhhfZBwD" alt=""><figcaption></figcaption></figure>

### Configurability

These parameters are **configurable per pool**. What’s shown above reflects the initial values used on the testnet and are **not final**. Final parameters for each pool will be determined prior to mainnet launch based on testing, risk, and market conditions.

***

### Examples

#### Utilization = 54%

* Borrow rate:

  ```
  0.10 + 0.10 * 0.54 = 0.154 → 15.4%
  ```
* Supply rate:

  ```
  0.54 * 0.154 * 0.9 = 0.0749 → 7.49%
  ```

#### Utilization = 90%

* Borrow rate:

  ```
  0.10 + 0.10 * 0.8 + 0.50 * (0.90 - 0.8) = 0.18 → 18%
  ```
* Supply rate:

  ```
  0.90 * 0.18 * 0.9 = 0.1458 → 14.58%
  ```

***

This setup provides predictable rates under normal conditions, reacts quickly to high utilization, and keeps pools healthy while rewarding both borrowers and suppliers.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.surflending.org/public-testnet-resources/editor/testnet-interest-rate-model.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
