Skip to main content

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

ProviderBase
chainlink, price-cap10
redstone/pyth/chronicle/… and unrecognized18
composite / cross-feed22
exchange-rate / pendle-pt / LST rate adapters28
twap/uniswap/DEX30
fixed-rate / constant55

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.

  • Array [
  • assetstringnullable

    Priced asset symbol (the reported numerator).

    oraclestringnullable

    Oracle / feed / adapter address (lowercased).

    providerstringnullable

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

    priceDescriptionstringnullable

    Decoded reported pair, e.g. "WBTC / USD"; "UNKNOWN" when the source could not be decoded.

    intendedPairstringnullable

    What the feed should report: "<asset> / <numeraire>".

    correctOraclebooleannullable

    Does the feed price the intended asset (numerator match)? null = unverifiable.

    denominatorMatchbooleannullable

    Is the feed denominated in the right numeraire (e.g. the loan token / market unit)? null = unknown.

    fixedRateboolean

    Hardcoded/constant price feed.

    scoreinteger

    Feed risk score 0–100. See OracleInfo for the model.

    bandstring

    Risk band for score.

    Possible values: [LOW, MEDIUM, HIGH, CRITICAL]

    flagsstring[]

    Risk flags: wrong-asset, correlated-proxy, cross-numeraire, undecoded-source, fixed-rate, unrecognized-provider.

  • ]
  • worstScoreintegerrequired

    Highest (worst) score across feeds.

    worstBandstringrequired

    Band of the worst feed.

    Possible values: [LOW, MEDIUM, HIGH, CRITICAL]

    OracleInfo
    {
    "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"
    }