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

# Interest rates

> How the rate moves with demand.

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/mystockline/T8zoJG9K_VZWCC6Y/assets/diagrams/concepts/one-pool-many-books-light.svg?fit=max&auto=format&n=T8zoJG9K_VZWCC6Y&q=85&s=3df6a06fe587c2042f015ff7720fe72e" alt="One dollar pool lends to many books. Each book has its own rate curve, and suppliers earn the blend." width="1200" height="520" data-path="assets/diagrams/concepts/one-pool-many-books-light.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/mystockline/T8zoJG9K_VZWCC6Y/assets/diagrams/concepts/one-pool-many-books-dark.svg?fit=max&auto=format&n=T8zoJG9K_VZWCC6Y&q=85&s=6c69ca8caacb39c3f32e920cb388a885" alt="One dollar pool lends to many books. Each book has its own rate curve, and suppliers earn the blend." width="1200" height="520" data-path="assets/diagrams/concepts/one-pool-many-books-dark.svg" />
</Frame>

Borrow rates follow a kinked curve per book. One dollar pool lends to every book, and suppliers earn the blend. Rate today is [6.81%](/concepts/interest-rates).

`InterestRateModel` is a library, not a deployed contract. `Stockline` calls it when interest accrues.

<Info>
  A crypto protocol often ships one curve for a pool. Stockline stores IRM params per book so a high-beta name can be more expensive than an index book without splitting the dollar pool.
</Info>

Aave-style params, already per-second WAD. `kink` is utilization in WAD. Division rounds up so debt never accrues slower than the curve.

```
if u <= kink:
  rate = base + slopeBelow * u / kink
else:
  rate = base + slopeBelow + slopeAbove * (u - kink) / (1 - kink)
```

| Param            | Launch value                  |
| ---------------- | ----------------------------- |
| `baseRate`       | `1e10` / s                    |
| `slopeBelowKink` | `2e10` / s                    |
| `slopeAboveKink` | `8e10` / s                    |
| `kink`           | [0.90](/resources/parameters) |

The app mock uses `5.4 + 3.0 * u²` in `app/lib/risk.ts`. That formula is display-only. Integrators must use this library, not the mock.

Utilization is borrowed / supplied in WAD. Full utilization is expensive on purpose so unused dollars return for withdrawals.

Suppliers earn the weighted borrow interest of all books, net of the [15%](/resources/parameters) reserve factor. sUSDG is ERC-4626. The exchange rate rises as interest is paid. Creator-fee donations increase `totalAssets` without minting shares.

A rate is a reading at build, labeled today. It is not a forecast.

The kink at 90 percent is the point where the slope steepens. That is why Move to Cash can be instant on a quiet day and delayed when the pool is lent out. Per-book debt uses that book's borrow index, so a rate change on one book never touches another book's accrued interest.

Do not quote a future rate. The docs and the app both say rate today. The build pulls the demo rate from PARAMETERS.json unless an RPC computes the live curve.

Related: [Earn](/using/earn), [Parameters](/resources/parameters), [Reserve and fees](/concepts/reserve-and-fees), [Books and tiers](/concepts/books-and-tiers).
