Skip to main content

Borrow rates

Your borrow rate is not fixed. It accrues continuously and changes over time based on what the protocol's controller is doing and how stressed your branch is.

The three components

Your effective APR is built from three things:

  1. The system rate. A single per-second rate set by the singleton RateParControl PI controller. Same number system-wide. Bias is 2.0% APR, bounded between 0.1% and 30%.
  2. The branch utilization-error offset. Each branch adds a per-branch offset that depends on how full it is relative to its issuance target. A near-empty branch pays close to the system rate; a near-full branch pays substantially more. The offset is updated continuously by the Aggregator using a 72-hour-half-life EMA of branch debt.
  3. The shield-share adjustment. Both shielded and unshielded troves get a rate adjustment based on the branch's shielded share. Shielded troves pay a surcharge on top of the branch rate (the "shield premium" in the colloquial sense). Unshielded troves receive a discount: the same mechanism, with the opposite sign. The discount is funded by the surcharge. See The shield.

Putting it together (APR-thinking):

your_APR  ≈  clamp(system_APR + branch_offset_APR,  0.25%,  50%)
+ shield_adjustment (signed: positive if shielded, negative if unshielded)

The branch part is additive: the branch offset is added to the system rate in the per-second-delta domain, then the sum is clamped to a final per-branch range of 0.25% to 50% APR. The clamp range is wider than the system rate's own [0.1%, 30%] bounds: a hot branch can be pushed above the system cap, and a cold branch can sit below the system floor, in both cases up to the final clamp.

The shield adjustment is a signed addition on top. Its magnitude on each side grows with the branch's shielded share, at low shielded share both sides are tiny; at high shielded share the surcharge and the discount both grow meaningfully.

How the system rate moves

The system rate is the controller's primary tool for nudging RD's market price toward par:

  • RD trading above par → controller lowers the system rate → cheaper to borrow → more RD supply → price falls back toward par.
  • RD trading below par → controller raises the system rate → expensive to be short RD, attractive to repay → less RD supply → price rises back toward par.

Maximum rate slew is about 0.25%/hour at the 2% bias (about 6%/day at the bias point). The controller has a small deadband around par and won't react to noise within it. See Peg & PI controller for the controller mechanics.

How the branch offset moves

Each branch has an issuance target (its "debt EMA target"). When real branch debt is far above target, utilization error is positive and the controller raises the offset, making borrowing on a hot branch more expensive. When real branch debt is below target, the offset can be negative, pulling the branch rate below the system rate (subject to the 0.25% APR final-rate floor).

Update cadence: drips run every 2 hours (with a window up to 8 hours), so the offset adjusts smoothly rather than instantly.

Rate tables

These are realized borrower APRs for various combinations of base rate (the system rate) and debt utilization error (how far the branch is from its issuance target). They assume the controller has been running long enough to reach steady state.

The full tables, for many base rates, time-elapsed-since-last-controller-update settings, and shielded-vs-unshielded, live in the protocol repo at docs/collateral-rate-and-borrow-rate-reference.md. A representative slice at the 2% base rate, 6-hour update window:

Util. errorUnshielded APR
≤ 0%0.25%–2.00%
+5%~2.43%
+10%~2.86%
+20%~3.73%
+30%~4.60%
+50%~6.37%
+100%~10.94%

Shielded APRs are higher by the shield premium, which depends on the branch's shielded share.

What you should do

  • Check the live rate before opening or borrowing more. The dashboard shows the realized rate for your branch and shield status.
  • Watch the trend, not the instantaneous value. The rate moves slowly; what matters for your borrowing cost is the average over the time your trove will be open.
  • Borrow well below the cap. Branches don't run at 100% utilization for long, when they get hot, the rate climbs into double digits. Leaving headroom is also leaving rate headroom.

Deep dives