> For the complete documentation index, see [llms.txt](https://docs-v4.venus.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-v4.venus.io/technical-reference/reference-isolated-pools/interest-rate-models/base-jump-rate-model-v2.md).

# BaseJumpRateModelV2

## Logic for Compound's JumpRateModel Contract V2.

An interest rate model with a steep increase after a certain utilization threshold called **kink** is reached. This rate model uses the following formula for the borrow rate:

* $borrow\\\_rate(u)=a\_1 \cdot u + b$, when $u < kink$
* $borrow\\\_rate(u)=a\_1 \cdot kink + a\_2 \cdot (u-kink) + b$, otherwise

The parameters of this interest rate model can be adjusted by the owner. Version 2 modifies Version 1 by enabling updateable parameters.

## Solidity API

#### accessControlManager

The address of the AccessControlManager contract

```solidity
contract IAccessControlManagerV8 accessControlManager
```

***

#### multiplierPerBlock

The multiplier of utilization rate that gives the slope of the interest rate

```solidity
uint256 multiplierPerBlock
```

***

#### baseRatePerBlock

The base interest rate which is the y-intercept when utilization rate is 0

```solidity
uint256 baseRatePerBlock
```

***

#### jumpMultiplierPerBlock

The multiplier per block after hitting a specified utilization point

```solidity
uint256 jumpMultiplierPerBlock
```

***

#### kink

The utilization point at which the jump multiplier is applied

```solidity
uint256 kink
```

***

#### updateJumpRateModel

Update the parameters of the interest rate model

```solidity
function updateJumpRateModel(uint256 baseRatePerYear, uint256 multiplierPerYear, uint256 jumpMultiplierPerYear, uint256 kink_) external virtual
```

**Parameters**

| Name                  | Type    | Description                                                                  |
| --------------------- | ------- | ---------------------------------------------------------------------------- |
| baseRatePerYear       | uint256 | The approximate target base APR, as a mantissa (scaled by EXP\_SCALE)        |
| multiplierPerYear     | uint256 | The rate of increase in interest rate wrt utilization (scaled by EXP\_SCALE) |
| jumpMultiplierPerYear | uint256 | The multiplierPerBlock after hitting a specified utilization point           |
| kink\_                | uint256 | The utilization point at which the jump multiplier is applied                |

**⛔️ Access Requirements**

* Controlled by AccessControlManager

**❌ Errors**

* Unauthorized if the sender is not allowed to call this function

***

#### getSupplyRate

Calculates the current supply rate per block

```solidity
function getSupplyRate(uint256 cash, uint256 borrows, uint256 reserves, uint256 reserveFactorMantissa, uint256 badDebt) public view virtual returns (uint256)
```

**Parameters**

| Name                  | Type    | Description                               |
| --------------------- | ------- | ----------------------------------------- |
| cash                  | uint256 | The amount of cash in the market          |
| borrows               | uint256 | The amount of borrows in the market       |
| reserves              | uint256 | The amount of reserves in the market      |
| reserveFactorMantissa | uint256 | The current reserve factor for the market |
| badDebt               | uint256 | The amount of badDebt in the market       |

**Return Values**

| Name | Type    | Description                                                               |
| ---- | ------- | ------------------------------------------------------------------------- |
| \[0] | uint256 | The supply rate percentage per block as a mantissa (scaled by EXP\_SCALE) |

***

#### utilizationRate

Calculates the utilization rate of the market: `(borrows + badDebt) / (cash + borrows + badDebt - reserves)`

```solidity
function utilizationRate(uint256 cash, uint256 borrows, uint256 reserves, uint256 badDebt) public pure returns (uint256)
```

**Parameters**

| Name     | Type    | Description                                             |
| -------- | ------- | ------------------------------------------------------- |
| cash     | uint256 | The amount of cash in the market                        |
| borrows  | uint256 | The amount of borrows in the market                     |
| reserves | uint256 | The amount of reserves in the market (currently unused) |
| badDebt  | uint256 | The amount of badDebt in the market                     |

**Return Values**

| Name | Type    | Description                                                    |
| ---- | ------- | -------------------------------------------------------------- |
| \[0] | uint256 | The utilization rate as a mantissa between \[0, MANTISSA\_ONE] |

***


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs-v4.venus.io/technical-reference/reference-isolated-pools/interest-rate-models/base-jump-rate-model-v2.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
