Affiliated company Matrixed.Link: official Chainlink node operator running 500+ live price feeds
Company

Why We Built a DEX-Native Price Feed

The team at Matrixed.Link, our affiliate, has run oracle infrastructure since 2021. What that engine room taught us about price data shaped ML Data.

7 min read

Since 2021 the team at Matrixed.Link, our affiliate, has run blockchain infrastructure: validators, oracle nodes, more than 500 live price feeds in production. This site exists because of what that work looks like from the inside. This is the story of why we built ML Data.

The view from the engine room

A price feed looks simple from the outside: a number that updates. From the inside it is a process that has to survive the night. Venues go quiet, chains halt, a pool that carried half a market’s weight on Monday holds a fraction of it by Friday. Somebody has to notice, decide what the honest reading is, then keep the number defensible while all of that happens.

Years of running feeds teaches you one lesson above the rest: the number a contract receives is only as good as the measurement underneath it. Everything else, delivery, uptime, latency, matters, but it sits on top. If the measurement is weak, everything above it inherits the weakness.

The layer that was missing

Here is what surprised us. Price numbers are everywhere; the measurement itself rarely ships as a product. Ask a simple question about almost any published crypto price: which markets produced this number, at what weight, as of which moment? For most sources the answer is a methodology PDF at best, a shrug at worst.

Meanwhile the assets that DeFi actually runs on kept moving on-chain. Stablecoins that never list on a major venue. Staking tokens whose true market is three pools deep. Tokenized funds whose only continuous price forms in a single corridor. For these assets the on-chain pools are not an alternative data source: they are the market. Teams that needed those prices ended up building the same machinery again and again, each one alone: pool discovery, liquidity weighting, outlier filtering, staleness handling.

We were one of those teams. At some point the conclusion became hard to avoid: this layer should be built once, properly, in the open.

What we decided to build

ML Data is that layer as a product. It observes pools across every chain in our coverage, weighs each one by the liquidity it carries, filters readings that do not belong, then pins every result to a block. The catalog aims at completeness rather than headline assets: the pairs that are hard to price well are the reason the product exists.

One decision matters more than the rest: the composition is part of the product. Every feed page shows which pools stand behind the number, on which chains, at which weight. We publish the approach in full on the methodology page. A price you cannot interrogate is an opinion with good typography; we wanted to sell measurements.

The choices that follow from it

Building for people who run things changes the small decisions too.

Quiet markets are labeled as quiet. When a pair has not traded recently, its reading shows the block it came from plus how long ago that was, in plain sight, rather than dressing the number up as fresh. A desk can work with an honest label; it cannot work with a guess.

Thin books are described as thin. Some of our pairs trade in a couple of pools on one chain. The page says exactly that, because the size of a market is part of its price.

The tail gets the same care as the flagships. A pair with no search traffic and a small book still gets a reviewed page, a real composition, an honest story. Completeness is a feature for the people who need the whole catalog, not just its famous rows.

Where it runs today

The measurement layer is live: more than 500 pairs across more than 130 assets in the catalog, reviewed feed pages with live rates plus composition, five boards that read parity, ratios and cross rates sideways, an API that serves it all. The introduction post, Introducing ML Data, carries the full inventory.

We built the layer we kept wishing existed while running feeds for others. Now it is on the table, composition up, for anyone to read.

Frequently asked

Questions & answers

What does DEX-native mean?

A DEX-native price is computed from the state of decentralized exchange pools: reserves, depth, liquidity weight, pinned to a block. It reads the market itself rather than a venue's report of its trades, so anyone with a node can verify the inputs.

Why not just use exchange prices?

Centralized exchange prices work well for assets whose trading lives on those venues. For assets born in DeFi, stablecoins, staking tokens, tokenized funds, the on-chain pools are the primary market, so a price read anywhere else is secondhand. Many teams read both models side by side because they fail in different ways.

Can I verify the data myself?

Yes. Every reading names the pools behind it, their chains, their weights, the block it was observed at. The pools are public contracts: anyone with a node can check the reserves the price was computed from.

Get in touch

Ready for price data you can defend?

Whether you are a protocol pricing collateral, a risk team monitoring depegs, an asset manager marking a book or an exchange onboarding a data vendor, our team is ready to help.

Our affiliate Matrixed.Link is trusted by
ChainlinkEnjinPolygondRPC