Shutdown redemption
When a branch is shut down, redemption against that branch switches to a different pricing schedule designed to clear the branch's debt quickly. Other branches keep operating on normal-mode redemption.
When this is relevant
You'll see shutdown-mode redemption if:
- A specific branch was shut down (its
BorrowerOperations.shutdown()was triggered because TCR fell below SCR, orshutdownFromOracleFailure()was triggered because the price feed failed). - The whole system is shut down (every branch in shutdown state).
In both cases you can still redeem on that branch, it's the primary path by which the protocol returns collateral to RD holders as the branch winds down. New borrows on a shut-down branch are blocked.
What changes vs. normal redemption
Three things:
- Pricing. Normal mode uses the oracle price minus the redemption fee. Shutdown mode applies a discount multiplier to the oracle price (effectively a haircut on the collateral you receive per RD). The discount is what compensates redeemers for the extra risk of redeeming on a stressed branch.
- Both books are reachable. Normal-mode redemption walks the unshielded list and only touches the shielded list as a last resort. Shutdown-mode redemption can walk both directly, on the same pricing curve.
- Bootstrap period doesn't apply. Shutdown can happen after bootstrap, and shutdown-mode redemption is always available.
The discount schedule
The exact discount you get depends on why the branch was shut down and how long ago:
| Trigger | Initial discount | Max discount | Decay window |
|---|---|---|---|
| TCR fell below SCR | BASE_DISCOUNT = 2% | MAX_DISCOUNT_TCR_BELOW_SCR = 4% | MAX_DISCOUNT_TIME_SCR = 1 day |
| Oracle failure | BASE_DISCOUNT = 2% | MAX_DISCOUNT_ORACLE_FAILURE ≈ 99.9999% | MAX_DISCOUNT_TIME_FAILURE = 14 days |
The discount increases linearly from the base value to the max value across the decay window. So:
- A TCR-below-SCR shutdown clears quickly: 2% off on day zero, 4% off after one day, then capped.
- An oracle-failure shutdown is much more permissive: discount climbs from 2% toward 99.9999% over two weeks. The reason is that the branch has no reliable price, so the protocol cannot guarantee collateral fairness, it instead lets redeemers accept ever-larger discounts to clear the position.
In a worst-case oracle-failure scenario you may end up redeeming RD for collateral worth, say, 50% of par. That's painful, but it's the path that gets RD holders out of a branch the protocol can no longer price.
What you do
You call the same Aggregator.redeemCollateral entry point. The Aggregator excludes shut-down branches from the basket weights for normal-mode redemption, so a normal redemption call doesn't accidentally hit a shut-down branch.
To redeem from a shut-down branch, you call that branch's Redemptions contract directly, or the front end will route you through the appropriate path. The shutdown redemption uses the same hint surface as the normal one.
Should you wait or redeem now?
For TCR-below-SCR shutdowns: redeeming after the one-day decay completes gets you the maximum 4% discount. There's little reason to wait beyond that. The branch is clearing; getting out promptly is usually correct.
For oracle-failure shutdowns: this is a judgment call. Waiting longer gets you a bigger discount in your favor if you redeem first, but the branch may run out of redeemable collateral before you get there. The longer you wait, the worse the redeemer queue gets.
What if the discount eats too much?
Shutdown-mode pricing can produce a redeemer payout smaller than the RD you redeem. The redemption walk has a guard (fee < ETH drawn) that aborts if the fee would consume the entire collateral leg, but the discount is intentional and not capped that way.
The protocol's contract is: in shutdown, the branch will pay out whatever it can to clear debt, on this pricing schedule. If that's an unfavorable trade for you, don't redeem on that branch, sell RD elsewhere or wait. Other branches may still be operating normally.
Deep dive
Shutdown machinery covers the full trigger surface, the cross-branch effects, and how the Aggregator excludes shut-down branches from issuance quotas, drips, and basket weights.