Interest Rate Models (IRMs)

Learn about Lotus IRM types including Adaptive Linear Kink, Base Linear Kink, Managed Linear Kink, and Fixed Rate models with configuration and guardrails.

Lotus is IRM-agnostic. An interest rate model (IRM) defines how each tranche's borrow rate is computed from that tranche's utilization. IRMs expose an initialization hook and a tranche borrow-rate function. Markets select an IRM and pass per-market parameters at creation.

Enabling IRMs

The Lotus admin enables IRMs on the protocol. Once enabled, any new market can use them. Enabled IRMs cannot be disabled.

Selecting an IRM for a market

A market chooses its IRM via MarketParams.irm. Market-specific IRM parameters are passed during createMarket() as irmParams.

Approved IRMs

circle-check

What it is

The Adaptive Linear Kink IRM is a piecewise linear "kink" model whose parameters update automatically during borrow-rate queries, keeping rates responsive to utilization without manual maintenance. Rate follows a kink curve (linear up to targetUtilization, steeper after), with the "rate at target" adapting over time. Guardrails constrain how quickly parameters can change.


Config and state

Adaptive behavior is controlled by AdaptiveConfig:

AdaptiveConfig controls target utilization, rate bounds, adaptation speed, curve steepness, grace period, minimum update interval, and max per-update rate change. Per-market/tranche AdaptiveState stores the current rate at target, last utilization, last update time, creation time, and an interaction counter for seeding protection.


How borrow rates are computed

On each borrow rate query, the IRM updates its adaptive state (unless paused) and computes the rate from the current kink parameters.

Features and Guardrails

Guardrails limit unexpected jumps and early-market manipulation:

  • gracePeriod: dampens behavior for new markets

  • minUpdateInterval: prevents rapid-fire updates

  • maxRateChange: bounds how much the rate can change per update

  • interactionCount: optional seeding protection before the model “trusts” observations

Last updated