For the complete documentation index, see llms.txt. This page is also available as Markdown.

Morpho Adaptive Curve IRM

The AdaptiveCurveIRM is Morpho Blue's native interest rate model. It targets a 90% utilization ratio by continuously adjusting an internal rate anchor. This page explains how the curve works, how the anchor adapts over time, and how quickly rates can move at different utilization levels.

The Rate Curve

At any point in time, the borrow rate is a function of two inputs:

  • Current utilization U - the share of supplied assets currently borrowed

  • rateAtTarget - an internal state variable representing the borrow rate at exactly 90% utilization

The curve is piecewise linear with a kink at the 90% target. Below the kink it is shallow; above it is steep.

// err = (U - 0.90) / normFactor,  bounded to [-1, +1]
// normFactor = (1 - 0.90) above target, 0.90 below target

if err < 0:
  r = ((1 - 1/C) × err + 1) × rateAtTarget

if err >= 0:
  r = ((C - 1) × err + 1) × rateAtTarget

// C = 4 (curve steepness)

This produces a fixed multiplier structure regardless of where rateAtTarget sits:

Utilization
Multiplier
Example (rateAtTarget = 4%)

0%

0.25×

1.00%

90% (kink)

1.00×

4.00%

100%

4.00×

16.00%

The shape of the curve never changes — only the anchor moves. If rateAtTarget doubles, every point on the curve doubles with it.

Key Parameters

Parameter
Value
Description

TARGET_UTILIZATION

90%

Kink point; borrow rate equals rateAtTarget here

CURVE_STEEPNESS (C)

4

Max rate = 4× anchor; min rate = 0.25× anchor

ADJUSTMENT_SPEED

50/yr

Controls how fast rateAtTarget adapts

MIN_RATE_AT_TARGET

0.1%

Floor on rateAtTarget

MAX_RATE_AT_TARGET

1,200%

Ceiling on rateAtTarget


The Adaptive Mechanism

Between market interactions, rateAtTarget drifts continuously based on the signed error between current utilization and the 90% target.

The further utilization deviates from target, the faster the anchor moves:

  • U > 90% - error is positive, rateAtTarget rises. Higher rates attract new supply and discourage borrowing until utilization falls back to target.

  • U < 90% - error is negative, rateAtTarget falls. Lower rates stimulate borrowing and may cause suppliers to exit until utilization recovers.

  • U = 90% - error is zero, rateAtTarget is unchanged. This is the only stable fixed point.

Rate Velocity

Borrow Rate at Each Utilization Level

The table below shows the instantaneous borrow rate and the rate after 5 days of sustained utilization, starting from rateAtTarget = 4%.

Util
err
rAT t=0
rAT t=5d
Borrow t=0
Borrow t=5d
Change
Max rate t=0
Max rate t=5d

90%

0.00

4.00%

4.00%

4.00%

4.00%

+0%

16.00%

16.00%

91%

0.10

4.00%

4.28%

5.20%

5.57%

+7%

16.00%

17.13%

92%

0.20

4.00%

4.59%

6.40%

7.34%

+15%

16.00%

18.35%

93%

0.30

4.00%

4.91%

7.60%

9.33%

+23%

16.00%

19.65%

94%

0.40

4.00%

5.26%

8.80%

11.57%

+32%

16.00%

21.04%

95%

0.50

4.00%

5.63%

10.00%

14.08%

+41%

16.00%

22.53%

96%

0.60

4.00%

6.03%

11.20%

16.89%

+51%

16.00%

24.13%

97%

0.70

4.00%

6.46%

12.40%

20.03%

+62%

16.00%

25.84%

98%

0.80

4.00%

6.92%

13.60%

23.52%

+73%

16.00%

27.68%

99%

0.90

4.00%

7.41%

14.80%

27.41%

+85%

16.00%

29.64%

100%

1.00

4.00%

7.93%

16.00%

31.74%

+98%

16.00%

31.74%

rAT = rateAtTarget. Max rate = borrow rate at 100% utilization given the adapted rateAtTarget. Protocol fee not applied.

Time for rateAtTarget to Reach a Level

Starting from rateAtTarget = 4%, days required to reach each target rate at constant utilization.

Constant UR
To 7%
To 8%
To 9%
To 10%

91%

40.4 days

50.0 days

58.5 days

66.1 days

92%

20.2 days

25.0 days

29.2 days

33.0 days

93%

13.5 days

16.7 days

19.5 days

22.0 days

95%

8.1 days

10.0 days

11.7 days

13.2 days

97%

5.8 days

7.1 days

8.3 days

9.4 days

100%

4.1 days

5.1 days

5.9 days

6.7 days

Assumes constant utilization throughout. In practice, rising rates will attract new supply and reduce utilization before these levels are reached.

Doubling Time by Utilization

How many days of sustained utilization before rateAtTarget and every point on the curve doubles.

Utilization
err
Speed
Doubling Time

91%

0.10

5.0/yr

50.6 days

92%

0.20

10.0/yr

25.3 days

93%

0.30

15.0/yr

16.9 days

94%

0.40

20.0/yr

12.6 days

95%

0.50

25.0/yr

10.1 days

96%

0.60

30.0/yr

8.4 days

97%

0.70

35.0/yr

7.2 days

98%

0.80

40.0/yr

6.3 days

99%

0.90

45.0/yr

5.6 days

100%

1.00

50.0/yr

5.1 days


Supply APY vs Borrow APY

rateAtTarget is not the supply APY. The relationship between the two is:

At 90% utilization, a 4% borrow APY with a 15% protocol fee yields a supply APY of approximately 3.06%. The gap between borrow and supply APY narrows at higher utilization but never fully closes due to the protocol fee.


Risk Considerations

Slow-moving markets. A market pinned at 91% adapts slowly - rateAtTarget takes ~50 days to double. This is insufficient pressure for rapid rebalancing. Curators should treat sustained utilization above 91% as a signal to add supply capacity proactively.

Fast-moving markets. Above 95% utilization, the anchor can double in under 10 days. Combined with the 4× curve multiplier, the max borrow rate can reach multiples of its starting value quickly, which may trigger liquidations if borrowers are not monitoring positions.

The 4× leverage on volatility. Because the max rate is always C × rateAtTarget, any drift in the anchor is amplified fourfold at the top of the curve. A rateAtTarget move from 4% to 8% moves the max rate from 16% to 32%.

rateAtTarget as a market health signal. Rising rateAtTarget indicates sustained over-utilization. Falling rateAtTarget indicates sustained under-utilization!

Last updated

Was this helpful?