Treasury Depeg & Concentration
treasury_riskStablecoin / on-chain treasury risk. Given a book of positions [{asset, amountUsd, apyPct, venue, chain, pegTarget, depegProbAnnual}], returns concentration (Herfindahl by asset/venue/chain + breaches over a limit), depeg stress (explicit scenarios + a worst-single-depeg scan), weighted and risk-adjusted yield. Self-checked: HHI == Σw², weights sum to 1, depeg-loss identity. Call to size a treasury's real risk — issuer/venue/chain concentration and depeg exposure — not just its headline APY.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| positions | Yes | treasury holdings | |
| depegFloor | No | worst-single-depeg stress floor (default 0.90) | |
| depegScenarios | No | [{asset, price}] explicit depeg stresses | |
| concentrationLimitPct | No | flag any single exposure above this (default 25) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | No | false when the engine rejected the input | |
| model | No | model assumptions used | |
| proof | No | Verifiability envelope: echoed inputs, engine codeHash, contentHash of this exact result, self-checks, EIP-712 signature (EAS-ready). Re-run the open engine on `inputs` to reproduce the result byte-for-byte. | |
| checks | No | Ground-truth self-checks; the result is untrustworthy if any fails. | |
| verdict | No | plain-language verdict | |
| totalUsd | No | total treasury size in USD | |
| depegStress | No | explicit depeg scenarios + worst-single-depeg scan | |
| concentration | No | Herfindahl (HHI) by asset/venue/chain + limit breaches | |
| weightedApyPct | No | holdings-weighted headline APY (%) | |
| riskAdjustedApyPct | No | yield after expected depeg loss (%) | |
| expectedAnnualDepegLossUsd | No | expected annual loss from depeg probabilities (USD) |