Generated 2026-09-02T18:43:46Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for Golem: 9,975 observations · 37 distinct series · 4 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 18:34:01 · every one of the 9,975 rows carries a verify_url · 37 series refreshed in the last 24h (865 fresh rows). Nothing on this page is cached, estimated, or remembered.
4 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 first-party family is Golem's own public stats service (https://api2.stats.golem.network/v2/network/online/stats and https://api2.stats.golem.network/v1/network/computing) — telemetry from the network itself, with the CoinGecko market reference and the golemfactory GitHub activity series alongside.
| Source | Rows held | Series | Rows w/ verify_url | Window (UTC) | Sample origin |
|---|---|---|---|---|---|
| CoinGecko /coins/markets | 6,639 | 23 | 6,639 | 2026-08-09 17:15:20 → 2026-09-02 17:49:30 | sample origin ↗ |
| first_party_api | 2,559 | 5 | 2,559 | 2026-08-09 23:28:06 → 2026-09-02 18:34:01 | sample origin ↗ |
| golem_stats_util | 657 | 3 | 657 | 2026-08-24 19:59:16 → 2026-09-02 18:29:02 | sample origin ↗ |
| github | 120 | 6 | 120 | 2026-08-09 23:47:26 → 2026-09-02 18:29:01 | sample origin ↗ |
The ledger query ran during generation and returned 0 rows for GLM — and for Golem the structural reason is on this page, measured live: the detector only files cumulative-by-construction series (counters that cannot decrease unless upstream rewrote them), and the daily archive this estate holds for GLM — 687 rows over 27 snapshots (2026-08-06 → 2026-09-01) — contains no series of that class. Every series held is a gauge: provider population, compute capacity, utilisation, market data. A gauge cannot produce a history-rewrite event; it can only move. Zero here is the live query result plus the structural reason, not a gap — the ledger itself is at /v1/revisions?symbol=GLM (the same query this page ran, served live), and a restatement would appear on this page the day the detector records one. /v1/revisions?symbol=GLM cross-check passed: the served API reports 0 row(s), matching the ledger count rendered on this page.
The detector diffs every daily snapshot of every cumulative-by-construction series. Below is the live intersection of the estate's cumulative watchlist with what the daily archive holds for GLM. It is empty: Golem's public telemetry is capacity and population telemetry, not counters. Where a sibling network (AKT) shows a BLOCKS restatement, GLM structurally cannot produce one — its upstream publishes no cumulative counter this estate snapshots daily. That is the honest answer to "where are GLM's revisions": there is nothing for the detector to diff.
Live query result: 0 watchlist series held for GLM. The intersection query ran during generation and returned an empty set — none of the 25 cumulative-by-construction metric families the detector watches appear in GLM's daily archive. This is the structural zero behind the ledger count above, published as the query found it.
These series fall outside the detector's cumulative-by-construction class (NOT_TRULY_CUMULATIVE 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 observed | Snapshot rows held |
|---|---|---|
CORES | 9 | 27 |
UTILIZATION | 9 | 27 |
cores | 9 | 24 |
storage_gb | 9 | 24 |
MEMORY_GIB | 8 | 27 |
STORAGE_GB | 8 | 27 |
THREADS | 8 | 27 |
memory_gb | 8 | 24 |
COMPUTING_NOW | 7 | 27 |
PROVIDERS_TESTNET | 7 | 27 |
fully_diluted_valuation_usd | 6 | 17 |
market_cap_usd | 6 | 17 |
price_change_24h_pct | 6 | 11 |
price_change_7d_pct | 6 | 11 |
The sharpest GLM case: PROVIDERS_ONLINE — the live provider population from Golem's own stats service — oscillates across the archive as providers come and go. A naive monotonicity detector would file every drop as a restatement; the detector correctly classifies it as a population gauge. The full trail below, both spellings of what the archive retained, is the worked example.
| Snapshot date | PROVIDERS_ONLINE value | Source |
|---|---|---|
| 2026-08-06 | 216 | depin_first_party |
| 2026-08-07 | 248 | depin_first_party |
| 2026-08-08 | 248 | depin_first_party |
| 2026-08-09 | 277 | depin_first_party |
| 2026-08-10 | 340 | depin_first_party |
| 2026-08-11 | 350 | depin_first_party |
| 2026-08-12 | 386 | depin_first_party |
| 2026-08-13 | 377 | depin_first_party |
| 2026-08-14 | 400 | depin_first_party |
| 2026-08-15 | 439 | depin_first_party |
| 2026-08-16 | 455 | depin_first_party |
| 2026-08-17 | 457 | depin_first_party |
| 2026-08-18 | 488 | depin_first_party |
| 2026-08-19 | 492 | depin_first_party |
| 2026-08-20 | 495 | depin_first_party |
| 2026-08-21 | 533 | depin_first_party |
| 2026-08-22 | 717 | depin_first_party |
| 2026-08-23 | 666 | depin_first_party |
| 2026-08-24 | 962 | depin_first_party |
| 2026-08-25 | 1,054 | depin_first_party |
| 2026-08-26 | 826 | depin_first_party |
| 2026-08-27 | 965 | depin_first_party |
| 2026-08-28 | 574 | depin_first_party |
| 2026-08-29 | 581 | depin_first_party |
| 2026-08-30 | 613 | depin_first_party |
| 2026-08-31 | 648 | depin_first_party |
| 2026-09-01 | 772 | depin_first_party |
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 GLM 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.
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 (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 PROVIDERS_ONLINE case 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.
Served by /v1/network/GLM — 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 | F | 0 |
| Dilution risk | MINIMAL | 90 |
| Bot risk | B | 90 |
| Dev velocity | F | 0 |
| Revenue | F | 0 |
| Data coverage | D | 20 |
| Overall | F | 34.5 |
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 Golem's own stats service, the first-party source most network-side rows 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 GLM — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=GLM" | 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) Golem's own stats service (the first-party family most rows came from):
curl -s -H "User-Agent: kairos-check" "https://api2.stats.golem.network/v2/network/online/stats" | python3 -m json.tool
# 4) This estate's public API row for GLM (grades + provenance):
curl -s "https://kairossignal.com/v1/network/GLM" | 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_glm.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The GLM revision count is the live result of SELECT count() FROM default.depin_revision_ledger WHERE network='GLM'; the page refuses to ship if the served /v1/revisions?symbol=GLM 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 daily-snapshot ledger for GLM is genuinely empty today — because the archive holds no cumulative-class series for Golem at all, a structural fact measured live in the watchlist-intersection query above — and this page says so instead of inventing restatements. The same-stamp conflict check is likewise the honest live answer: 0 groups in both tables. Upstream probes ran serially by this generator immediately before rendering: Golem stats /v2/network/online/stats (first-party upstream) HTTP 200; Golem stats /v1/network/computing (first-party upstream) HTTP 200; estate /v1/revisions?symbol=GLM HTTP 200; estate /v1/network/GLM HTTP 200; CoinGecko golem page (browser-verified origin; 403 here is its bot wall) HTTP 403.
propintel/gen_revision_page_glm.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.