Dashboard · VantagePlanned

Chainlink Price Feeds: Update Times, Heartbeats and Deviation

When did each Chainlink price feed last update, and is any feed past its heartbeat right now?

Each Chainlink price feed's last update and what triggered it, its heartbeat and deviation threshold, with stale feeds flagged right now.

ShareEmail itvoltfincrypto.com/apps/chainlink-price-feeds
Blueprint

What the dashboard will show.

The dashboard as it will open in Vantage. Each figure is named here and arrives with its receipt; until its data is published, its place stays empty.

  • Feed
  • Chain
  • Period

Feed health

Every covered feed's freshness right now, stalest first.

Feeds tracked

count

Chainlink price feeds read on covered chains at the latest block.

Figurenative_prices_dailyAwaiting data

Feeds past their heartbeat

count

Feeds whose last update is older than their heartbeat at the latest block.

Figurenative_prices_dailyAwaiting data

Updates, last 24 hours

count

New rounds written across all tracked feeds in the last 24 hours.

Figurenative_prices_dailyAwaiting data

Median time since update

minutes

The median age of the latest answer across tracked feeds, at the latest block.

Figurenative_prices_dailyAwaiting data

Feeds by freshness

Each feed's chain, pair, heartbeat, deviation threshold, time since last update and whether it is past its heartbeat, stalest first.

Tablenative_prices_dailyAwaiting data

One feed

A single feed's settings, its updates and the reason each one fired.

Deviation threshold

%

The share of the last answer the price must move before the selected feed writes a new round.

Figurenative_prices_dailyAwaiting data

Heartbeat

hours

The longest the selected feed may go without writing a new round.

Figurenative_prices_dailyAwaiting data

Updates in the period

count

Rounds the selected feed wrote over the selected period.

Figurenative_prices_dailyAwaiting data

Longest gap between updates

minutes

The longest time between two consecutive rounds of the selected feed in the period.

Figurenative_prices_dailyAwaiting data

Answer at each update

The selected feed's answer at every round in the period, each round marked as a deviation or a heartbeat update.

Line chartnative_prices_dailyAwaiting data

Feed
Every Chainlink price feed on covered chains
Chain
Every covered chain
Period
Last day, week or month
About

What it answers, and for whom.

Chainlink price feeds put reference prices on-chain for lending markets, perpetuals and stablecoins to read. A feed does not update on a clock alone: its oracle network writes a new answer when the price moves past the feed's deviation threshold, or when the heartbeat time passes without such a move. This dashboard reads every update on covered chains, so it shows how fresh each feed is and why it last changed.

Freshness matters because protocols act on what they read. A feed past its heartbeat may be stuck, a feed that updates every few blocks is tracking a volatile market and the same pair can have different settings on different chains. Each figure is read from the feed's proxy and aggregator contracts at a pinned block, so anyone can check the round behind it.

Method

How it will be measured.

Every figure will be read at a block, kept with its source and its exact read, and open a receipt anyone can re-check.

How receipts work →
  1. Each feed is read at its proxy: latestRoundData() gives the answer, the round id and updatedAt, and the proxy's current aggregator is recorded so that an aggregator upgrade does not break the history.
  2. Updates are decoded from each aggregator's AnswerUpdated events; an update counts as a deviation update when the answer moved past the feed's threshold since the last round, and as a heartbeat update otherwise.
  3. A feed is stale when the time since its last update is longer than its heartbeat; each feed's heartbeat and deviation threshold come from Chainlink's published feed parameters, recorded with the date read (off-chain).
  4. On rollups the sequencer uptime feed is shown beside each price feed, since protocols there are expected to check it before trusting a price.

The data it needs

Chain data, with some off-chain sources

  • native_prices_dailyTo buildOracle prices by dayReference prices of major assets read from on-chain oracle feeds (Chainlink latestRoundData) at each day's last block, with each round's update time.
  • latestRoundData() and aggregator() of each feed proxy at the latest block on each covered chain
  • AnswerUpdated events of each feed's current and past aggregators
  • L2 sequencer uptime feeds on covered rollups
  • Chainlink's published heartbeat and deviation threshold for each feed (off-chain, recorded with the date read)
Questions

Questions people ask.

How often do Chainlink price feeds update?

Whenever the price moves more than the feed's deviation threshold, or when the heartbeat time passes without such a move, whichever comes first. Thresholds and heartbeats differ by feed and by chain, so a volatile pair can update many times an hour while a stable one updates only on its heartbeat.

What does it mean when a Chainlink feed is stale?

Its last update is older than its heartbeat, so the price on-chain may no longer match the market. Protocols usually check updatedAt from latestRoundData and refuse prices that are too old. The dashboard lists the feeds past their heartbeat now.

What does latestRoundData return?

Five values: the round id, the answer, when the round started, when it was updated and the round in which the answer was computed. The answer is scaled by the feed's decimals, which the proxy also reports.

Why does the same feed differ between chains?

Each chain has its own aggregator with its own deviation threshold and heartbeat, set for that chain's costs and uses. The same pair can therefore update at different times and with different precision on Ethereum and on a layer 2.

What is the L2 sequencer uptime feed?

A Chainlink feed on rollups that reports whether the rollup's sequencer is up. When the sequencer has been down, prices may be outdated, so lending protocols on layer 2s typically check this feed and wait out a grace period after it recovers.

Deviation threshold
How far a feed's price must move, as a share of the last answer, before the oracle network writes a new one.
Heartbeat
The longest a feed goes without an update; when it elapses, a new answer is written even if the price has not moved.
Aggregator
The contract that receives the oracle network's reports and stores each round's answer; a proxy points to the current aggregator.

Build Chainlink Price Feeds: Update Times, Heartbeats and Deviation on verified data.

Start free in Voltfin Studio: boards, tables and reports where every number opens its receipt. Tell us which data you need first and we will build it next.