Stability Pool
The Stability Pool is the first line of defense against undercollateralized debt. You deposit RD, the protocol uses it to absorb liquidations, and you receive collateral (usually at a discount to oracle price) plus FEE emissions in return.
One Stability Pool per branch. The WETH branch has its own pool, the wstETH branch has its own pool, etc. You choose which to deposit into.
The deal
- You deposit RD.
- The pool sits there until a trove on that branch goes under MCR.
- When a liquidation hits the pool, the pool burns RD equal to the undercollateralized debt and receives the trove's collateral. Your deposit shrinks by your pro-rata share of the burned RD; your accumulated collateral gain grows by your pro-rata share of the seized collateral.
- The protocol seizes collateral at a discount to oracle price (typically the trove's ICR vs MCR gap), which is the depositor's economic upside.
- You also accrue FEE emissions continuously, tracked by the
SpIssuancecurve.
In a normal market, the discounted collateral plus FEE rewards more than compensate for the burned RD. In an extreme price drop where troves fall well below MCR before being liquidated, gains can be smaller and occasionally negative.
What you should know before depositing
- You can't choose which liquidation hits you. Every liquidation in your branch hits the pool pro-rata.
- Your balance changes silently. RD goes down, collateral gain goes up. No tx required.
- Your collateral gain is in the branch's collateral token. Deposits to the WETH pool give you WETH gains; deposits to the wstETH pool give you wstETH gains.
- You can't lose more than your deposit. The worst case is your entire deposit getting burned and the matching collateral gain being smaller than your initial RD (in nominal terms).
How to deposit
StabilityPool.provideToSP(
uint256 _amount,
address _frontEndTag // address(0) for no tag
)
_amount, RD to deposit. You must hold and have approved the pool._frontEndTag, the address of a registered front end through which you're depositing. The front end's kickback rate determines how much of your FEE rewards you keep vs. it gets. Passaddress(0)for a direct deposit (you keep 100% of FEE rewards).
You can't change your tag later, switching tags means withdrawing and redepositing.
How to withdraw
StabilityPool.withdrawFromSP(uint256 _amount)
This:
- Pays out your accumulated collateral gain (transfers branch collateral to you).
- Pays out your accumulated FEE reward.
- Withdraws
_amountof remaining RD to your wallet, reducing your deposit.
To withdraw everything: pass an _amount equal to or greater than your current deposit (the pool clamps internally). To just claim rewards without changing your deposit, pass _amount = 0.
How rewards work
Each branch's Stability Pool has its own FEE emission stream, capped at a known per-branch total (remainingStabilityPoolFEEReward). You earn FEE in proportion to:
- How much RD you have in the pool.
- How long it's been there.
- Whichever issuance curve the protocol set (
SpIssuance).
Your share is calculated whenever the pool's state is touched, so the math is exact. Front-end kickback is applied on top of your raw FEE earnings (see Front-end operators).
Moving collateral gain back into a trove
If you have an open trove on the same branch, you can route your collateral gain straight into it instead of receiving it:
BorrowerOperations.moveCollateralGainToTrove(...)
This is gas-efficient if you were going to top up your trove with the gain anyway.
When to use the Stability Pool
- You're long the collateral. Depositing on the WETH pool gives you collateral exposure to ETH at a discount on every liquidation. Net long bias.
- You believe in the branch. You're betting that liquidations on this branch will, on average, give you collateral at attractive prices.
- You want FEE exposure. SP deposits are the largest organic FEE distribution path.
If you want pure RD exposure with no liquidation risk, don't use the Stability Pool, hold RD or LP it elsewhere.
Risks
- Price collapse during a liquidation cascade. If collateral drops fast enough that troves are liquidated well below MCR, the pool's seized collateral can be worth less than the RD it burns. Liquity v1 has had this happen during black-swan events.
- Branch shutdown. If your branch is shut down, FEE emissions for that pool stop accruing. Existing deposits and gains are still claimable. See Shutdown machinery.
- Collateral with weird semantics. Some collateral tokens have rebase or blacklist behavior that can interfere with SP accounting. See Risks.
Deep dive
- Front-end operators: how kickback works.
- Liquidation paths: exactly what happens when a liquidation hits the pool.
- Borrower view: same event, other side.