The Graph (GRT) — the revision ledger

Generated 2026-09-02T19:49:34Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for The Graph: 8,096 observations · 39 distinct series · 5 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 19:35:01 · every one of the 8,096 rows carries a verify_url · 38 series refreshed in the last 24h (757 fresh rows). Nothing on this page is cached, estimated, or remembered.

What this page is. Data vendors restate history: a number they published for a date gets replaced later, silently, and everyone who stored the first answer either never notices or overwrites it. This estate keeps a machine detector over its daily snapshots for every cumulative-by-construction series, records the before-value beside the replacement, and serves the record at /v1/revisions. This page is the GRT view of that product: the live ledger for GRT — 7 backward revisions recorded, rendered with both values and both snapshot dates — the estate-wide feed as proof the detector works, the archive the detection runs over, and the exact commands to verify any of it without an account. It does not forecast, rank investment merit, or advise. Where a fact has a caveat, the caveat ships with the fact.

Provenance — where The Graph's archive comes from

5 source families feed this network's ledger. Every row they wrote carries its own source, as_of and verify_url; this table is the live rollup of that. The Graph publishes no first-party stats API of its own in this catalog — the market and protocol-fee families here are CoinGecko's series and DefiLlama's fees/protocol series for The Graph, with public Ethereum chain infrastructure (PublicNode RPC and Ethereum Blockscout endpoints for 0xc944e90c64b2c07662a292be6244bdf05cda44a7, plus Etherscan token-page reads) alongside.

SourceRows heldSeriesRows w/ verify_urlWindow (UTC)Sample origin
CoinGecko /coins/markets6,669246,6692026-08-09 17:15:20 → 2026-09-02 18:50:20sample origin ↗
DefiLlama /overview/fees1,05071,0502026-08-09 17:17:15 → 2026-09-02 18:58:01sample origin ↗
DefiLlama /protocols25922592026-08-22 13:18:55 → 2026-09-02 18:58:01sample origin ↗
evm_blockscout966962026-08-09 23:27:47 → 2026-09-02 12:37:02sample origin ↗
ethereum_rpc221222026-09-01 23:10:43 → 2026-09-02 19:35:01sample origin ↗

Revision ledger — 7 backward revision(s) recorded for GRT

