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).

read 2026-10-07 21:22 UTC · block 26143168 · report 07f460c0 · intake sheet 29682310
Disclosures 0 days old on average · worst WBTC, 0 days old, 30.5% of backingRule changes: 1 to 7 day delay1 notice(s): gate failure

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.

Supply ?Every crvUSD in existence at block 26143168: total supply plus any supply bridged by burning on another chain.
$2.1B
Bad debt, headline scenario ?Shortfall left after liquidations in the headline scenario (−50% collateral crash, no LP flight), across the crvUSD mint markets in scope, at block 26143168.
$6
structurally zero
Exit liquidity, headline scenario ?crvUSD that could be sold into the frozen set of exit pools before its price falls 2%, in the headline scenario, at block 26143168.
$25.7M

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.

verifiability treeSupply $2.1Boriginated $95.4M · residual $2.0B — 3 named causesCheckable on-chain — 3.7%WETH3.7%Checkable one layer down — 53.0%wstETH38.9%tBTC7.3%weETH3.7%sfrxETH3.2%Depends on disclosures — 43.3%WBTC30.5%same daycbBTC12.8%same dayLBTC< 0.1%same dayWhere the backing sits and how far it can be checked on-chain; shares are of the value of all backing collateral.

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 fallno LP flight30% LP flight60% 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.

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.

Peg price ?Webacy's latest price for the token, against its $1 peg.
0.9989
Deviation from peg ?How far that price sits from the peg, in basis points (100 bp = 1%).
−11.4 bp
Webacy depeg score ?Webacy's 0–100 depeg risk score; higher is riskier. Its tiers: ok 0–24, watch 25–49, warning 50–69, critical 70–100.
1 of 100
tier ok
DEX liquidity ?Liquidity Webacy counts for the token across decentralised-exchange pools, with its depth tier.
$150.3M
depth deep
Supply change, 7 days ?Net tokens minted less burned over seven days, per Webacy; the % is of Webacy's circulating supply 7 days earlier ($243.4M).
−$1.6M
−0.7%
Top-10 holder share ?Share of supply held by the ten largest organic holders, with exchanges, bridges, pools and protocol contracts excluded, with Webacy's risk band.
0.0%
risk band low
Peg deviation over seven days, in basis points+0.8 bp0−33.8 bp10-11 12:3810-18 12:18
7-day max |deviation|: 33.8 bp
Liquidity by Ethereum DEX poolcrvUSD/USDT$41.2M · 29.3%crvUSD/WETH 0x6563…b9f3$31.4M · 22.4%crvUSD/cbBTC$21.5M · 15.3%frxUSD/crvUSD$17.1M · 12.1%crvUSD/USDC$13.3M · 9.5%other listed pools$16.1M · 11.4%
Share of liquidity among the 10 Ethereum pools Webacy lists, $140.5M
Net supply change by window−$1.6M7 days+$9.6M30 days+$18.6M90 days
Net supply change, per Webacy

Share of supply by holder group: not reported by Webacy this run.

DEX pools, top 10 by liquidity
#DEXpairliquidity24h volumepool
1CurvecrvUSD/USDT$41.2M$1.2M0x390f…7bf4
2CurvecrvUSD/WETH$31.4M$983.6k0x6563…b9f3
3CurvecrvUSD/cbBTC$21.5M$230x83f2…eb32
4CurvefrxUSD/crvUSD$17.1M$164.4k0x13e1…43e1
5CurvecrvUSD/USDC$13.3M$747.6k0x4dec…d69e
6CurvecrvUSD/WBTC$6.3M$3.4k0xd9ff…8373
7CurvecrvUSD/tBTC/wstETH$3.1M$62.6k0x2889…3d13
8CurvetBTC/crvUSD$3.1M$13.7k0x2889…3a88
9CurveCRV/crvUSD$1.8M$453.9k0x4ebd…cd52
10CurvecrvUSD/WETH$1.8M$90.9k0x4ebd…6cc2

Behavioral data: Webacy, fetched 2026-10-18 12:36 UTC. Fetched, not computed or verified by this pipeline.

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 nodelast disclosuredays oldshare of backing
WBTC2026-10-07030.5%
cbBTC2026-10-07012.8%
LBTC2026-10-070< 0.1%
Supply, what was originated, and the residual with its named causes
figurevalue
supply2,104,809,204.98
originated supply95,408,964.65
supply the tree covers95,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 ÷ supply1.0%
protocol stabilizer debt20,581,351.86 (1.0% of supply)
ceiling aggregate: the upper bound of the protocol stabilizer slice324,000,000.00 (15.4% of supply)
stabilizer operationceilingutilizationnet position value
0x9201da…e340135,000,000.0000
0xfb726f…f9f3135,000,000.0015.2%10,035,540.33
0x3fa20e…e09c45,000,000.0000
0x338cb2…1f9d9,000,000.0000
0x53876b…c50b0—0

