Generated 2026-09-02T18:16:48Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for io.net: 26,526 observations · 134 distinct series · 5 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 18:00:02 · 26,526/26,526 rows carry a verify_url · 111 series refreshed in the last 24h (2,411 fresh rows). Nothing on this page is cached, estimated, or remembered.
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 largest family is the io.net explorer API itself —
first-party telemetry from the network's own endpoint
(https://api.io.solutions/v1/io-explorer/network/inventory-aggregated).
| Source | Rows held | Series | Rows w/ verify_url | Window (UTC) | Sample origin |
|---|---|---|---|---|---|
| first_party_api | 17,786 | 97 | 17,786 | 2026-08-09 23:28:06 → 2026-09-02 17:34:01 | sample origin ↗ |
| CoinGecko /coins/markets | 7,002 | 24 | 7,002 | 2026-08-09 17:15:20 → 2026-09-02 17:49:30 | sample origin ↗ |
| io_explorer | 1,458 | 3 | 1,458 | 2026-08-12 19:27:37 → 2026-09-02 17:47:02 | sample origin ↗ |
| solana_rpc | 166 | 4 | 166 | 2026-08-09 23:12:54 → 2026-09-02 18:00:02 | sample origin ↗ |
| github | 114 | 6 | 114 | 2026-08-09 23:47:26 → 2026-09-01 18:29:02 | sample origin ↗ |
Backward revisions are values upstream later replaced for a date this estate had already archived. The before-value is retained alongside the replacement — both timestamps, both numbers — which is what no overwriting vendor keeps.
The ledger query ran during generation and returned 0 rows for IO: every cumulative-by-construction series held for io.net has been monotonic across all 27 daily snapshots in the archive (2026-08-06 → 2026-09-01). Zero here is the live query result, not a gap — the ledger itself is at /v1/revisions?symbol=IO (the same query this page ran, served live), and a restatement would appear on this page the day the detector records one.
These are the series in the daily archive the revision detector guards for io.net — a decrease in any of them can only be a history rewrite, so each is diffed snapshot-to-snapshot on every detector run. "days" counts the daily snapshots in which the series appears.
| Series | Snapshot rows held | Days |
|---|---|---|
compute_hours_served | 27 | 27/27 |
gpu_total | 27 | 27/27 |
inferences_total | 27 | 27/27 |
inference_cost_total | 27 | 27/27 |
total_earnings | 27 | 27/27 |
onchain_total_supply | 24 | 24/27 |
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 detected | Network | Metric | Was | Became | Δ | Kind | Provenance |
|---|---|---|---|---|---|---|---|
| 2026-09-02 01:15:01 | GRT | dl_fees_alltime_usd | 1,424,316 | 1,423,345 | -0.068% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-02 01:15:01 | GRT | fees_alltime_usd | 1,424,302 | 1,423,345 | -0.067% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-02 01:15:01 | OVPP | token_transfers_total | 1,356,749 | 1,354,903 | -0.136% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-01 23:34:07 | AR | blocks | 1,986,220 | 1,702,204 | -14.299% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:34:07 | AR | blocks | 1,980,116 | 1,702,204 | -14.035% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:34:07 | AR | blocks | 1,988,930 | 1,702,206 | -14.416% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:34:07 | AR | blocks | 1,982,176 | 1,702,204 | -14.124% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:34:07 | AUKI | token_transfers_total | 1,230,167 | 1,228,860 | -0.106% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-01 23:34:07 | EIGEN | fees_alltime_usd | 161,955,683.53 | 161,932,203.53 | -0.014% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-01 23:34:07 | GRT | fees_alltime_usd | 1,419,328 | 1,419,152 | -0.012% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-01 23:34:07 | GRT | fees_alltime_usd | 1,419,558 | 1,419,328 | -0.016% | backward_revision | DefiLlama /overview/fees · origin ↗ |
| 2026-09-01 23:34:07 | R1 | token_transfers_total | 194,390 | 194,337 | -0.027% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-01 23:34:07 | SOGNI | token_transfers_total | 1,177,219 | 1,174,145 | -0.261% | backward_revision | evm_blockscout · origin ↗ |
| 2026-09-01 23:33:32 | GRT | dl_fees_alltime_usd | 1,419,322 | 1,419,152 | -0.012% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:33:32 | GRT | dl_fees_alltime_usd | 1,415,054 | 1,414,119 | -0.066% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:33:32 | GRT | dl_fees_alltime_usd | 1,419,566 | 1,419,322 | -0.017% | backward_revision | depin_first_party · origin ↗ |
| 2026-09-01 23:33:32 | STORJ | disqualified_nodes | 80,238 | 79,569 | -0.834% | backward_revision | depin_first_party · origin ↗ |
| 2026-08-13 15:35:15 | FLOCK | dl_fees_alltime_usd | 1,170,614.6 | 1,170,544.16 | -0.006% | sub_noise | defillama_fees · origin ↗ |
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 (alltime fees, token transfers,
block heights, node disqualifications). 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
(node counts, TVL, prices) legitimately move both ways and are deliberately excluded —
a drop there is a real population change, not a rewrite. 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, including the AR case below, is inspectable at
/v1/revisions and frozen daily at
/revision-ledger/REVISIONS_20260902.json.
Served by /v1/network/IO — 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.
| Engine | Grade | Score |
|---|---|---|
| Node quality | C | 51.645 |
| Dilution risk | LOW | 79.077 |
| Bot risk | F | 55 |
| Dev velocity | F | 0 |
| Revenue | F | 0 |
| Data coverage | A | 100 |
| Overall | C | 46.8122 |
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); command 3 hits io.net's own explorer endpoint, the first-party source most of the archive came from; command 4 is the estate's graded network row; command 5 is the frozen daily snapshot of the ledger. One polite call per endpoint, no hammering.
# 1) The served revision feed for IO — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=IO" | 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) io.net's own explorer API (the first-party endpoint 17,786 rows came from):
curl -s -H "User-Agent: kairos-check" "https://api.io.solutions/v1/io-explorer/network/inventory-aggregated" | python3 -m json.tool | head -40
# 4) This estate's public API row for IO (grades + provenance):
curl -s "https://kairossignal.com/v1/network/IO" | python3 -m json.tool | head -60
# 5) 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"
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_io.py and the hourly claim_drift_check.py run
grades its claims against the live API like every other published surface. The IO revision
count is the live result of
SELECT count() FROM default.depin_revision_ledger WHERE network='IO'; the page
refuses to ship if the served /v1/revisions?symbol=IO 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 ledger for IO is genuinely empty today, and this
page says so instead of inventing restatements. Upstream probes ran serially by this
generator immediately before rendering: io.net explorer inventory API (first-party) HTTP 200; estate /v1/revisions?symbol=IO HTTP 200; estate /v1/network/IO HTTP 200.
propintel/gen_revision_page_io.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.