A blockchain oracle supplies information that a smart contract uses but cannot establish from its own execution alone. Examples include asset prices and reports of external events. An oracle makes data available for deterministic execution; it does not make an external claim true merely by recording it on a blockchain.1
The oracle problemReport an error
Nodes executing the same transaction must obtain the same result. If each queried a changing website independently, they could disagree. Oracle systems instead submit a report that contracts can consume consistently. The resulting dependency is often called the oracle problem: who supplies the report, how it is verified, and what happens when it is wrong or unavailable.1
Price feedsReport an error
Chainlink describes its Data Feeds as aggregating information from multiple sources through oracle networks and publishing reports onchain. Lending applications can use the reported prices to value collateral and settle positions. The data source, reporting process, and receiving application are separate parts of that arrangement.2
Uniswap v2 provides a different input: prices derived from trading pools. It accumulates prices over time, allowing an application to calculate a time-weighted average between observations. Uniswap's documentation explains that manipulation costs depend on liquidity and the averaging period. An average can make a short-lived price movement less influential without guaranteeing an economically correct price.3
Risks and application responsibilitiesReport an error
Chainlink's integration guidance warns that market concentration, low liquidity, and variation across trading venues can impair price quality. It also distinguishes a wrapped or bridged asset from its underlying asset: a bridge failure may cause their prices to diverge. Applications must decide whether the feed actually represents the asset being valued.4
Rollups add an availability issue. Chainlink's sequencer uptime feeds allow applications to detect an outage and apply a grace period after recovery. This can prevent liquidations while ordinary users cannot interact on equal terms. The application still needs to implement the check and choose suitable parameters.5
See alsoReport an error
ReferencesReport an error
-
^ a b ethereum.org. Oracles. https://ethereum.org/en/developers/docs/oracles/
-
^ a b Chainlink. Data Feeds. https://docs.chain.link/data-feeds
-
^ a b Uniswap. Uniswap v2 oracles. https://docs.uniswap.org/contracts/v2/concepts/core-concepts/oracles
-
^ Chainlink. Selecting quality data feeds. https://docs.chain.link/data-feeds/selecting-data-feeds
-
^ Chainlink. L2 sequencer uptime feeds. https://docs.chain.link/data-feeds/l2-sequencer-feeds