What is a blockchain oracle, and what is the oracle problem?
An oracle brings outside information, such as a price, to smart contracts, which cannot fetch it themselves.1 The oracle problem is that a contract is only as right as that data, so it must trust whoever supplies it.1,2
Blockchains can't look outside
Smart contracts on Ethereum cannot, by default, read information stored outside the blockchain.1 That includes a coin's price in dollars, an election result or the weather.1
The reason is that Ethereum is deterministic. Given the same starting state and the same input, it always gives the same result.1 Thousands of nodes run the same code, and they must all agree on the outcome.1
Now imagine each node asked a website for the ETH price. The price changes all the time, so the nodes could get different answers.1 Then they could not agree, and the chain would break down.1
What an oracle does
An oracle is an application that fetches, checks and sends outside information to smart contracts.1 It usually has two parts: a contract on the chain, and a program off it, called an oracle node.1
The node fetches the data, for example from a website's API, and sends it to the chain in a transaction.1 Once the data is stored on-chain, every node reads the same value, so they can still agree.1
What oracles are used for
- Prices. A lending app needs current prices to value the collateral people deposit, and to decide how much they can borrow.1,2
- Events. A prediction market needs an election result before it can pay out.1
- Insurance. A crop insurance contract could pay out when oracles report certain weather.1
- Randomness. Games and lotteries need random numbers that can be proved fair.1
The oracle problem
Oracles solve one problem but bring others.1 How do you know the data came from the right source, and was not changed on the way?1 How do you know it will be there when needed, and kept up to date?1
If an oracle is corrupted and sends wrong data, the contract acts on it anyway.2 And having to trust the oracle's operator undermines the "trustless" idea behind smart contracts.1 Together, these issues are called the oracle problem.1
Three tests for any oracle
ethereum.org says oracles are usually judged on three things.1
| Test | What it asks |
|---|---|
| Correctness | Is the data authentic, from the right source and not altered?1 |
| Availability | Is the data there when the contract needs it, without interruption?1 |
| Incentive compatibility | Are providers rewarded for good data, and penalised for bad data?1 |
- Oracles. ethereum.org developer docs, page updated 26 June 2026.
- Smart contract security. ethereum.org developer docs, page updated 7 October 2026.
General education built from the publicly available sources listed above. Not financial, legal, tax or investment advice. Naming a company, project or regulator is not an endorsement either way. Last checked 2026-10-22. Terms and disclaimer.