Provenance you can check yourself

Our DePIN dataset is built to be irresistible because it is checkable. Every value names the source it was read from and links straight to it. Every daily batch is Merkle-rooted and timestamped to Bitcoin. You do not have to trust us — you can verify.

180+DePIN networks live
700+Live data series
1,369Provenance-stamped values
228Networks in today's batch
385Networks cataloged

Counts measured live from our datalake on 2026-08-09 and growing. Numbers on this page are what we can show and defend, never rounded up past what we measured.

Provenance on every field

The atom of our dataset is not a number — it is a number with its paperwork. Every value we serve carries the same seven-field shape.

Row shape JSON
{
  "symbol":     "AKT",
  "metric":     "price_usd",
  "value":      0.506855,
  "unit":       "usd",
  "source":     "CoinGecko /coins/markets",
  "verify_url": "https://www.coingecko.com/en/coins/akash-network",
  "as_of":      "2026-08-09T17:15:20Z"
}
What each field is for contract
symbol / metric — what this measures, keyed so agents can join it.
value / unit — the measured number and its unit. Never rounded up past source.
source — the exact upstream feed the value was read from.
verify_url — a link you can open right now to check the value at that source.
as_of — the timestamp the value was true. Stale is shown, never hidden.

This is a real row from today's batch. The verify_url resolves to the source page for Akash's market data — open it and compare.

Where each number comes from

We do not pretend everything is first-party. Each series is labelled with the tier it came from. The largest tier is read directly from the network's own API or chain; the rest are named market and protocol aggregators.

Provenance tiers — live series by source measured 2026-08-09
Source tier Live series What it is
depin_first_party595Read straight from the network's own API / chain — verify_url points to the network itself.
coingecko58Market facts: price, market cap, circulating & total supply.
defillama51Protocol TVL plus fees and revenue.
github14Developer-activity telemetry.
akash_console13Akash provider / lease telemetry.
weatherxm_api10WeatherXM station telemetry.
flux_api7Flux node telemetry.

Every value keeps its tier label all the way to your query, so an integration always knows whether a number came from the network itself or from an aggregator.

verify_url: check it at the source

Most data vendors ask you to trust a dashboard. We do the opposite: each value hands you the upstream link it was read from, so you can confirm it without us in the loop.

First-party tier
verify_url → the network's own API / block explorer
For the 595 first-party series, the link points at the network itself — a provider endpoint, a station API, a chain explorer. The number originated where the link goes.
Market & protocol tiers
verify_url → the named aggregator's page for that coin
For market and fees data, the link points at the exact CoinGecko or DefiLlama page we read. You see the same value at the same source — no repackaging in the dark.
Point-in-time
as_of = when the value was true
Live sources move. The as_of timestamp pins each value to the moment it was read, so a check is a like-for-like comparison — and staleness is surfaced, not buried.
Why it is the moat
checkable ⇒ credible ⇒ reusable
A number you can independently confirm is a number an autonomous agent can act on. Verifiability is the product, not a footnote.

The daily Bitcoin anchor

verify_url proves a value is real at its source. The Bitcoin anchor proves we did not quietly change it afterwards. Once a day we take the whole batch, build a Merkle tree, and timestamp its root to Bitcoin through OpenTimestamps — free, no token, no spend.

01 · Row

Each value

symbol · metric · value · unit · source · verify_url · as_of

02 · Leaf

SHA-256

Each row is hashed into a Merkle leaf.

03 · Root

Merkle root

All leaves fold into one 32-byte root for the day.

04 · OTS

4 calendars

The root is committed to four independent OpenTimestamps calendars.

05 · Bitcoin

Block timestamp

The calendars' commitment settles into a Bitcoin block.

Batch date
2026-08-09
rooted 20:38 UTC
Values rooted
1,369
across 228 networks
Calendars
4
independent OTS servers
Bitcoin status
PENDING
confirming on-chain
merkle_root 9cd92fde048419f2187e38d82c46797d19e8dd3909791a370a1646b6987318b7
How the root is built deterministic
leaf   = sha256( "symbol\tmetric\tvalue\tunit\tsource\tverify_url\tas_of" )
root   = merkle( sort(all rows) )   // odd node duplicates last
stamp  = ots stamp root             // submitted to 4 public calendars
How anyone verifies it zero trust in us
1. pull the batch you were served.
2. sha256 each row, Merkle-root them.
3. confirm it equals the published root.
4. ots verify batch.root.ots   // checks the root against Bitcoin
🔎

Honest scope — what the anchor proves, and what it does not

It proves integrity and point-in-time: that this exact set of 1,369 values existed on 2026-08-09 and has not been altered since. Recompute the root, run ots verify, and the timestamp settles against the Bitcoin blockchain — no trust in Kairos required.

It does not prove that a source value is correct — that is what the per-value verify_url is for, upstream — and it says nothing about trading performance, returns, or signal accuracy. This is a data-integrity guarantee on a data product, not a track-record claim.

Today's root is submitted to four calendars and is pending Bitcoin confirmation. Calendars batch submissions and commit to a Bitcoin transaction on their cycle; once that transaction is mined, ots upgrade completes the proof and ots verify checks it against the chain. A public per-value inclusion-proof endpoint ships with the API.

The not-covered map is a feature

When a network has no free or first-party feed, we do not invent a number to fill the gap. We keep the network in the catalog and mark the gap, so you always know the difference between "we measured this" and "no public feed exists".

🗺️

385 cataloged

The catalog spans 385 network entries across compute, storage, sensor, wireless, AI, energy and mobility — the map of the territory, not just the covered part.

🔌

Public feed, flagged

Each catalog entry records whether a public stats API exists and its URL. As of today 30 entries carry a public stats-API URL; the rest are cataloged with the gap shown, not hidden.

🚫

No invented fills

Provenance-or-silence. If we cannot read a value from a real source, the field stays empty and labelled — never back-filled with a guess.

Built for machines and humans

The dataset is delivered through a structured API with the same provenance shape on every field — designed for AI agents, MCP clients, and analysts who need to cite their sources.

Endpoints
/v1/networks /v1/network/<SYM> /v1/supply /v1/market /v1/revenue /v1/provenance
Every response row carries symbol, metric, value, unit, source, verify_url and as_of. API access is granted on approval while we finish exposing the gateway.
Status — straight talk
public endpoint: on approval verify endpoint: coming
The dataset and the Bitcoin anchor are real and running today. The public, self-serve query endpoint and the per-value inclusion-proof endpoint are being brought online — request access and we will onboard you.

See the coverage and depth, or read how we verify a single number end to end.

Explore the data product How we verify a number Request API access