Net position of each stabilizer operation: pro-cyclical, non-credited; valued at par.

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)
addressamount
0x0a05ff…97d30
0x0b502e…c8200
0x1ef89e…ccae0
0x26de78…9ee130,000,000.01
0x370a44…00c01,000,000,000.00
0x503e1b…91f80
0x5b49b9…a4c60
0x5ef620…b9ec150,000.00
0x68e31e…21ca0
0x6b765d…c3450
0x97d024…e937200,000.00
0xa7a4bb…299b0
0xaa3467…ae220
0xadb10d…843d300,000.00
0xd99391…afff30,000,000.00
0xe7cd2b…c5c80
0xff7846…92bf0
mint-controller pre-mint inventory
addressamount
0x100daa…c6ce120,081,161.68
0x1c91da…e70444,018,932.71
0x4e5954…5c67180,174,563.33
0x652aea…6b1116,774,129.56
0x8472a9…8e764,917.12
0x8aca5a…58ef0
0xa920de…9635197,371,654.47
0xec0820…15cf48,058,012.17
0xf8c786…cbe338,848,221.16
PegKeeper undrawn inventory
addressamount
0x338cb2…1f9d9,000,000.00
0x3fa20e…e09c45,000,000.00
0x53876b…c50b0
0x9201da…e340135,000,000.00
0xfb726f…f9f3114,418,648.14
Every figure in the headline scenario
metricvalue
collateral coverage before the shock1.0376
collateral coverage after the shock1.2271
coverage restored by the liquidation mechanism0.1895
bad debt6.28
bad debt as a share of supply< 0.1%
collateral that must be sold6.28
exit liquidity25,651,705.25
forced sales ÷ exit liquidity< 0.1%

Mechanism state in the headline scenario

quantityvalue
alpha0.5000
beta0.2500
burn capacity20,581,351.86
ceiling aggregate324,000,000.00
the counterfactual lines printed with this scenarioH1_kill, EMA_lag
PegKeeper headroom that can actually be used80,668,475.92
exit liquidity in this scenario25,651,705.25
share of liquidity providers leaving in this scenario0
PegKeeper headroom by debt ceilings alone303,418,648.14
stabilizer debt post cell20,581,351.86
utilization post cell0.0635

PegKeepers

addressallowedbalanceceilingdebtkilled (provide)killed (withdraw)max ratiodebt share
0x338cb2…1f9d3,214,277.519,000,000.009,000,000.000nono0.35710
0x3fa20e…e09c16,071,387.5745,000,000.0045,000,000.000nono0.35710
0x53876b…c50b0000nono0.35710
0x9201da…e34048,214,162.70135,000,000.00135,000,000.000nono0.35710
0xfb726f…f9f313,168,648.14114,418,648.14135,000,000.0020,581,351.86nono0.25000.1525

Oracle vs pool spot price, per market

addressoracle spot gap
0x100daa…c6ce0.0415
0x1c91da…e7040.2351
0x4e5954…5c67-0.0570
0x652aea…6b110.6693
0x8472a9…8e761.6904
0x8aca5a…58ef0.2402
0xa920de…9635-0.0149
0xec0820…15cf0.3740
0xf8c786…cbe3-0.0336

Paired stablecoin held by each PegKeeper

addresspaired units held
0x338cb2…1f9d0
0x3fa20e…e09c0
0x53876b…c50b0
0x9201da…e3400
0xfb726f…f9f320,030,957.35

PegKeeper share of its pool

addresspegkeeper lp share
0x338cb2…1f9d0
0x3fa20e…e09c0
0x53876b…c50b0
0x9201da…e3400
0xfb726f…f9f30.6031

Pool balance after the shock

fieldpool tilt post cell
reasonnot applicable — M1
value0

PegKeeper provide limit

addressprovide allowed
0x338cb2…1f9d0
0x3fa20e…e09c0
0x53876b…c50b0
0x9201da…e3400
0xfb726f…f9f30

PegKeeper withdraw limit

