Every lending protocol needs to know the price of the collateral it holds. Every stablecoin needs to know the price of its backing. Every liquidation depends on an accurate price at the moment of decision. But blockchains have no native way to know off-chain prices — the price of ETH in USD is not something a smart contract can look up. Oracles fill this gap. Chainlink is the dominant oracle network for EVM chains, and understanding how it works is the entry point to understanding the systemic risk of most of DeFi.
The oracle problem
Smart contracts run in an isolated environment — they can only see other on-chain state. They can't call APIs, read files, or check what CoinMarketCap says the price is right now.
Any DeFi protocol that needs to know off-chain data (prices, sports results, weather, whatever) has to trust some mechanism to bring that data on-chain. Whoever controls that mechanism controls the protocol's decisions. If the price feed says ETH is $10, the lending protocol will happily let someone borrow against $10-valued ETH — even if the actual market price is $2,500.
This is called the oracle problem, and it's why oracle design is one of the highest-stakes decisions in DeFi.
What Chainlink actually does
Chainlink's price feeds work by:
1. A set of independent node operators each pulls the price of an asset from multiple exchanges (Binance, Coinbase, Kraken, etc.). 2. Each node calculates a median across its sources and signs it. 3. Nodes report their prices to an on-chain aggregator contract. 4. The contract takes the median of all reported prices and publishes it as the "current price." 5. This price is used by every DeFi protocol that reads that price feed.
The result is a single price update, on-chain, that's the median of the medians reported by ~20-40 independent nodes — meaning any single node lying or being hacked doesn't move the price.
When updates happen: deviation and heartbeat
Chainlink price feeds don't update every block. Instead, they update based on two conditions:
**Deviation threshold**: if the price has moved more than X% since the last update. Typical values: 0.5% for stablecoins, 0.25-1% for major assets like ETH, 1-2% for smaller-cap tokens.
**Heartbeat**: even if the price hasn't moved much, update at least every N seconds. Typical values: 3600s (1 hour) for major assets, 86400s (24 hours) for less-active feeds.
Whichever condition triggers first causes an update. This design saves gas — no update if the price barely moves — while ensuring the on-chain price is never wildly stale.
The consequence for DeFi: at any moment, the on-chain price can be up to 1% behind the actual market price. Protocols that use Chainlink prices must be designed to tolerate this delay.
What each price feed actually is
Every Chainlink price feed is deployed as a specific contract. For example:
- ETH/USD on Ethereum: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419
- BTC/USD on Ethereum: 0xF4030086522a5bEEa4988F8cA5B36dbC97BeE88c
- USDC/USD on Ethereum: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6
A DeFi protocol like AAVE reads these contracts to know current prices. If AAVE wants ETH's USD price, it calls the ETH/USD feed. The feed returns whatever the last aggregated price was, plus a timestamp.
Chainlink publishes documentation of all its feeds. Every one you use should be verified against Chainlink's official list.
Node operators and the trust model
The security of a Chainlink feed depends on the diversity and integrity of its node operators. Currently, Chainlink's mainnet price feeds are secured by 20-40 independent node operators per feed. Node operators include:
- Established Web2 infrastructure companies (Deutsche Telekom, Swisscom, LinkPool)
- Blockchain infrastructure companies (Infura, Alchemy affiliates)
- Independent operators (staking businesses, DeFi-specific ops)
Each operator stakes LINK tokens as bond that can be slashed if they misbehave. The economic security is meaningful but not the primary defense — the primary defense is redundancy. A single malicious or hacked operator can be outvoted by honest ones.
What can go wrong
Historic and theoretical failure modes:
**Depegs and thin liquidity**: if the underlying asset depegs or an exchange manipulates its own price, oracle sources may report bad data. Chainlink filters via multiple sources and medianizing, but coordinated attacks on multiple sources can succeed.
**Delayed updates in fast markets**: during flash crashes, prices can move 5-10% in a few minutes. If the oracle heartbeat is 1 hour and deviation is 1%, there's a lag where the on-chain price doesn't reflect market reality. Some protocols got liquidated at wrong prices during the March 2020 crash for this reason.
**Sequencer down**: on L2s, if the sequencer goes down, Chainlink can't update the feed. Protocols using L2 Chainlink feeds need to handle this — usually by pausing liquidations during sequencer downtime.
**Sponsor drops the feed**: less critical feeds (for exotic tokens) are sometimes deprecated. Protocols using them need to migrate or update.
**Oracle manipulation via low-liquidity venues**: if a token trades primarily on one thin DEX, the oracle sourced from that DEX can be manipulated with a large trade. Chainlink mitigates by using multiple sources, but tokens with limited market presence remain risky.
Beyond price feeds
Chainlink offers more than just price feeds:
**VRF (Verifiable Random Function)**: on-chain randomness. Used by NFT mints, games, and lotteries.
**CCIP (Cross-Chain Interoperability Protocol)**: send messages and tokens across chains, using Chainlink nodes as attesters. Competes with Wormhole, LayerZero, and others.
**Automation (previously Keepers)**: trigger on-chain actions based on off-chain conditions (like "liquidate at 3PM UTC"). Effectively a decentralized cron job service.
**Proof of Reserve**: prove that a stablecoin issuer holds the reserves they claim, via oracles that check bank statements or on-chain balances.
The systemic risk angle
Because most of DeFi uses Chainlink for prices, a serious failure of Chainlink would cascade across the ecosystem. If Chainlink stopped updating ETH/USD, AAVE, Compound, MakerDAO, and dozens of other protocols would be operating on stale data.
Chainlink's design mitigates this via decentralization, but concentration remains: most major DeFi protocols choose Chainlink over alternatives, and building an alternative to Chainlink at similar scale has proven difficult (Pyth Network is the closest competitor for spot prices, primarily on Solana and expanding to EVM).
Alternatives worth knowing
- **Pyth Network**: pull-based oracle used heavily on Solana, expanding to EVM chains. Prices are updated on request rather than continuously.
- **Uniswap V3 TWAPs**: time-weighted average prices from V3 pools, used by some protocols for tokens where a dedicated oracle isn't available.
- **UMA**: optimistic oracles, useful for arbitrary data queries.
- **Redstone**: modular oracle, lets protocols pull specific price data on demand.
- **API3**: first-party oracles run by data providers themselves.
Most major DeFi protocols use Chainlink as primary with sometimes a secondary oracle for redundancy.
For a user
You rarely interact with oracles directly. The relevant awareness:
- If you're using a lending protocol with a small-cap collateral asset, check what oracle it uses. Oracle manipulation attacks target small-cap oracles.
- If you're depositing into a protocol during a market crash, know that oracle prices may lag by a percentage point or two.
- If a protocol you use is on an L2 and the sequencer goes down, expect liquidations and price-sensitive operations to be paused.
For most users, Chainlink is invisible infrastructure. Understanding it is the difference between "everything works" and understanding why things sometimes break.