Backward revisions are values upstream later replaced for a date this estate had already archived. The before-value is retained alongside the replacement — both snapshot dates, both numbers — which is what no overwriting vendor keeps. Every restatement recorded for GRT so far is the same underlying event class: the all-time protocol fees series (DefiLlama, observed in both the estate's first-party projection DL_FEES_ALLTIME_USD and the raw fees_alltime_usd series) was lowered for dates already in the archive. /v1/revisions?symbol=GRT cross-check passed: the served API reports 7 row(s), matching the deduped ledger count rendered on this page.

First detected (UTC)MetricSnapshotWasRestated in snapshotBecameΔKindProvenance
2026-09-02 01:15:01dl_fees_alltime_usd2026-08-311,424,3162026-09-011,423,345-0.068%backward_revisiondepin_first_party · origin ↗
2026-09-02 01:15:01fees_alltime_usd2026-08-311,424,3022026-09-011,423,345-0.067%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-01 23:34:07fees_alltime_usd2026-08-251,419,5582026-08-261,419,328-0.016%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-01 23:34:07fees_alltime_usd2026-08-261,419,3282026-08-271,419,152-0.012%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-01 23:33:32dl_fees_alltime_usd2026-08-261,419,3222026-08-271,419,152-0.012%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:33:32dl_fees_alltime_usd2026-08-201,415,0542026-08-211,414,119-0.066%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:33:32dl_fees_alltime_usd2026-08-251,419,5662026-08-261,419,322-0.017%backward_revisiondepin_first_party · origin ↗

What the detector watches for The Graph — the intersection, measured

The detector diffs every daily snapshot of every cumulative-by-construction series. Below is the live intersection of the estate detector's cumulative watchlist — imported directly from propintel/revision_ledger.py (75 declared names, so this page can never drift from the detector) — with what the daily archive holds for GRT. The fees series here is the one whose diffs produced every revision in the table above.

Watchlist series heldRowsDaysSource
DL_FEES_ALLTIME_USD2424depin_first_party
contract_gas_used_total1010evm_blockscout
contract_transactions_total1010evm_blockscout
fees_alltime_usd1010DefiLlama /overview/fees
token_transfers_total1111evm_blockscout

The trail behind the ledger — DL_FEES_ALLTIME_USD, end to end

This is the actual counter trail the detector diffed for GRT, rendered live from the archive: all-time protocol fees for The Graph (USD), a series that cannot decrease unless upstream rewrote history. Backward moves are marked inline — they are the ledger above. The raw runs are the evidence; the reader does not have to trust the summary.

Snapshot dateAll-time fees (USD)MoveSource
2026-08-091,405,997depin_first_party
2026-08-101,406,222depin_first_party
2026-08-111,406,384depin_first_party
2026-08-121,406,401depin_first_party
2026-08-131,406,857depin_first_party
2026-08-141,407,082depin_first_party
2026-08-151,412,645depin_first_party
2026-08-161,412,626▼ backwarddepin_first_party
2026-08-171,412,694depin_first_party
2026-08-181,413,030depin_first_party
2026-08-191,413,564depin_first_party
2026-08-201,415,054depin_first_party
2026-08-211,414,119▼ backwarddepin_first_party
2026-08-221,415,112depin_first_party
2026-08-231,417,472depin_first_party
2026-08-241,418,109depin_first_party
2026-08-251,419,566depin_first_party
2026-08-261,419,322▼ backwarddepin_first_party
2026-08-271,419,152▼ backwarddepin_first_party
2026-08-281,419,484depin_first_party
2026-08-291,419,703depin_first_party
2026-08-301,420,345depin_first_party
2026-08-311,424,316depin_first_party
2026-09-011,423,345▼ backwarddepin_first_party

Reading the trail. The counter climbs day over day — then upstream lowers already-published dates. The marked rows are where the value the estate had archived for a date stopped agreeing with what the source now serves, which is the exact definition of the ledger entries above. The superseded values stay in the archive; nothing was overwritten on this side.

Gauges that moved backward — deliberately NOT revisions

These series fall outside the detector's cumulative-by-construction class (NOT_TRULY_CUMULATIVE and plain gauges in propintel/revision_ledger.py): a drop there is a real population or market change, not upstream rewriting history. Publishing them as "revisions" would be exactly the fake-metric behaviour this product exists to eliminate.

Series (gauge / revaluation)Backward moves observedSnapshot rows held
REV_30D1527
DL_FEES_30D_USD1324
DL_FEES_7D_USD1324
REV_24H1227
DL_FEES_24H_USD1124
holders_count1123
HOLDERS1024
fees_30d_usd917
price_usd917
fully_diluted_valuation_usd817
market_cap_usd817
fees_24h_usd717
fees_7d_usd717
top_holder_balance710

Same-timestamp conflicting values on record for GRT: none

The task-level conflict check, run live: any (metric, timestamp) family where this estate recorded two or more different values. The query ran at generation and returned 0 groups in both depin_onchain and depin_daily — every (metric, timestamp) pair the estate holds for GRT carries exactly one value. Zero here is the live query result, not a gap; the archive kept every write it made, and none of them disagree. The restatements in the ledger are cross-date rewrites (a later snapshot replacing an earlier one for the same date family), which is the other, different thing this page exists to record.

The ledger, live — every restatement recorded estate-wide (18 deduped events)

Deduped on revision identity exactly as /v1/revisions dedupes it. This is the same feed a subscriber polls; it is rendered live from ClickHouse at generation, not copied from a snapshot. Each row is an upstream source replacing the value of a (network, metric, date) it had already published — after this estate recorded the original. The superseded value is retained, never deleted; that retention is the only reason a rewrite is detectable, and it is the part every overwriting vendor discards.

First detectedNetworkMetricWasBecameΔKindProvenance
2026-09-02 01:15:01GRTdl_fees_alltime_usd1,424,3161,423,345-0.068%backward_revisiondepin_first_party · origin ↗
2026-09-02 01:15:01GRTfees_alltime_usd1,424,3021,423,345-0.067%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-02 01:15:01OVPPtoken_transfers_total1,356,7491,354,903-0.136%backward_revisionevm_blockscout · origin ↗
2026-09-01 23:34:07ARblocks1,986,2201,702,204-14.299%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:34:07ARblocks1,980,1161,702,204-14.035%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:34:07ARblocks1,988,9301,702,206-14.416%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:34:07ARblocks1,982,1761,702,204-14.124%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:34:07AUKItoken_transfers_total1,230,1671,228,860-0.106%backward_revisionevm_blockscout · origin ↗
2026-09-01 23:34:07EIGENfees_alltime_usd161,955,683.53161,932,203.53-0.014%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-01 23:34:07GRTfees_alltime_usd1,419,3281,419,152-0.012%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-01 23:34:07GRTfees_alltime_usd1,419,5581,419,328-0.016%backward_revisionDefiLlama /overview/fees · origin ↗
2026-09-01 23:34:07R1token_transfers_total194,390194,337-0.027%backward_revisionevm_blockscout · origin ↗
2026-09-01 23:34:07SOGNItoken_transfers_total1,177,2191,174,145-0.261%backward_revisionevm_blockscout · origin ↗
2026-09-01 23:33:32GRTdl_fees_alltime_usd1,419,3221,419,152-0.012%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:33:32GRTdl_fees_alltime_usd1,415,0541,414,119-0.066%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:33:32GRTdl_fees_alltime_usd1,419,5661,419,322-0.017%backward_revisiondepin_first_party · origin ↗
2026-09-01 23:33:32STORJdisqualified_nodes80,23879,569-0.834%backward_revisiondepin_first_party · origin ↗
2026-08-13 15:35:15FLOCKdl_fees_alltime_usd1,170,614.61,170,544.16-0.006%sub_noisedefillama_fees · origin ↗

How detection works — and what it cannot see

The detector (propintel/revision_ledger.py) diffs every daily snapshot this estate holds of every cumulative-by-construction series — counters that cannot decrease unless upstream rewrote them (block heights, transaction and transfer counters, lifetime fees). A row enters default.depin_revision_ledger iff two snapshots disagree for an already-observed date; zero human judgement. Resolution rule: latest observation wins for current-state reads, the superseded value is retained, never deleted. Population gauges (provider sets, node counts, prices, capacity) legitimately move both ways and are deliberately excluded — a drop there is a real population change, not a rewrite; the gauge table on this page is the worked example. Honest boundary: this catches value-history rewrites ex-post; identical-schema semantic drift with plausible values is what the hash-pinned derivation_replay layer is for. The detector's full classification is inspectable at /v1/revisions and frozen daily at /revision-ledger/REVISIONS_20260902.json.

The snapshot archive the detection runs over

GRT's slice of depin_daily: 713 rows over 27 snapshot days (2026-08-06 → 2026-09-01), from 8 source families. Each snapshot is a same-day capture of every series the collectors touched; the detector diffs consecutive snapshots of cumulative series across this window. This is the substrate the ledger above is measured over — not an assumption, a measured archive.

Estate grades for GRT (graded 2026-08-20 13:54:15.000)

Served by /v1/network/GRT — the same grades a paying agent receives. Scores are the engines' own 0–100 outputs, published exactly as the engines emitted them, unflattering parts included.

EngineGradeScore
Node qualityA100
Dilution riskMINIMAL89.3861
Bot riskC85
Dev velocityA100
RevenueF0
Data coverageD10
OverallB57.1272

Verify any cell yourself — the exact commands

No account, no key, no trust required. Commands 1–2 hit this estate's public API (the same rows this page queried — every row carries source / as_of / verify_url); commands 3–4 hit the upstream families the network-side rows came from; command 5 is the estate's graded network row; command 6 is the frozen daily snapshot of the ledger. One polite call per endpoint, no hammering.

# 1) The served revision feed for GRT — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=GRT" | python3 -m json.tool
# 2) The estate-wide feed (every network, both sides of every diff):
curl -s "https://kairossignal.com/v1/revisions" | python3 -m json.tool | head -80
# 3) DefiLlama fees summary for The Graph (the upstream that rewrote history here):
curl -s -H "User-Agent: kairos-check" "https://api.llama.fi/summary/fees/the-graph" | python3 -m json.tool | head -40
# 4) Ethereum Blockscout address counters for the GRT token contract:
curl -s -H "User-Agent: kairos-check" "https://eth.blockscout.com/api/v2/addresses/0xc944e90c64b2c07662a292be6244bdf05cda44a7/counters" | python3 -m json.tool | head -30
# 5) This estate's public API row for GRT (grades + provenance):
curl -s "https://kairossignal.com/v1/network/GRT" | python3 -m json.tool | head -60
# 6) The public daily snapshot of the ledger (frozen copy):
curl -s -o /dev/null -w "%{http_code}\n" "https://kairossignal.com/revision-ledger/REVISIONS_20260902.json"
Get this network as a data feed. Every number here is one API call away, with the same provenance fields — including the revision feed itself. Pricing · Self-register for free $5 API credits — no card, no human · API reference. Machine-readable row for this network: /v1/network/GRT.

Method & honesty notes. All counts are queries against the live ledger at generation time, not restamped copy — this page is regenerated by gen_revision_page_grt.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The GRT revision count is the live deduped result of SELECT count() FROM (… GROUP BY revision identity) FROM default.depin_revision_ledger WHERE network='GRT' — the same dedup the served API applies (12 raw detector rows dedupe to these 7 events because the detector re-recorded identical revisions across runs); the page refuses to ship if the served /v1/revisions?symbol=GRT disagrees with it. The 18 estate-wide events shown are deduped on revision identity (deterministic hash of network, metric, current_date, prior_date) exactly as the API dedupes them; detected_at is the first detection and never moves. Series absent from a section are absent, not zero. The same-stamp conflict check is the honest live answer: 0 groups in depin_onchain and 0 in depin_daily. Upstream probes ran serially by this generator immediately before rendering: CoinGecko GRT page (browser-verified origin; 403 here is its bot wall) HTTP 403; DefiLlama fees summary for The Graph (the fees upstream — the origin of every revision on this page) HTTP 200; DefiLlama protocol page for The Graph HTTP 403; Ethereum PublicNode RPC (the ethereum_rpc block/supply upstream) HTTP 200; Ethereum Blockscout address counters for the GRT token contract (the evm_blockscout counters' origin) HTTP 200; Etherscan token page for GRT (the ethereum_rpc token-row origin) HTTP 200; estate /v1/revisions?symbol=GRT HTTP 200; estate /v1/network/GRT HTTP 200.

Machine-generated 2026-09-02T19:49:34Z by propintel/gen_revision_page_grt.py · source of truth: default.depin_catalog, default.depin_onchain, default.depin_daily, default.depin_revision_ledger (ClickHouse, live at generation) · Kairos Signal — provenance or silence.