OracleInfo
Oracle feed-correctness classification for the market's price oracle(s). null when the market has no oracle classification.
This is feed correctness — does the oracle price the right asset in the right unit — and is distinct from the price-staleness signal carried in risk.breakdown[oracle] (a 1–5 score). A market can have several feeds (Compound comets price each collateral asset; Fluid prices each vault side), so feeds is an array and worstScore/worstBand summarize the riskiest one.
Scoring (per feed, additive): score = provider base + flag penalties, clamped 0–100.
Provider base (oracle mechanism; first match wins):
| Provider | Base |
|---|---|
chainlink, price-cap | 10 |
redstone/pyth/chronicle/… and unrecognized | 18 |
composite / cross-feed | 22 |
exchange-rate / pendle-pt / LST rate adapters | 28 |
twap/uniswap/DEX | 30 |
fixed-rate / constant | 55 |
Flag penalties (added on top): wrong-asset +45 · correlated-proxy +18 · cross-numeraire +18 · undecoded-source +8.
Bands: LOW < 25 · MEDIUM 25–49 · HIGH 50–74 · CRITICAL ≥ 75.
feeds object[]required
Per-feed classifications, ordered worst-first.
Priced asset symbol (the reported numerator).
Oracle / feed / adapter address (lowercased).
Oracle mechanism: chainlink, redstone, pyth, chronicle, composite, price-cap (Aave PriceCapAdapter), exchange-rate (correlated/LST, e.g. Venus OneJumpOracle), pendle-pt, constant, or a lender-specific stub (compound-v2-oracle, dolomite-oracle, fluid-oracle).
Decoded reported pair, e.g. "WBTC / USD"; "UNKNOWN" when the source could not be decoded.
What the feed should report: "<asset> / <numeraire>".
Does the feed price the intended asset (numerator match)? null = unverifiable.
Is the feed denominated in the right numeraire (e.g. the loan token / market unit)? null = unknown.
Hardcoded/constant price feed.
Feed risk score 0–100. See OracleInfo for the model.
Risk band for score.
Possible values: [LOW, MEDIUM, HIGH, CRITICAL]
Risk flags: wrong-asset, correlated-proxy, cross-numeraire, undecoded-source, fixed-rate, unrecognized-provider.
Highest (worst) score across feeds.
Band of the worst feed.
Possible values: [LOW, MEDIUM, HIGH, CRITICAL]
{
"feeds": [
{
"asset": "string",
"oracle": "string",
"provider": "string",
"priceDescription": "string",
"intendedPair": "string",
"correctOracle": true,
"denominatorMatch": true,
"fixedRate": true,
"score": 0,
"band": "LOW",
"flags": [
"string"
]
}
],
"worstScore": 0,
"worstBand": "LOW"
}