Skip to content
Protocol

Interest and rates

The borrower sets the rate, an on-chain reference sets the floor, interest is minted as it accrues, and one formula splits it between the pool, a reserve, the token and liquidity.

Spec v0.9.1, reviewed 2026-09-08

Fyber has no utilisation curve. Each borrower writes down the annual rate they accept to pay, and that number can be changed by them and by nobody else. What the rate buys is a place in the redemption queue: a low rate is cheap and gets redeemed first, a high rate is expensive and gets redeemed last.

Interest is minted into the routing contract as it accrues, so the fyUSD supply equals the debt at every instant, by construction.

Rule R-5.7.1, principle P5

The rate, its bounds and its floor

A rate is anything between the tier's floor and 100%. The floor has a fixed part and an indexed part, and the effective floor is the larger of the two.

Tier 1Tier 2Tier 3
Fixed part1.5%2.5%4%
Multiplier on the reference0.50×0.751.1

The reference is a 30-day time-weighted average of a USDG borrow market read on chain, clamped to a 2% to 6% band, computed only over the days that actually produced a sample, and treated as unavailable below fifteen samples. If it is unavailable the fixed floor applies alone, which is the restrictive direction.

The floor applies to a choice, never retroactively. A rate set below a floor that later rises stays where it is.

Rule R-5.7.2, Rule R-5.7.3, Rule R-3.13.1

Changing it, and the fee

Changing the rate within 7 days of the last change costs 7 days of interest at the new rate, added to the debt. Outside that window it is free. The origination fee obeys the same rule: 7 days of interest at the borrower's own rate, added to the debt rather than deducted from the proceeds, minted to the router and split immediately.

The fee exists to stop somebody from repricing themselves out of the redemption queue whenever a redemption appears, and back afterwards.

Neither fee earns season counters. Only accrued interest does, and only up to a rate of 3% on tier 1, 5% on tier 2 and 8% on tier 3. Setting a rate above that cap pays more to the Stability Pool and farms no faster, and the borrow screen is required to say so. See FBR internals.

Rule R-5.6.1, Rule R-5.7.1

Delegation

A borrower may authorise one address to set their rate, within a minimum and a maximum they choose themselves. The delegate pays no fee, and is refused entirely inside the cooldown window rather than being allowed to charge the owner for a change. The authorisation is revocable at any moment.

The reference interface proposes a conservative service by default, bounded one point either side of the rate chosen at opening, and publishes its fee outside the protocol.

Rule R-5.8.1, Rule R-5.9.2

The order redemptions walk

Positions sit in a doubly linked list ordered by a key. Without any staked FBR the key is the rate itself, and ties keep insertion order.

The sort key

key = annual rate + 2% × min(1, staking weight ÷ (0.10× × debt))

Staked FBR moves a position back in the queue by up to 2%, in proportion to debt, without changing the rate paid, the floor, the cooldown or the fee. A reinsertion at an unchanged key keeps the position's place. Anybody may push a position forward when its weight has fallen; only the owner can pull it back.

Rule R-7.3.1, Rule R-19.10.1

Accrual, and the clock that can stop

Interest is linear on an interest clock between two touches and capitalised at each touch. Every branch operation begins by advancing the clock, computing the pending amount, minting it to the router and routing it.

What a position owes

debt(u) = recorded debt × (1 + rate × Δclock ÷ 31,536,000) + stake(u) × (L_debt − snapshot(u))

The second term is the redistribution index: debt that a bad-debt event spread across the branch's positions, applied at the position's next touch and carried in every view in the meantime. Rounding on the debt is always upward.

The clock runs in every regime, including while the branch is frozen. It stops in three cases only: after 24 hours of continuous halt, at a branch shutdown, and 90 days into the terminal mode, when every rate is set to zero. The unbillable time is reconstructed from the anchor's own timestamps, so it is the same whether or not anybody was calling the contract during the outage.

Rules R-5.5.1, R-5.5.3, R-5.5.5

Where the money goes

Every fyUSD minted outside principal debt goes to the router. So does a quarter of every vault fee, routed exactly like a peg-module fee.

DestinationShareCondition
Stability Pool of the branch90% minus the FBR share, minus the backstop top-upalways
FBR buybackf(t)zero before the first season, and while any branch carries bad debt, and in the terminal mode
Backstopfive points, taken out of f firstwhile its reserve is under 2% of debt outside the peg module
fyUSD liquidity10%always, until the terminal mode
Terminal mode100% to the pooleverything else goes to zero

The FBR share

F_MAX(t) = 10% + (15%10%) × min(1, time since the first season ÷ 365 days)


health = clamp((pool ÷ debt − 40%) ÷ (70%40%), 0, 1)


f(t) = F_MAX × health, and zero if any branch carries bad debt or the terminal mode has started

The health term means the token share is zero whenever the pools hold less than 40% of the debt, and full only above 70%. The protocol pays its own token only out of a system that is already covered.

Nothing is held back for somebody who never turned up

Two shares are earmarked for a role that may be empty. Neither of them waits.

The 10% that pays fyUSD liquidity is settled per interval. When no position was in range at both ends of an interval, that interval's fyUSD is re-routed through the splitter at the next checkpoint, so it goes back to the pools, the FBR share, the reserve and the incentives again. It is not banked for whoever provides liquidity later.

The same applies to the quarter of a vault fee meant for locked providers. While no lot of ninety days or more is alive on that vault, the quarter goes to the splitter instead, and the effective split of that vault's fees is 50 / 0 / 50. See the vaults.

Rule R-10.2, Rule R-19.1.1

The reserve comes first

The reserve starts at zero. Nobody endows it, and it fills only from revenue: the five points of the routed flow, the FBR share, and half of every vault fee. At the modelled pace it reaches its target of 2% of the debt somewhere between the end of the second year and the end of the third, and no FBR is bought back before then. See how it starts.

Nothing is bought back before the reserve is full

The FBR share and half of every vault fee land in one pending balance. While the backstop's fyUSD reserve is under 2% of the debt outside the peg module, flush() sends all of that balance to the reserve and stops. A buyback happens only once the reserve is full.


Rule R-19.1.2, decision D132

When a buyback does happen it is permissionless, needs at least 1,000 fyUSD pending and an hour since the last one, and is bounded to 25% of the pool's own depth per batch with a price bound taken from the time-weighted average. What is bought is credited into existing stakes and never paid out; the protocol's own stake burns its share. See FBR internals.

The target is a ceiling as well as a floor. Anything the reserve holds above 2% of the debt is released at the next flush and goes to the buyback, so a voluntary payment into the reserve above its target ends up buying FBR rather than sitting there. Anybody paying in should know that before they do it. A release with no excess reverts NothingToRelease.

In the terminal mode the residue goes the other way: what is left in the reserve is returned to Stability Pool depositors in proportion to their deposits, 90 days after the terminal mode opened, and only once no bad debt is still open. Attempting it earlier reverts SunsetNotSettled. See Sunset.

The routing when the payer is not a branch

A fee from the peg module, or the routed quarter of a vault fee, is not attached to one branch. It is split across the activated branches in proportion to their unbacked debt, meaning debt beyond what their own pool covers. When no branch has unbacked debt it goes by debt instead, and when there is no debt at all it goes to the backstop. The rounding remainder goes to the first branch.

Rule R-3.8, Rule R-10.1

What follows from this page