Oracle staleness check present
Stake DAO's assessment for RD-F-059 — scored green on the v1.7.0 rubric. The evidence below is the curator's reasoning for this score.
Evidence summary #
BaseOracle.sol enforces staleness check: require(latestPrice > 0 && updatedAt > block.timestamp - maxStale, InvalidPrice()). Per-feed maxStale heartbeat configured at construction. Data cache confirms: ETH/USD (0x5f4eC3Df...) heartbeat 3600s (deviation 0.5%), USDC/USD (0x8fFfFfd4...) heartbeat 82800s, BTC/USD (0xF4030086...) heartbeat 3600s. ETH/USD 3600s is within the taxonomy green threshold (≤3600s for volatile assets). USDC/USD 82800s is appropriate for a stablecoin (slow-moving asset). Core locker path: oracle-free, not applicable.
Sources #
- InternalData cache oracle heartbeat configuration.research/protocols/stake-dao/00-data-cache.json — oracle_feeds heartbeat values: ETH/USD 3600s, USDC/USD 82800s, BTC/USD 3600sretrieved 2026-05-16
- BaseOracle.sol staleness check implementationpackages/periphery/src/lending/oracles/BaseOracle.sol — _fetchFeedPrice() staleness: require(latestPrice > 0 && updatedAt > block.timestamp - maxStale)retrieved 2026-05-16
Methodology #
Determine whether the protocol rejects oracle reads older than a declared maximum age (i.e., checks `updatedAt > block.timestamp - maxStaleness`).
See the full factor methodology and distribution across all protocols →