Skip to main content
← Risk Engine Validation & Stress Testing Report

Oracle Tier Evidence

Evidence document for oracle risk classification. Covers per-feed scoring, tier definitions, geometric mean aggregation, and source tiering. Supports Tests 1.1, 4.1, and 5. For term definitions, see the Glossary. For data sources, see Data Provenance.

Per-Feed Oracle Scores

Each oracle contract is scored 0.0-1.0 based on architecture, governance surface, and dependency risk. Scores are deterministic and grid-based — the same architecture always produces the same score. For source queries, see Data Provenance — Per-Feed Scores.

Evidence Table

NetworkAddressSource TypePairScoreTier
eth0x5f4ec3df9cbd43714fe2740f5e3616155c5b8419Chainlink V2ETH/USD1.00Reference-grade
eth0x8fffffd4afb6115b954bd326cbe7b4ba576818f6Chainlink V2USDC/USD1.00Reference-grade
eth0x2665701293fcbeb223d11a08d826563edcce423aChainlink V2cbBTC/USD1.00Reference-grade
eth0xa569d910839ae8865da8f8e70fffb0cba869f961Chainlink V2USDe/USD1.00Reference-grade
eth0x8f1df6d7f2db73eece86a18b4381f4707b918fb1Chainlink V2PYUSD/USD0.70Moderate risk
eth0x4f67e4d9bd67efa28236013288737d39aef48e79Lido Wrapper + ChainlinkwstETH/ETH0.60Elevated risk
eth0x9d39a5de30e57443bff2a8307a4256c8797a3497ERC-4626 Vault RatesUSDe/USDe0.40High risk
eth0xa3931d71877c0e7a3148cb7eb4463524fec27fbdUpgradeable Proxy (ERC1967)sUSDS/USDS0.20Very high risk
eth0x80ac24aa929eaf5013f6436cda2a7ba190f5cc0bERC-4626 Vault (Permissioned)SyrupUSDC/USDC0.20Very high risk

138 Ethereum mainnet feeds classified by Chainlink's own risk categories, mapped to our scoring tiers:

Chainlink CategoryFeed CountScoreTier
Low291.00Reference-grade
Medium690.70Moderate risk
High180.40High risk
Very High / New220.20Very high risk

Tier Definitions

Score RangeTierWhat It Means
0.9-1.0Reference-gradeDecentralized oracle network, multiple data sources, high volume, market-discovered prices. Trusted baseline.
0.7-0.8Moderate riskReliable feed but with concentration risk, spread risk, or cross-rate derivation. Functional under normal conditions, weaker under stress.
0.5-0.6Elevated riskMulti-hop price derivation (wrappers, adapters) or overridden Medium feeds with thin liquidity. Additional failure surfaces beyond the base feed.
0.3-0.4High riskAccounting-derived prices (ERC-4626 totalAssets/totalSupply), deprecating feeds, or heightened volatility assets. No market price discovery — price reflects protocol state, not trading activity.
0.1-0.2Very high riskUpgradeable proxy contracts, permissioned vaults, near-zero volume assets, or feeds with hack/bridge-failure history. Logic can change without notice; redemption is mediated.

Source Tiering Verification (Test 5)

Source TypeScoreClient Expected RangeMatch
Upgradeable proxies0.200.1-0.2Yes
Accounting-derived (ERC-4626)0.400.3-0.4Yes
Permissioned vault (MaplePool)0.20N/A (should never be reference-grade)Confirmed: capped at 0.20

Hard rule: Any feed with an admin surface, upgradeability, or permissioned access is capped and can never achieve reference-grade (0.9-1.0).

Deep-Dive Analysis References

Each oracle score is backed by a contract-level analysis that walks the full chain (read path, write path, control path), evaluates risk dimensions, and documents incident analogs. These analyses are the proof artifacts behind the scores.

OracleScoreDeep-Dive
sUSDe / USDe (ERC-4626 vault rate)0.40sUSDe analysis
sUSDS / USDS (upgradeable proxy)0.20sUSDS analysis
SyrupUSDC / USDC (permissioned vault)0.20MaplePool analysis
wstETH / ETH (Lido wrapper + Chainlink)0.60Lido wrapper analysis

Each deep-dive contains:

  • Contract architecture: how the price path works, including proxy/implementation relationships
  • Risk dimension assessment: upgradeability, admin surface, price derivation, external dependencies, staleness, manipulation surface, complexity
  • Incident analogs: relevant historical failures from similar architectures
  • Why this score: explicit "why not higher" and "why not lower" reasoning

ERC-4626 Tiering Rationale (Test 4.1)

Score: 0.40 (High risk)

