Earn — the Stability Pool and sfyUSD
Deposit USDG or fyUSD, receive the interest borrowers pay, and absorb liquidations in exchange. Where every point of yield comes from, and what you take on.
The Stability Pool is the counterparty to liquidations. It holds fyUSD; when a position becomes undercollateralised, the pool burns some of its fyUSD and receives the seized collateral plus a bonus. In exchange, it receives the interest that borrowers pay.
There is one pool per branch. Depositing into the SPY pool means taking on SPY liquidations and being paid by SPY borrowers.
Two ways in
sfyUSD is an ERC-4626 wrapper, one per pool, symbol sfyUSD-SPY and so on. It is the ordinary route: yield compounds into the share price, collateral gains are sold for you, and you never handle a stock token unless you ask to.
Direct deposit into the pool itself keeps liquidation gains in kind: you receive SPY tokens and claim them yourself. Choose this if you want the collateral.
One transaction gets you in from USDG:
Router.depositUSDG(branch, usdgAmount, receiver, minShares)USDG goes through the PSM at 0.05%, becomes fyUSD, and is deposited into the wrapper. Round trip in and back out to USDG costs 0.25%. There is no lock, no cooldown, no performance fee and no management fee.
Rules R-1.2.1, R-2.2.1, R-9.5.1, R-9.6.1
Where the yield comes from
Every fyUSD minted that is not principal — interest, origination fees, rate-change fees, PSM fees — is routed the moment it is created:
| Recipient | Phase 1 | After $25M of debt |
|---|---|---|
| Stability Pool of the branch | 90% | 75% |
| Liquidity incentives for the fyUSD/USDG pool | 10% | 10% |
| Development company | 0% | 15% |
While the Backstop holds less than 2% of total debt, 5 points are diverted to it — from the pool's share in phase 1, from the company's share afterwards. The switch to the second regime is a one-way, permissionless latch triggered by a debt threshold, not a decision. It costs roughly 1.35 points of yield the day it fires, and it is written here from day one rather than announced later.
Rules R-10.1, R-10.2, R-10.8
The two numbers, and neither is a promise
How it is calculated
current yield = 0.90 × weighted average borrower rate (7-day TWA) × total debt ÷ pool size
$9.1M × 5.0% × 0.90 ÷ $5.05M = 8.1%
How it is calculated
realised 30-day yield = (share price today ÷ share price 30 days ago − 1) × 365 ÷ 30
The first is prospective and read live from the chain. The second is history, computed from the sfyUSD share price, and includes interest, routed fees and liquidation gains that have actually been sold. Collateral still held is valued at a discount and reported separately — "of which 3% in SPY being sold".
Both are always displayed with the formula and the sentence: this figure falls if borrowers pay less or if the pool grows, and nobody promises it. There is no third number and no "up to".
Rules R-9.4.1, R-15.2.2
What the yield depends on
Only two variables: the average rate borrowers choose, and the ratio of debt to pool size. That makes it invariant to protocol size and to any single depositor leaving, because both terms move together.
The structural floor is roughly 0.9 × average rate, because the pool is capped at 100% of the branch's debt. Two forces pull the ratio of debt to pool toward one over time: that cap, and the fact that borrowing fyUSD to park it in the pool stops paying once the two rates meet. So the ratio is high at the start and falls, which is why the first months look different from the rest.
What you may expect, by phase
These are expectations, not promises, and the interface never shows them in place of the two computed numbers above.
| Phase | Debt / pool | Expected | What is not guaranteed |
|---|---|---|---|
| Launch, day 0 to about month 3 | 2 to 2.5 | 6% to 10%, volatile | That the ratio stays above 1.5. Every deposit lowers it, including yours. |
| Cruise, month 3 to month 12 | 1.1 to 1.4 | 3% to 5% | The average borrower rate, which is set by the market and by nothing else. |
| Saturation, pool at its cap | close to 1 | 1.5% to 3% | Nothing. Depositors leave for USDG at this level and the pool shrinks. |
What is coded and cannot be changed later: the pool's 90% share of interest in phase 1, the rate floors, the pool cap formula, the routing of mint and PSM fees, and the absence of any emission or subsidy. What is a market outcome: the average rate borrowers choose. One point of average rate moves this figure by 0.9 to 1.6 points, and it is the only lever that really matters.
Six things nobody guarantees: the level itself; how long the launch phase lasts, since it ends precisely because the return attracted deposits; the average borrower rate; that fyUSD finds use outside the pool; the risks that sit outside the number, listed below; and anything a third party might pay, which is never folded in.
Rules R-9.1.1, R-10.7, R-15.5.2
What you take on
Risk
When a position is liquidated, the pool burns fyUSD and receives stock tokens. Your deposit shrinks in fyUSD terms and grows in collateral terms. If the seized collateral is worth less than the debt burned, which happens when a fall is steep enough to drop a position under 105% before anyone can act, the pool absorbs the loss. That is the job the yield pays for.
Rules R-6.2.1, R-6.2.2
Risk
The weekend arrives all at once. Between Friday 20:00 and Sunday 20:00 ET the pool buys
nothing at all. At 20:10 on Sunday it absorbs, in hourly slices, everything the weekend made
liquidatable, at the first official price of the evening. That price comes from a single provider
trading around 1% of a session's volume. On a −20% weekend this can convert more than half the
branch's debt into stock tokens within a few hours. CollateralSale then sells them at up to a 3%
discount, and if the on-chain market is below that, it does not sell and your withdrawal can come
partly in kind.
Rules R-9.4.1, R-6.5.4
Risk
New deposits are refused while a Closer liquidation freeze is running on the branch, for at most 24 hours, at most 3 times over the key's life, and never twice within 7 days. Withdrawal is never refused.
Rule R-9.1.1
Risk
The exposure is correlated. SPY, QQQ, VOO and IVV are close to the same asset. A crash stresses every Tier 1 pool at the same time, which is exactly when your deposit is being converted into falling collateral.
Risk
Deposits are capped per branch at the greater of $500,000 and the branch's debt, and per address at $100,000 for the first 90 days. When the pool is at its cap, new deposits are refused; withdrawals never are.
Rule R-9.1.1
How collateral gains reach you
For a direct depositor: in kind. claimCollateral() transfers the stock tokens to you. Never blocked, no obligation to sell.
For an sfyUSD holder: the wrapper hands its share to a CollateralSale contract, which sells it for fyUSD to anyone who wants it, at oracle price minus a discount that ramps linearly from 0 to 3% over six hours and then stays at 3% until the inventory clears. Sales happen only during the regular or extended session, never on a stale price, and are capped per hour and per transaction by measured market depth. The fyUSD received is redeposited into the pool.
The buyers are arbitrage desks and borrowers rebuying their exposure. The proceeds are supply-neutral: no selling pressure lands on the token itself.
Rules R-9.3.1, R-9.5.3, R-9.5.4
Guarantees you can rely on
Guarantee
Withdrawing from the Stability Pool is never pausable, by any state or any key. The only revert is if you try it in the same block as a liquidation offset.
Rules R-1.2.2, R-9.2.4
Guarantee
sfyUSD charges 0% management and 0% performance fees, has no lock and no cooldown, and its
redeem cannot be blocked — including by the Closer.
Rules R-9.5.1, R-4.4.1
Read Withdraw for what you get back and in what form, and What you can receive for the collateral side.
Last reviewed: 2026-09-07 · Spec v0.4
Redemption — what it means for you
Anyone can exchange fyUSD for collateral at oracle price. What that does to a borrower, why it is not a loss, and how to move out of the queue.
Withdraw
Getting out of the Stability Pool or out of sfyUSD — in fyUSD, in USDG, or in kind. What is never blocked, and the one case where you receive stock tokens.