# Redemption & Risk

### Introduction

csUSDL is designed to offer reliable liquidity and price stability without compromising on yield.

***

### Redemption Mechanics

Redemptions are permissionless and instant — as long as there is sufficient liquidity in the csUSDL vault.

* Users call `redeem()` on the ERC-4626 vault.
* If the vault holds enough idle wUSDL, it is returned instantly.
* If not, the transaction reverts.&#x20;

Redemptions follow a first-come, first-served model. Liquidity is returned in wUSDL, which can be unwrapped to USDL and swapped to USDC.

***

### Liquidity Conditions

When the vault is fully utilized (i.e. all wUSDL is lent out on Morpho), redemption requests will revert due to insufficient available liquidity.

In such cases, users have the following options:

* Swap csUSDL on Curve or CowSwap for immediate liquidity
* Monitor utilization and redeem once liquidity is available again

csUSDL relies on Morpho’s market-level withdrawal mechanics. As demand to exit grows, Morpho increases borrow rates, which incentivizes loan repayment and new capital inflows.

If additional liquidity is still not restored, collateral posted by borrowers (e.g. wstETH or cbETH) can be liquidated to repay the vault and enable further redemptions.

***

### Oracle Design & Price Behavior

The csUSDL price is calculated entirely onchain via two ERC-4626 `convertToAssets()` functions:

1. `csUSDL → wUSDL`: from the Coinshift vault contract
2. `wUSDL → USDL`: via Steakhouse’s ERC4626 feed oracle, reviewed by Morpho and audited by Spearbit
3. `USDL → $1.00`: hardcoded to $1.00 in Curve, Chainlink, and internal oracles, based on Paxos’s fully collateralized peg

Example:\
`1.00 csUSDL = 1.01 wUSDL = 1.02 USDL = $1.02`

Because both csUSDL and wUSDL are accrual tokens, and USDL is pegged to $1.00, the price of csUSDL only increases over time.

***

### Depeg Risk

csUSDL is structurally resistant to depegging due to:

* **Fully collateralized design:**\
  USDL is backed 1:1 by T-Bills and cash, held in regulated custody by Paxos (FSRA-regulated in Abu Dhabi).
* **Hardcoded price feeds:**\
  USDL is treated as $1.00 in the system — enforced via oracle logic, and externally redeemable through Paxos (with KYB).
* **Redemption off-ramps:**
  * Curve pool for USDL/USDC (\~$20M depth) allows \~$2M clips at low slippage (\~3bps)
  * Paxos Dashboard offers 1:1 USDL-to-USDC redemption with an 8bps fee (KYB required)

***

### Bank Run Scenario

If many users redeem csUSDL at once:

1. The vault’s idle wUSDL is drained.
2. Redemption calls start reverting.
3. Borrow rates on Morpho spike, incentivizing repayment or new deposits.
4. If liquidity remains insufficient, Morpho may liquidate borrower collateral to repay wUSDL to the vault.

This dynamic ensures the system self-corrects over time — while protecting remaining lenders and maintaining solvency.

***

### Summary

| Mechanism        | Behavior                                                 |
| ---------------- | -------------------------------------------------------- |
| Redemption       | Instant if liquidity exists, reverts if not              |
| Liquidity Model  | First-come, first-served; market-level rebalancing       |
| Oracle Path      | csUSDL → wUSDL → USDL → $1.00, all onchain               |
| Depeg Protection | Paxos 1:1 backing, Curve liquidity, hardcoded USDL price |
| Risk Mitigation  | Rate hikes, collateral liquidation, multiple exit paths  |

***

### Next Up

* Yield Mechanics
* Minting Guide


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.coinshift.xyz/comms/redemption-and-risk.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