Example: sUSDe (0x9d39a5de30e57443bff2a8307a4256c8797a3497) — full analysis

Price derivation: share_price = totalAssets / totalSupply

Why High risk (not Moderate or Reference):

  • Price is accounting-derived, not market-discovered
  • Protocol-dependent: Ethena mechanics, reward vesting, admin controls
  • Balance-based sensitivity: direct transfers alter the exchange rate
  • No independent price aggregation from trading venues

Why not Very high risk (0.2):

  • Underlying asset (USDe) is liquid with Chainlink feed
  • Deterministic ERC-4626 accounting
  • No thin-DEX TWAP manipulation vector
  • No upgradeability or permissioning

Composite Score Aggregation (Test 1.1)

The final risk score combines three dimensions — Market Risk, Oracle Risk, and Protocol Risk — using geometric mean. A catastrophic weakness in any single dimension drags the entire composite down. For source queries and timestamps, see Data Provenance — Composite Aggregation.

Three-Dimension Composite: Production Examples

PoolMarketOracleProtocolGeo MeanArith MeanPenalty
AAVE WBTC0.9960.850.9310.9240.926-0.2%
AAVE LINK0.9750.900.9310.9350.936-0.1%
AAVE wstETH0.9280.700.9310.8460.853-0.9%
AAVE BAL0.8510.200.9310.5410.661-18.1%
AAVE FRAX0.8200.200.9310.5350.650-17.8%
AAVE GHO0.7500.000.9310.0000.560-100%
Morpho PYUSD/cbBTC0.7070.8370.9260.8180.823-0.6%
Morpho PYUSD/sUSDS0.6150.4610.9260.6400.667-4.0%

Key observations:

  • BAL and FRAX match the client's test case directly: Market and Protocol are strong (~0.85, ~0.93), but Oracle is Very High Risk (0.20). Geometric mean drops to ~0.54, an 18% penalty vs arithmetic mean.
  • GHO with a fixed-price oracle (0.00) produces a composite of 0.00 regardless of Market and Protocol scores. This is the geometric mean's zero-out property — one catastrophic dimension eliminates the entire score.
  • High-quality pools (WBTC, LINK) where all three dimensions are strong show <1% difference between geometric and arithmetic mean.

Geometric Mean Aggregation (Test 1.1)

When a lending market depends on multiple oracle feeds in its price path, the market-level oracle score uses geometric mean — not arithmetic mean.

Why Geometric Mean

A weak oracle feed drags the entire price path. If one feed is unreliable, the market's price reliability is fundamentally compromised, regardless of how strong the other feeds are.

geometric_mean(1.0, 0.2) = 0.447    vs    arithmetic_mean(1.0, 0.2) = 0.600
geometric_mean(1.0, 0.7) = 0.837 vs arithmetic_mean(1.0, 0.7) = 0.850
geometric_mean(0.7, 0.4) = 0.529 vs arithmetic_mean(0.7, 0.4) = 0.550

The geometric mean ensures that a single catastrophic weakness cannot be masked by strength elsewhere in the price chain.

Market-Level Evidence

Real Morpho Blue markets with computed oracle scores:

MarketFeedsIndividual ScoresGeometric MeanArithmetic MeanDifference
PYUSD/cbBTCcbBTC/USD, PYUSD/USD1.0, 0.70.8370.850-1.5%
PYUSD/wstETHwstETH/ETH (Lido+CL), ETH/USD, PYUSD/USD0.6, 1.0, 0.70.7490.767-2.3%
PYUSD/sUSDeUSDe/USD, sUSDe vault rate, PYUSD/USD1.0, 0.4, 0.70.6540.700-6.6%
PYUSD/syrupUSDCUSDC/USD, SyrupUSDC vault, PYUSD/USD1.0, 0.2, 0.70.5190.633-18.0%
PYUSD/sUSDSUSDS/USD, sUSDS proxy, PYUSD/USD0.6, 0.2, 0.70.4610.500-7.8%

All geometric mean values verified against production (see Data Provenance — Oracle Scores for queries).

Key observation: The geometric mean penalty grows sharply as the weakest feed deteriorates. In PYUSD/syrupUSDC, the permissioned vault feed (0.2) drags the geometric mean 18% below the arithmetic mean. This is the correct behavior — a chain is only as strong as its weakest link.

Three-Level Architecture

LevelScopeAggregation MethodRationale
1Individual oracle contractDeterministic scoringEach feed assessed independently
2Market (all feeds in price path)Geometric meanChained dependencies — weak link dominates
3Vault (across allocated markets)Weighted average by allocation USDNot directly related markets — diversification matters