On 7 November 2026 Chainlink’s reference data listed 2,084 published data feed entries on 37 mainnet networks. 1,834 of them were price feeds, and 1,782 of those were still active after removing feeds marked for deprecation. They cover 614 distinct price pairs, counting each pair once across all networks and leaving out SVR variants. About half of the active price feeds (49.8% of the 1,550 that are not SVR variants) use a 0.5% deviation threshold with a 24 hour heartbeat.
The data is the JSON that docs.chain.link renders its address tables from. Counts differ between sources because the files also hold hidden entries, Data Streams entries, SVR copies of the same pair and feeds past their shutdown date. A deviation threshold is the percentage price move that triggers a new on-chain update, and a heartbeat is the longest time a feed may go without one. How Chainlink price feeds work explains how the two triggers operate. This article counts the feeds and compares their settings.
The short version
- Size: 2,084 published data feed entries, 2,023 of them active. 1,834 are price feeds (1,782 active), and 234 of those are SVR variants.
- Distinct markets: 614 distinct price pairs, so the headline count overstates the number of different pairs by about three to one. 348 of the 614 exist on one network only.
- Chains: Ethereum has the most entries (263) and Arbitrum the most price feeds (231). Three networks have no active feeds left.
- Deviation threshold: 0.5% is the median and the most common value (53.1% of active price feeds without SVR variants). 0.05% comes next at 12.9%.
- Heartbeat: 24 hours covers 82.5% of those feeds and 1 hour another 6.6%. The shortest is 27 seconds, and none is longer than 24 hours.
- Asset classes: crypto is 83% of price feeds, forex 8% and equities 6.5%.
Every figure is a measurement from 7 November 2026 unless stated otherwise. These files change, so a later count will differ.
Where the numbers come from
Chainlink publishes one reference data file per network. The addresses page on docs.chain.link lists 62 networks: 37 mainnets and 25 testnets. We ignored the testnets and downloaded the 37 mainnet files at 11:10 UTC on 7 November 2026. Two of them (Aptos and Stellar) are hosted on docs.chain.link itself and the other 35 on reference-data-directory.vercel.app.
The files hold 2,979 entries. This is how we got from there to a feed count:
| Step | Entries |
|---|---|
| Entries in the 37 mainnet files | 2,979 |
| Minus hidden entries | 247 (2,732 left) |
| Minus Data Streams entries that are not hidden | 648 |
| Published data feed entries | 2,084 |
| Of which marked for deprecation | 61 |
| Active data feed entries | 2,023 |
| Price feeds, published / active | 1,834 / 1,782 |
| Price feeds that are SVR variants | 234 |
| Distinct price pairs across all networks, without SVR variants | 614 |
Each step has a reason:
- Hidden entries. The docs page embeds none of them. Many are clearly test or backup entries, such as
btc-usd-soak,usdc-usd-capped-testand the*-cre-backupones. Others look like ordinary pairs or sequencer feeds, but the docs do not show them either, so we leave them all out. - Data Streams entries. They have a threshold of 0 and no heartbeat, because they are pulled on demand instead of pushed on a schedule. All of them sit in the Arbitrum file. See Chainlink Data Streams for how they differ.
- Marked for deprecation. These entries have a shutdown date, and all 61 dates are on or before 7 November 2026. They are still listed. The docs say
latestRoundDatareverts with no data available once a feed has been shut down. - Price feeds. We follow Chainlink’s own
productTypefield. It includes exchange rate feeds (399) and calculated feeds (121), and the docs describe exchange rate feeds as not equivalent to market price feeds. Without them, the Reference subtype has 1,311 published price feeds. - SVR variants. A separate contract for the same pair. We count them as feeds but leave them out of the distinct pair count and the settings tables.
- Distinct pairs. We compare pair names ignoring upper and lower case and any label in brackets at the end, so the same pair written in different case counts once.
Other sites quote larger round numbers. A third-party glossary we found says “over 2,000 price feeds” without a method. Adding the 613 price-type Data Streams entries to the 1,834 counted here gives 2,447, so such a figure is reachable only if streams are counted. We do not know how those pages counted.
The docs page also renders 14 entries that are not in the JSON files (Avalanche 2, Base 11, Polygon 1). None of them is a price feed, so the price feed counts do not change. All counts are entries in Chainlink’s reference data, not a count of deployed contracts.
Count them yourself
This script needs Node 18 or later and no packages. Save it as count.mjs: the .mjs extension lets Node run the top-level await, which a .js file does not allow on older versions. It downloads the Ethereum file, applies the same filter and prints the Ethereum row of our tables, plus the settings of its active price feeds that are not SVR variants.
// Counts the Chainlink data feeds published for Ethereum mainnet. Node 18+, no packages.
const URL = 'https://reference-data-directory.vercel.app/feeds-mainnet.json';
const all = await (await fetch(URL)).json();
// 1. Published: drop hidden entries and Data Streams entries (they have no deviation or heartbeat).
const published = all.filter((f) => !f.docs?.hidden && !f.feedId && f.contractType !== 'verifier');
const active = published.filter((f) => !f.docs?.shutdownDate);
const isPrice = (f) => f.docs?.productType === 'Price';
const price = published.filter(isPrice);
const priceActive = active.filter(isPrice);
const svr = published.filter((f) => f.svrDisplayLabel);
console.log('entries in file ', all.length);
console.log('published ', published.length);
console.log(' active ', active.length);
console.log('price feeds ', price.length);
console.log(' active ', priceActive.length);
console.log('SVR entries ', svr.length);
// 2. Settings for active price feeds that are not SVR variants.
const settings = priceActive.filter((f) => !f.svrDisplayLabel);
const tally = (key) => {
const t = new Map();
for (const f of settings) t.set(f[key], (t.get(f[key]) ?? 0) + 1);
return [...t].sort((a, b) => b[1] - a[1]).slice(0, 4).map(([v, n]) => `${v} x${n}`).join(', ');
};
console.log(`\nsettings population ${settings.length}`);
console.log('deviation threshold %', tally('threshold'));
console.log('heartbeat seconds ', tally('heartbeat'));
We ran it on Node 24.19.0 at 11:43 UTC on 7 November 2026:
entries in file 302
published 263
active 257
price feeds 214
active 208
SVR entries 27
settings population 182
deviation threshold % 0.5 x63, 2 x50, 1 x26, 0.3 x12
heartbeat seconds 86400 x166, 3600 x12, 82800 x3, 21600 x1
It matches the Ethereum row in the next section: 263 published entries, 214 price feeds, 6 marked for deprecation (263 minus 257) and 27 SVR entries. Change the URL to count another network, with the file names from the docs page.
We also checked that the data matches the chain. We read five feeds over public RPC endpoints the same day: ETH / USD on Ethereum and Arbitrum, USDC / USD on Ethereum, EUR / USD on Base and BTC / USD on Polygon. The decimals matched the data in all five, and each feed was younger than its configured heartbeat when we read it.
Feeds by chain
This table shows the 15 largest networks by published data feed entries. Price feeds are a subset of the entries. The SVR column counts SVR-labelled entries of any product type.
| Network | Entries | Price feeds | Marked for deprecation | SVR |
|---|---|---|---|---|
| Ethereum | 263 | 214 | 6 | 27 |
| Arbitrum | 251 | 231 | 5 | 20 |
| Base | 182 | 161 | 3 | 34 |
| BNB Chain | 171 | 155 | 0 | 22 |
| OP | 157 | 137 | 0 | 0 |
| Polygon | 120 | 108 | 1 | 0 |
| Monad | 111 | 103 | 0 | 20 |
| Avalanche | 95 | 75 | 0 | 0 |
| Robinhood Chain | 58 | 55 | 0 | 56 |
| Linea | 43 | 34 | 0 | 0 |
| X Layer | 39 | 29 | 0 | 0 |
| Arc | 36 | 30 | 0 | 25 |
| Plasma | 36 | 34 | 0 | 0 |
| Sonic | 35 | 28 | 0 | 0 |
| MegaETH | 33 | 31 | 0 | 0 |
| Top 15 total | 1,630 |
The other 22 networks hold 454 entries between them, from 32 each on Gnosis Chain, HyperEVM, Mantle and Scroll down to 10 each on Ronin, Starknet, Stellar and Unichain.
- Ethereum has the most entries (263) and Arbitrum the most price feeds (231). Arbitrum’s file looks larger (1,045 raw entries) only because it carries the Data Streams catalogue.
- Three networks have no active feeds left. Every entry on Botanix (19), Polygon zkEVM (11) and Ronin (10) is past its shutdown date, which were 7 July 2026, 8 June 2026 and 30 May 2026.
- A few pairs are everywhere. By number of networks, USDC / USD is on 33, USDT / USD on 32, BTC / USD on 31, ETH / USD on 30 and LINK / USD on 30. USDE / USD and WBTC / USD follow far behind, on 16 and 15.
- Most pairs are local. 348 of the 614 pair names exist on one network only.
Feeds by product and asset class
Price feeds are 88% of all published entries. The rest is a mix of products that mostly carry no market price:
| Product type | Entries | Share |
|---|---|---|
| Price | 1,834 | 88.0% |
| Proof of Reserve | 78 | 3.7% |
| Macroeconomics | 67 | 3.2% |
| No product type in the data | 57 | 2.7% |
| NAVLink | 41 | 2.0% |
| Blockchain (L2 sequencer health check) | 5 | 0.2% |
| Index | 1 | below 0.1% |
| SmartData | 1 | below 0.1% |
The 78 Proof of Reserve entries are covered in Chainlink Proof of Reserve. Among the 1,834 price feeds, the asset class split is:
| Asset class | Price feeds | Share |
|---|---|---|
| Crypto | 1,524 | 83.1% |
| Forex (fiat) | 147 | 8.0% |
| Equities including ETFs | 119 | 6.5% |
| Commodities | 25 | 1.4% |
| Tokenized equities | 19 | 1.0% |
The source mixes spellings of the same class (Equity and Equities, Fiat and Forex), so we mapped them to one name each. Three price feeds have no asset class field; we classed them from their sub-class or feed type.
SVR variants are a separate contract for the same pair, with its own address and sometimes its own settings. A protocol that uses Chainlink SVR points at the SVR copy. Raw counts include both. Together with pairs listed on many networks, that is why 1,834 price feeds are only 614 distinct pairs: 234 of the entries are SVR copies and most of the other 1,600 repeat a pair that is also listed on another network. The data labels the SVR copies Shared SVR, Aave SVR and Compound SVR.
Deviation thresholds: what most feeds use
From here on, the tables cover the 1,550 active price feeds that are not SVR variants. Adding the 232 active SVR variants (1,782 in all) barely moves the shares. 0.5% covers 53.4% instead of 53.1%.
| Deviation threshold | Feeds | Share |
|---|---|---|
| 0.5% | 823 | 53.1% |
| 0.05% | 200 | 12.9% |
| 0.3% | 138 | 8.9% |
| 0.1% | 96 | 6.2% |
| 1% | 59 | 3.8% |
| 2% | 55 | 3.5% |
| 0.2% | 43 | 2.8% |
| 0.0000001% | 39 | 2.5% |
| 0.25% | 29 | 1.9% |
| 0.01% | 27 | 1.7% |
| Nine other values | 41 | 2.6% |
The 0.5% threshold is the median and covers just over half. The 0.0000001% row is listed that way in the data and is mostly exchange rate feeds. We found no explanation of the value in Chainlink’s docs, so we do not guess at it.
By asset class, the median and most common values differ a little:
- Crypto (1,309 feeds): median 0.5%, and 721 feeds use it.
- Forex (134): median 0.3%, with 54 feeds at 0.3%.
- Equities including ETFs (73): median 0.5%, with 63 at 0.5%.
- Commodities (24): median 0.3%, although the most common value is 0.5% (9 feeds).
- Tokenized equities (10): median 0.05%, and all 10 use it.
Ethereum stands out. Its median is also 0.5%, but 50 of its 182 feeds sit at 2% and 26 at 1%. Many of the 2% feeds are X / ETH pairs such as 1INCH / ETH, AAVE / ETH and APE / ETH.
Are stablecoin feeds tighter?
Not systematically. For a clean comparison we used only the Reference subtype, which leaves out exchange rate and calculated feeds (1,117 feeds):
- Stablecoins (193 feeds): median 0.3%. 31 of them (16%) are at 0.1% or lower. The most common values are 0.5% (79 feeds) and 0.3% (61).
- Other crypto (733 feeds): median 0.5%. 79 of them (11%) are at 0.1% or lower. The most common values are 0.5% (496) and 2% (51).
On Ethereum, 29 stablecoin feeds have a median of 0.5% and 85 non-stable crypto feeds have a median of 2%. That gap comes mostly from the X / ETH pairs and not from stablecoins being looser than usual.
Heartbeats: 24 hours is the norm
The same population by heartbeat. The 13 rarest values are merged into one row.
| Heartbeat | Feeds | Share |
|---|---|---|
| 24 hours (86,400 s) | 1,279 | 82.5% |
| 1 hour (3,600 s) | 102 | 6.6% |
| 27 s | 28 | 1.8% |
| 240 s | 27 | 1.7% |
| 20 minutes (1,200 s) | 25 | 1.6% |
| 600 s | 17 | 1.1% |
| 300 s | 17 | 1.1% |
| 900 s | 11 | 0.7% |
| 13 other values | 44 | 2.8% |
24 hours and 1 hour together cover 1,381 of the 1,550 feeds, or 89.1%. No price feed has a heartbeat longer than 24 hours. Other products do: 66 of the 67 Macroeconomics entries have a heartbeat of 35 days.
The shortest heartbeat is 27 seconds. 29 active price feeds have it (SVR variants included): 27 on Polygon, such as BTC / USD, 1INCH / USD, CAD / USD and DAI / USD, and 2 on BNB Chain (BNB / USD). We measured the Polygon BTC/USD feed from 11:27 to 11:29 UTC on 7 November 2026, reading it every 2 seconds for 90 seconds. It updated three times, each update 33 seconds after the last. The price moved far less than the feed’s deviation threshold between rounds, so these were heartbeat updates, and they arrived 6 seconds after the configured value. A second 90 second window at 12:06 UTC showed the same 33 second gaps. Two windows on one feed are a small sample, but they fit the note in Chainlink’s data feeds overview that there may be a slight delay before the latest round gets on chain.
These are the most common threshold and heartbeat pairs:
| Threshold | Heartbeat | Feeds | Share |
|---|---|---|---|
| 0.5% | 24 hours | 772 | 49.8% |
| 0.05% | 24 hours | 135 | 8.7% |
| 0.3% | 24 hours | 113 | 7.3% |
| 0.1% | 24 hours | 60 | 3.9% |
| 0.05% | 1 hour | 55 | 3.5% |
| 2% | 24 hours | 54 | 3.5% |
| 1% | 24 hours | 46 | 3.0% |
| 0.0000001% | 24 hours | 35 | 2.3% |
Ethereum, Arbitrum and Base compared
| Ethereum (182 feeds) | Arbitrum (210) | Base (124) | |
|---|---|---|---|
| Median threshold | 0.5% | 0.5% | 0.5% |
| Most common threshold | 0.5% (63 feeds) | 0.5% (137) | 0.5% (85) |
| Next most common | 2% (50), 1% (26) | 0.05% (18), 0.3% (18) | 0.05% (10), 0.1% (10) |
| 24 hour heartbeat | 166 (91.2%) | 181 (86.2%) | 109 (87.9%) |
| 1 hour heartbeat | 12 (6.6%) | 16 (7.6%) | 11 (8.9%) |
| Shorter than 1 hour | none | 255 s x7, 1,755 s x4 | 20 minutes x3 |
| Between 1 and 24 hours | 23 h x3, 6 h x1 | 4 h x1, 6 h x1 | 4 h x1 |
Arbitrum’s short heartbeats have a documented cause. Chainlink’s changelog says that on or shortly after 29 April 2026 it lowered heartbeats and deviation thresholds on select Arbitrum feeds: APT/USD, BTC/USD, ETH/USD, LINK/USD, USDC/USD, USDT/USD, CAKE/USD, DAI/USD and USD1/USD. The data now shows ETH/USD and BTC/USD at 0.05% with a 1,755 second heartbeat, and several of the others at 255 seconds. The page gives no numbers. DAI/USD is on the changelog list but still has a 24 hour heartbeat in the data, and we do not know why.
Monad stands out among the other larger networks. Including SVR variants, its median threshold is 0.05% and its median heartbeat is 1 hour (103 feeds). BNB Chain and Polygon have a median of 0.3%, and OP and Avalanche 0.5%.
Outliers
The edges of the range, among active price feeds with SVR variants included:
- Tightest threshold: 0.0000001% on 40 feeds, mostly exchange rate feeds such as rETH / ETH on Base, rsETH / ETH on Ethereum and Scroll, agETH / ETH on Arbitrum, HBARx / HBAR on Hedera and slisBNB / BNB on BNB Chain.
- Tightest on a market feed: 0.005%, on USDC / USD and USDT / USD on Polygon, both with a 27 second heartbeat. Next come EUR / USD, CAD / USD, GBP / USD and DAI / USD on Polygon at 0.01%. The other 23 feeds at 0.01% are exchange rate feeds. In all, 49 feeds are listed below 0.01%, the 40 above among them.
- Widest threshold: 10% on MNT / USD on Arbitrum. Five feeds use 5%: LINK / ETH on Arbitrum and OP, STG / USD and TRUMP / USD on Ethereum, and XCU / USD on Avalanche.
- Shortest heartbeat: 27 seconds, on 29 feeds as described above.
- Longest heartbeat: 24 hours. A few Ethereum stablecoin feeds at 23 hours, such as USDC / USD, come close.
Risk categories
Chainlink’s data labels each entry with a category. Among the 1,834 price feeds:
| Category | Price feeds | Median threshold (active, no SVR) |
|---|---|---|
| low | 837 | 0.5% |
| custom | 477 | 0.1% |
| medium | 317 | 0.5% |
| high | 54 | 0.5% |
| new | 92 | 0.5% |
| deprecating | 52 | not in the settings population |
Five price feeds have no category in the data. Chainlink’s Selecting Quality Data Feeds page also defines a “very high” and an “unrated” tier, but neither appears as a value in the data on 7 November 2026. Custom feeds have the lowest median threshold, 0.1%. They include the exchange rate feeds, whose median is 0.05%. Every category has a 24 hour median heartbeat.
The category says something about how a feed is sourced and how risky its market is. It says nothing about update speed, so check the settings separately.
What this means if you consume a feed
- Set staleness limits per feed. Heartbeats run from 27 seconds to 24 hours, so one global limit is wrong for most of them. The stale price section of our feed guide shows the check.
- Read the settings from the reference data, not from a typical value. The median of 0.5% hides a range from 0.0000001% to 10%, and the Ethereum figures differ from those on Arbitrum and Base.
- Check the shutdown date before you integrate. 61 listed entries are already past it, and every entry on Botanix, Polygon zkEVM and Ronin is.
- Do not assume an SVR variant matches its base feed. We compared each active SVR variant with the active base feed of the same pair on the same chain: of 94 such pairs, 70 had identical settings and 24 differed. Of the 24, 10 are on Arbitrum, 6 on Monad, 4 on Ethereum, 3 on Base and 1 on BNB Chain (BTC / USD).
- Check which kind of feed you read. Exchange rate and calculated feeds count as price feeds in the data but are not market prices. The category and product subtype fields tell them apart.
The feeds our nodes report on
The counts above cover all of Chainlink, not the feeds we run. A Matrixed.Link node reports on a subset of them: 500+ Chainlink price feeds. The list, by network and pair, is on the feeds page.
Sources & References
Reference data downloaded and analysed on 7 November 2026 at 11:10 UTC; on-chain values read over public RPC endpoints the same day.
- Chainlink Documentation, Price Feed Addresses (the network list: 37 mainnets and 25 testnets)
- Chainlink Reference Data Directory, Ethereum mainnet feeds (one of the 37 files; threshold, heartbeat, product type and shutdown date per feed)
- Chainlink Documentation, Selecting Quality Data Feeds (risk categories, exchange rate feeds, shutdown policy)
- Chainlink Documentation, Data Feeds overview (the note on update delay)
- Chainlink Documentation, Deprecation of Data Feeds
- Chainlink Developer Changelog, Lower heartbeat and deviation thresholds on select Arbitrum Data Feeds
- Chainlink Documentation, Data Streams
- On-chain reads, 7 November 2026, 11:20 UTC (
decimals(),description()andlatestRoundData()on each proxy):- ETH / USD on Ethereum,
0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 - USDC / USD on Ethereum,
0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 - ETH / USD on Arbitrum,
0x639Fe6ab55C921f74e7fac1ee960C0B6293ba612 - EUR / USD on Base,
0xc91D87E81faB8f93699ECf7Ee9B44D11e1D53F0F - BTC / USD on Polygon,
0xc907E116054Ad103354f2D350FD2514433D57F6f
- ETH / USD on Ethereum,
- Polygon BTC / USD heartbeat check: 90 seconds from 11:27 UTC on 7 November 2026, read every 2 seconds.
Work with Matrixed.Link
Matrixed.Link operates Chainlink oracle infrastructure, validator nodes and full-stack blockchain infrastructure for protocols and institutions that need institutional-grade reliability. Official Chainlink node operator running Data Feeds, CRE, SVR and Proof of Reserve. Matrixed.Link works under the ISO/IEC 27001:2022 certificate of its parent company MatrixedLabs. AAA-rated provider on StakingRewards.
Contact Matrixed.Link to discuss Chainlink oracle infrastructure for your protocol.