crvUSD
An automated structural risk report on crvUSD: every number below is read from Ethereum at block 26143168 and can be reproduced (see the verify page).
The finding ?The three figures that summarise this report, read at block 26143168; the written summary arrives with the prose stage.
Notice: gate failure (entry crvUSD:17, first fired 2026-09-30)
No written summary for this section this run: the local model's draft did not pass the figure guard.
Where the backing sits ?The collateral behind crvUSD, across the crvUSD mint markets in scope, split by how far its value can be checked on-chain, at block 26143168.
The DAO can change minting and oracle settings with a 1 to 7 day delay.
No written summary for this section this run: the local model's draft did not pass the figure guard.
What could break it ?The headline stress scenario and the grid around it: collateral price falls of 20–70% with liquidity-provider flight of 0–60%, across the crvUSD mint markets in scope, at block 26143168.
The headline scenario is a 50% fall in the price of volatile collateral, with no extra discount on liquid-staking tokens and liquidity providers staying put: the one scenario the archetype memo names as the headline (memo §6.2.6).
In that scenario liquidations leave $6 of bad debt (< 0.01% of supply), structurally zero on this grid because soft liquidation converts collateral at band prices before positions become insolvent, and require selling $6 into $25.7M of exit liquidity.
| price fall | no LP flight | 30% LP flight | 60% LP flight |
|---|---|---|---|
| -20.0% | < 0.1% | < 0.1% | exit exhausted |
| -35.0% | < 0.1% | < 0.1% | exit exhausted |
| -50.0% | < 0.1% | < 0.1% | exit exhausted |
| -70.0% | < 0.1% | < 0.1% | exit exhausted |
Each cell: collateral that must be sold ÷ liquidity available to absorb it; “exit exhausted” = no liquidity left at that level of liquidity-provider flight. ?Each cell divides the collateral liquidations must sell by the exit liquidity left in that scenario, across the crvUSD mint markets in scope, at block 26143168; above 100% the sales cannot all be absorbed.
0 under 0.1% under 10% under 100% 100% or more exit exhausted
At a 50% fall, forced sales use < 0.01% of available exit liquidity; at a 70% fall, forced sales use < 0.01% of available exit liquidity; and if 60% of liquidity providers leave at a 70% fall, no exit liquidity is left.
Prices follow exponential moving averages of pool prices, so they lag the market by design; the window per market is in the oracle table.
Who can change the rules ?Who holds each administrative power over the protocol's contracts and how long a change takes to take effect, read at block 26143168.
- Minting: the DAO, with a 1 to 7 day delay.
- Debt ceilings: the DAO, with a 1 to 7 day delay; a veto holder can cancel the change.
- Contract upgrades: no one holds this power.
- Pausing: the DAO, with no delay.
- Freezing assets: no one holds this power.
- Blacklisting addresses: no one holds this power.
- Oracle settings: the DAO, with a 1 to 7 day delay; a veto holder can cancel the change.
- Risk parameters: the DAO, with a 1 to 7 day delay; a veto holder can cancel the change.
- Seizing assets: no one holds this power.
How it trades ?Webacy's view of how this token trades, fetched at the time shown under the chart; not read at this report's block and not verified by this pipeline.
DEX pools, top 10 by liquidity
| # | DEX | pair | liquidity | 24h volume | pool |
|---|---|---|---|---|---|
| 1 | Curve | crvUSD/USDT | $41.2M | $1.2M | 0x390f…7bf4 |
| 2 | Curve | crvUSD/WETH | $31.4M | $983.6k | 0x6563…b9f3 |
| 3 | Curve | crvUSD/cbBTC | $21.5M | $23 | 0x83f2…eb32 |
| 4 | Curve | frxUSD/crvUSD | $17.1M | $164.4k | 0x13e1…43e1 |
| 5 | Curve | crvUSD/USDC | $13.3M | $747.6k | 0x4dec…d69e |
| 6 | Curve | crvUSD/WBTC | $6.3M | $3.4k | 0xd9ff…8373 |
| 7 | Curve | crvUSD/tBTC/wstETH | $3.1M | $62.6k | 0x2889…3d13 |
| 8 | Curve | tBTC/crvUSD | $3.1M | $13.7k | 0x2889…3a88 |
| 9 | Curve | CRV/crvUSD | $1.8M | $453.9k | 0x4ebd…cd52 |
| 10 | Curve | crvUSD/WETH | $1.8M | $90.9k | 0x4ebd…6cc2 |
How to check this ?Every figure is pinned to block 26143168; the verify page lists the calls that reproduce them.
Every figure on this page comes from one data table built from on-chain reads at a single block. Reproduce any of them from the verify page. Verify page · report fingerprint 07f460c0eb45a1ca
The behavioral tier — how the token trades: peg deviation, liquidity, holder concentration and supply flows — is shown under "How it trades", from Webacy's data fetched at a timestamp rather than read at this report's block. This report is the structural tier only: what backs the token, how far that backing can be checked on-chain, and how it holds up under stress.
Detail for specialists
Collateral nodes whose backing depends on disclosures or stops at a truncation
| disclosure-dependent node | last disclosure | days old | share of backing |
|---|---|---|---|
| WBTC | 2026-10-07 | 0 | 30.5% |
| cbBTC | 2026-10-07 | 0 | 12.8% |
| LBTC | 2026-10-07 | 0 | < 0.1% |
Supply, what was originated, and the residual with its named causes
| figure | value |
|---|---|
| supply | 2,104,809,204.98 |
| originated supply | 95,408,964.65 |
| supply the tree covers | 95,408,964.65 |
| residual (supply − originated) | 2,009,400,240.33 |
| · non-mint-market minting facilitators enumerated from `SetDebtCeiling` history — the lend factories (zero ceilings, confirmed non-originating), the FlashLender, the FastBridgeVaults, and an unclassified minting factory (`0x370a449f…`, verified name Factory) pending perimeter re-ruling; amount = held + deployed (ceiling − held, floor 0) (17) | 1,060,650,000.01 |
| · mint-controller pre-mint inventory (9) | 645,331,592.19 |
| · PegKeeper undrawn inventory (5) | 303,418,648.14 |
| unexplained after named causes | -0.0092 |
| stabilizer debt ÷ supply | 1.0% |
| protocol stabilizer debt | 20,581,351.86 (1.0% of supply) |
| ceiling aggregate: the upper bound of the protocol stabilizer slice | 324,000,000.00 (15.4% of supply) |
| stabilizer operation | ceiling | utilization | net position value |
|---|---|---|---|
0x9201da…e340 | 135,000,000.00 | 0 | 0 |
0xfb726f…f9f3 | 135,000,000.00 | 15.2% | 10,035,540.33 |
0x3fa20e…e09c | 45,000,000.00 | 0 | 0 |
0x338cb2…1f9d | 9,000,000.00 | 0 | 0 |
0x53876b…c50b | 0 | — | 0 |
non-mint-market minting facilitators enumerated from `SetDebtCeiling` history — the lend factories (zero ceilings, confirmed non-originating), the FlashLender, the FastBridgeVaults, and an unclassified minting factory (`0x370a449f…`, verified name Factory) pending perimeter re-ruling; amount = held + deployed (ceiling − held, floor 0)
| address | amount |
|---|---|
0x0a05ff…97d3 | 0 |
0x0b502e…c820 | 0 |
0x1ef89e…ccae | 0 |
0x26de78…9ee1 | 30,000,000.01 |
0x370a44…00c0 | 1,000,000,000.00 |
0x503e1b…91f8 | 0 |
0x5b49b9…a4c6 | 0 |
0x5ef620…b9ec | 150,000.00 |
0x68e31e…21ca | 0 |
0x6b765d…c345 | 0 |
0x97d024…e937 | 200,000.00 |
0xa7a4bb…299b | 0 |
0xaa3467…ae22 | 0 |
0xadb10d…843d | 300,000.00 |
0xd99391…afff | 30,000,000.00 |
0xe7cd2b…c5c8 | 0 |
0xff7846…92bf | 0 |
mint-controller pre-mint inventory
| address | amount |
|---|---|
0x100daa…c6ce | 120,081,161.68 |
0x1c91da…e704 | 44,018,932.71 |
0x4e5954…5c67 | 180,174,563.33 |
0x652aea…6b11 | 16,774,129.56 |
0x8472a9…8e76 | 4,917.12 |
0x8aca5a…58ef | 0 |
0xa920de…9635 | 197,371,654.47 |
0xec0820…15cf | 48,058,012.17 |
0xf8c786…cbe3 | 38,848,221.16 |
PegKeeper undrawn inventory
| address | amount |
|---|---|
0x338cb2…1f9d | 9,000,000.00 |
0x3fa20e…e09c | 45,000,000.00 |
0x53876b…c50b | 0 |
0x9201da…e340 | 135,000,000.00 |
0xfb726f…f9f3 | 114,418,648.14 |
Every figure in the headline scenario
| metric | value |
|---|---|
| collateral coverage before the shock | 1.0376 |
| collateral coverage after the shock | 1.2271 |
| coverage restored by the liquidation mechanism | 0.1895 |
| bad debt | 6.28 |
| bad debt as a share of supply | < 0.1% |
| collateral that must be sold | 6.28 |
| exit liquidity | 25,651,705.25 |
| forced sales ÷ exit liquidity | < 0.1% |
Mechanism state in the headline scenario
| quantity | value |
|---|---|
| alpha | 0.5000 |
| beta | 0.2500 |
| burn capacity | 20,581,351.86 |
| ceiling aggregate | 324,000,000.00 |
| the counterfactual lines printed with this scenario | H1_kill, EMA_lag |
| PegKeeper headroom that can actually be used | 80,668,475.92 |
| exit liquidity in this scenario | 25,651,705.25 |
| share of liquidity providers leaving in this scenario | 0 |
| PegKeeper headroom by debt ceilings alone | 303,418,648.14 |
| stabilizer debt post cell | 20,581,351.86 |
| utilization post cell | 0.0635 |
PegKeepers
| address | allowed | balance | ceiling | debt | killed (provide) | killed (withdraw) | max ratio | debt share |
|---|---|---|---|---|---|---|---|---|
0x338cb2…1f9d | 3,214,277.51 | 9,000,000.00 | 9,000,000.00 | 0 | no | no | 0.3571 | 0 |
0x3fa20e…e09c | 16,071,387.57 | 45,000,000.00 | 45,000,000.00 | 0 | no | no | 0.3571 | 0 |
0x53876b…c50b | 0 | 0 | 0 | 0 | no | no | 0.3571 | 0 |
0x9201da…e340 | 48,214,162.70 | 135,000,000.00 | 135,000,000.00 | 0 | no | no | 0.3571 | 0 |
0xfb726f…f9f3 | 13,168,648.14 | 114,418,648.14 | 135,000,000.00 | 20,581,351.86 | no | no | 0.2500 | 0.1525 |
Oracle vs pool spot price, per market
| address | oracle spot gap |
|---|---|
0x100daa…c6ce | 0.0415 |
0x1c91da…e704 | 0.2351 |
0x4e5954…5c67 | -0.0570 |
0x652aea…6b11 | 0.6693 |
0x8472a9…8e76 | 1.6904 |
0x8aca5a…58ef | 0.2402 |
0xa920de…9635 | -0.0149 |
0xec0820…15cf | 0.3740 |
0xf8c786…cbe3 | -0.0336 |
Paired stablecoin held by each PegKeeper
| address | paired units held |
|---|---|
0x338cb2…1f9d | 0 |
0x3fa20e…e09c | 0 |
0x53876b…c50b | 0 |
0x9201da…e340 | 0 |
0xfb726f…f9f3 | 20,030,957.35 |
PegKeeper share of its pool
| address | pegkeeper lp share |
|---|---|
0x338cb2…1f9d | 0 |
0x3fa20e…e09c | 0 |
0x53876b…c50b | 0 |
0x9201da…e340 | 0 |
0xfb726f…f9f3 | 0.6031 |
Pool balance after the shock
| field | pool tilt post cell |
|---|---|
reason | not applicable — M1 |
value | 0 |
PegKeeper provide limit
| address | provide allowed |
|---|---|
0x338cb2…1f9d | 0 |
0x3fa20e…e09c | 0 |
0x53876b…c50b | 0 |
0x9201da…e340 | 0 |
0xfb726f…f9f3 | 0 |
PegKeeper withdraw limit
| address | withdraw allowed |
|---|---|
0x338cb2…1f9d | 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457.58 |
0x3fa20e…e09c | 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457.58 |
0x53876b…c50b | 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457.58 |
0x9201da…e340 | 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457.58 |
0xfb726f…f9f3 | 115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457.58 |
What changes under the counterfactual assumptions
| counterfactual | affects | as modelled | under the counterfactual |
|---|---|---|---|
| H1 kill | m2 | 6.28 | 6.28 |
| EMA lag | m1.post | 0 | 29,276,363.80 |
No written summary for this section this run: the local model's draft did not pass the figure guard.
Exit liquidity at four price-impact levels
No written summary for this section this run: the local model's draft did not pass the figure guard.
A depeg of the paired stablecoin fits this token's mechanism because it is structurally insulated by construction, meaning its internal collateral ratio does not change during a shock. Instead, any impact flows through exit venues where liquidity providers may withdraw their assets. The recomputed exit-liquidity curves show that at a price impact of 5.0%, the available depth is $23.7M when the paired stablecoin trades at 0.93.
The system also holds $20.6M in burn capacity and maintains $80.7M of effective PegKeeper headroom that can actually be used to manage stress. These resources remain available even as the paired asset moves toward its depeg target of 0xdac17f…1ec7.
Liquidity providers staying put contribute to the depth curve, but their flight levels determine how quickly usable liquidity shrinks under pressure.
The modelling assumptions and the data behind each
| assumption | what it means | data | source |
|---|---|---|---|
stock_only |
Capacity is measured as a stock at the run block; how each mechanism's stock-only reading errs is the bias table below. | bias: Collateral-sell-side bound: see appendix bias mechanism: see appendix bias tokens: crvUSD, GHO bias reason: see appendix … 32 more in table.json |
memo §7.1 |
observation |
Prices are taken as observed instantly at the run block; the oracle table lists each feed's update condition. | EMA window: 10,387 s EMA window: 2,597 s EMA window: 866 s EMA window: 866 s … 5 more in table.json |
memo §7.2 |
lp_sticky |
Liquidity providers are assumed to stay in their pools unless a scenario applies the liquidity-flight modifier. | LP-flight assumption line: see appendix | memo §6.1.4 |
lp_grid |
Liquidity-provider flight is an assumed modifier of 0%, 30% and 60%, not a measured behaviour. | LP-flight assumption line: see appendix | memo §6.1.4 |
sell_side_bound |
Collateral that liquidations must sell is bounded by the analyst's dated sell-side capacity per volatile collateral. | sell-side bound: sfrxETH: 10.25 sell-side bound: wstETH: 609.38 sell-side bound: WBTC: 131.25 sell-side bound: WETH: 13,750.00 … 4 more in table.json |
memo §6.3 |
par_numeraire |
paired assets counted at 1.00 for depth | — | memo §6.1.3 |
shock_grid_fixed |
The shock grid is fixed by the archetype memo, not tuned per token. | — | memo §6.2.1 |
lst_discount_grid |
Liquid-staking tokens take an additional discount of 0%, 5% or 10%. | — | memo §6.2.2 |
member2_target |
The depeg scenario targets the paired stablecoin named in the frozen pool set. | Member-2 target: 0xdac17f…1ec7 | memo §6.2.5 |
freeze_reference |
Exit venues are the pool set frozen on the freeze date shown. | freeze date: 2026-09-04 | memo §5.7 |
band_linear |
An additional modelling disclosure carried by the stress model; its full text is in the appendix. | assumption: band linear: see appendix | — |
capacity |
An additional modelling disclosure carried by the stress model; its full text is in the appendix. | assumption: capacity: see appendix | — |
ema_lag_readings |
The oracle's smoothed price lags the market; this line recomputes collateral coverage after the shock as if that lagged price were the one in use, beside the primary result. | assumption: ema lag readings: see appendix | — |
lp_flight |
Liquidity providers' capital is assumed to stay in the exit pools in the headline cell; other cells of the grid show what happens when part of the paired asset is withdrawn. | assumption: lp flight: see appendix | — |
structural_insulation |
A depeg of the paired stablecoin forces no collateral sales for this token by construction, so the ratio is zero; the exposure runs through exit venues and is shown as recomputed depth curves. | assumption: structural insulation: see appendix | — |
undefined_ratio |
Where the exit pool holds no depth at all, the forced-sales ratio has no value and the cell is marked rather than computed. | assumption: undefined ratio: see appendix | — |
How a stock-only reading errs, mechanism by mechanism
stock-only capacity — direction of error per mechanism
| mechanism | tokens | direction | reason |
|---|---|---|---|
| Collateral-sell-side bound | crvUSD, GHO | overstates | full bound treated as immediately absorbable |
| GSM cap headroom (H2.i) | GHO | overstates | full cap headroom treated as instantly mintable |
| Liquidator recycling (H5) | GHO | understates | no multi-round capital recycling |
| Stability Pool refills (H3) | LUSD | understates | no SP deposits between liquidation waves |
| PegKeeper effective headroom (H1) | crvUSD | overstates | full effective headroom treated as deployed within the window; peer co-deployment dynamics omitted — runs conservative |
| H4 redemption capacity | LUSD | overstates | full schedule capacity treated as immediately available; base-rate decay (regenerative, 12h half-life) omitted — runs conservative |
| H5 liquidator appetite (composite) | GHO | both | two named opposite-sign terms; `binding_side` states per cell which dominates |
| Pool exit depth — no LP inflow | all | understates | no LP inflow modeled |
| Pool exit depth — LP sticky at flight-0 | all | overstates | static composition; spread disclosed by the LP-flight grid |
The admin-power table, row by row
The DAO holds the power to mint new tokens, adjust debt ceilings, and change oracle settings. Each of these changes takes between one and seven days to apply, and the emergency admin address can veto them.
No one holds the power to upgrade the contract, freeze assets, blacklist addresses, or seize funds. The contract is immutable by design, meaning its core rules cannot be altered once deployed.
| power | holder | type | delay | veto | upgradeable | scope | evidence |
|---|---|---|---|---|---|---|---|
| minting | 0xb7400d…fb79 | the DAO | 1–7 days | — | — | 0xc9332f…38bc 0x36a04c…855f |
contract read: admin() |
| debt ceilings | 0xb7400d…fb79 | the DAO | 1–7 days | 0x467947…1e0c | — | 0xc9332f…38bc 0x36a04c…855f |
contract read: admin() |
| contract upgrades | — | none | none | — | immutable | absence read | |
| pausing | 0x467947…1e0c | the DAO | none | — | — | 0x36a04c…855f |
contract read: emergency_admin() |
| freezing assets | — | none | none | — | — | absence read | |
| blacklisting addresses | — | none | none | — | — | absence read | |
| oracle settings | 0xb7400d…fb79 | the DAO | 1–7 days | 0x467947…1e0c | — | 0xc9332f…38bc 0x36a04c…855f |
contract read: admin() |
| risk parameters | 0xb7400d…fb79 | the DAO | 1–7 days | 0x467947…1e0c | — | 0xc9332f…38bc 0x36a04c…855f |
contract read: admin() |
| seizing assets | — | none | none | — | — | absence read |
Price feeds: type, update threshold and heartbeat
| collateral | market or reserve | update rule | threshold | window / heartbeat | staleness |
|---|---|---|---|---|---|
| sfrxETH | 0x8472a9…8e76 | ema window | — | 10,387 s | not assessed in this pilot |
| wstETH | 0x100daa…c6ce | ema window | — | 2,597 s | not assessed in this pilot |
| WBTC | 0x4e5954…5c67 | ema window | — | 866 s | not assessed in this pilot |
| WETH | 0xa920de…9635 | ema window | — | 866 s | not assessed in this pilot |
| sfrxETH | 0xec0820…15cf | ema window | — | 2,597 s | not assessed in this pilot |
| tBTC | 0x1c91da…e704 | ema window | — | 601 s | not assessed in this pilot |
| weETH | 0x652aea…6b11 | ema window | — | 866 s | not assessed in this pilot |
| cbBTC | 0xf8c786…cbe3 | ema window | — | 866 s | not assessed in this pilot |
| LBTC | 0x8aca5a…58ef | ema window | — | 866 s | not assessed in this pilot |
No notices are open for this token this run.
Audits, bug bounty and counterparties
- MixBytes 2023-06-05: crvUSD infrastructure
- ChainSecurity 2024-01-24: crvUSD infrastructure
- ChainSecurity 2025-02-21: crvUSD infrastructure
- ChainSecurity 2023-12-12: PegKeeperV2
- ChainSecurity 2024-10-25: FastBridge (cross-chain crvUSD)
- MixBytes 2024-09-02: LlamaLend