addresswithdraw allowed
0x338cb2…1f9d115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457.58
0x3fa20e…e09c115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457.58
0x53876b…c50b115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457.58
0x9201da…e340115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457.58
0xfb726f…f9f3115,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
counterfactualaffectsas modelledunder the counterfactual
H1 killm26.286.28
EMA lagm1.post029,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
Exit liquidity by how much price impact sellers acceptExit liquidity by how much price impact sellers accept$0$27.1Mexit liquidity ($)0.5%$21.9M1.0%$24.1M2.0%$25.7M5.0%$27.1Mprice impact sellers acceptpool liquidity
Exit liquidity available if sellers accept up to 0.5%, 1%, 2% or 5% price impact; the report's headline uses 2%.

Depeg scenario target: 0xdac17f…1ec7 · every scenario in the appendix

Headline exit liquidity 25,651,705.25; LP capital assumed sticky.

LP-flight grid 0% / 30% / 60%: assumed scenario modifier, not data-derived.

modeled pools: the largest pools covering 90% of the frozen set, which itself covered 95% of discovered on-Curve liquidity at freeze time (2026-09-04). K-subset share of the frozen set: 95.9%

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
assumptionwhat it meansdatasource
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

mechanismtokensdirectionreason
Collateral-sell-side boundcrvUSD, GHOoverstatesfull bound treated as immediately absorbable
GSM cap headroom (H2.i)GHOoverstatesfull cap headroom treated as instantly mintable
Liquidator recycling (H5)GHOunderstatesno multi-round capital recycling
Stability Pool refills (H3)LUSDunderstatesno SP deposits between liquidation waves
PegKeeper effective headroom (H1)crvUSDoverstatesfull effective headroom treated as deployed within the window; peer co-deployment dynamics omitted — runs conservative
H4 redemption capacityLUSDoverstatesfull schedule capacity treated as immediately available; base-rate decay (regenerative, 12h half-life) omitted — runs conservative
H5 liquidator appetite (composite)GHObothtwo named opposite-sign terms; `binding_side` states per cell which dominates
Pool exit depth — no LP inflowallunderstatesno LP inflow modeled
Pool exit depth — LP sticky at flight-0alloverstatesstatic 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.

powerholdertypedelayvetoupgradeablescopeevidence
minting0xb7400d…fb79the DAO 1–7 days—— 0xc9332f…38bc 0x36a04c…855f contract read: admin()
debt ceilings0xb7400d…fb79the DAO 1–7 days0x467947…1e0c— 0xc9332f…38bc 0x36a04c…855f contract read: admin()
contract upgrades—none none—immutable absence read
pausing0x467947…1e0cthe DAO none—— 0x36a04c…855f contract read: emergency_admin()
freezing assets—none none—— absence read
blacklisting addresses—none none—— absence read
oracle settings0xb7400d…fb79the DAO 1–7 days0x467947…1e0c— 0xc9332f…38bc 0x36a04c…855f contract read: admin()
risk parameters0xb7400d…fb79the DAO 1–7 days0x467947…1e0c— 0xc9332f…38bc 0x36a04c…855f contract read: admin()
seizing assets—none none—— absence read
Price feeds: type, update threshold and heartbeat
collateralmarket or reserveupdate rulethresholdwindow / heartbeatstaleness
sfrxETH0x8472a9…8e76ema window — 10,387 s not assessed in this pilot
wstETH0x100daa…c6ceema window — 2,597 s not assessed in this pilot
WBTC0x4e5954…5c67ema window — 866 s not assessed in this pilot
WETH0xa920de…9635ema window — 866 s not assessed in this pilot
sfrxETH0xec0820…15cfema window — 2,597 s not assessed in this pilot
tBTC0x1c91da…e704ema window — 601 s not assessed in this pilot
weETH0x652aea…6b11ema window — 866 s not assessed in this pilot
cbBTC0xf8c786…cbe3ema window — 866 s not assessed in this pilot
LBTC0x8aca5a…58efema window — 866 s not assessed in this pilot

Independent market reference prices are not available from a pinned source in this pilot (9 collaterals).

instant observation — knowingly optimistic: LLAMMA prices off an EMA oracle; see counterfactual line EMA_lag

oracle manipulation out of scope — feed control reported under the admin-power surface (the oracle settings rows of the admin-power table). oracle failure/staleness out of scope. sequencer/infra risk n/a — mainnet only.

No notices are open for this token this run.

Audits, bug bounty and counterparties

Audit list (analyst-supplied 2026-09-13)

Bug bounty: Curve (self-run, docs.curve.finance/developer/security), max USD 250,000 (analyst-supplied 2026-09-13). Last material change audited: yes (analyst-supplied 2026-09-13). Audit status as of 2026-09-13. Counterparties: n/a — archetype #1 holds no off-chain counterparties. WBTC custodian captured in §4 look-through.