Deciphr Academy
Track 3 · Module 15 · Lesson 1 of 6 · 6 min read

What is a blockchain oracle, and what is the oracle problem?

Short answer

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

BlockchainSmart contractcannot read outside dataOraclecarries dataOutside worldETH priceElection resultWeatherThe contract has to trust whoever runs the oracle
Fig. 1. A smart contract cannot see the outside world. An oracle carries data in, and the contract has to trust it.

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
Our viewAn oracle does not remove trust. It moves it, from the contract's code to whoever supplies the data. The rest of this module is about making that trust smaller.
Sources
  1. Oracles. ethereum.org developer docs, page updated 26 June 2026.
  2. 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.