Generated 2026-09-02T20:07:51Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for Mysterium: 7,961 observations · 39 distinct series · 3 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 19:49:20 · every one of the 7,961 rows carries a verify_url · 31 series refreshed in the last 24h (698 fresh rows). Nothing on this page is cached, estimated, or remembered.
3 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. MYST (the catalog name here is Mysterium, category other, chains binance-smart-chain / ethereum / polygon-pos) publishes a first-party stats API — discovery.mysterium.network — which this estate collects directly (first_party_api: countries covered, total nodes, proposal counts by service type), alongside this estate's own depin_first_party collectors (ACTIVE_PROVIDERS, COUNTRIES, per-country node counts), CoinGecko's market series, and the GitHub dev-velocity family (mysteriumnetwork/node and the org).
| Source | Rows held | Series | Rows w/ verify_url | Window (UTC) | Sample origin |
|---|---|---|---|---|---|
| CoinGecko /coins/markets | 6,685 | 23 | 6,685 | 2026-08-09 17:15:20 → 2026-09-02 19:49:20 | sample origin ↗ |
| first_party_api | 1,156 | 10 | 1,156 | 2026-08-09 23:28:06 → 2026-09-02 19:34:01 | sample origin ↗ |
| github | 120 | 6 | 120 | 2026-08-09 23:42:07 → 2026-09-02 18:29:01 | sample origin ↗ |
The ledger query ran during generation and returned 0 rows for MYST. Zero here is the live query result, not a gap — the ledger itself is at /v1/revisions?symbol=MYST (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=MYST cross-check passed: the served API reports 0 row(s), matching the ledger count rendered on this page.
Why zero is the interesting answer. The detector does not skip MYST — the archive it watches is fully enumerated below. The live intersection of the detector's cumulative-by-construction watchlist with MYST's daily archive is empty: every series this estate holds for Mysterium is a population gauge or a market-revaluation class (active provider counts, country counts, node counts per country, market cap, price, supply), which the detector excludes by construction — a drop there is a real network or market change, not upstream rewriting history. The exclusion is not an assumption: every MYST series with backward movement in the archive is rendered raw further down this page, exactly as measured. Publishing an empty ledger as a live query result — instead of padding it with gauge noise — is the same retention discipline the ledger exists to sell.
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 MYST.
Live query result: 0 watchlist series held for MYST. The intersection query ran during generation and returned an empty set — none of the 75 cumulative-by-construction metric families the detector watches appear in MYST's daily archive. Mysterium's telemetry in this estate is population and market classes, not lifetime counters. This is the structural zero behind the ledger count above, published as the query found it.
These are the actual trails the detector's construction excludes from revision semantics for MYST, rendered live from the archive so the two-way movement is visible raw. Each is a population series: providers go on- and off-line, countries enter and leave the measured set. Neither collector is a lifetime counter, so neither can witness an upstream history rewrite — which is exactly why the ledger above is empty. The raw runs are the evidence; the reader does not have to trust the summary.
COUNTRIES — countries with active Mysterium presence, captured by this estate's depin_first_party collector across all 27 snapshot days:
| Snapshot date | Countries | Source |
|---|---|---|
| 2026-08-06 | 130 | depin_first_party |
| 2026-08-07 | 129 | depin_first_party |
| 2026-08-08 | 129 | depin_first_party |
| 2026-08-09 | 130 | depin_first_party |
| 2026-08-10 | 129 | depin_first_party |
| 2026-08-11 | 128 | depin_first_party |
| 2026-08-12 | 129 | depin_first_party |
| 2026-08-13 | 129 | depin_first_party |
| 2026-08-14 | 130 | depin_first_party |
| 2026-08-15 | 127 | depin_first_party |
| 2026-08-16 | 128 | depin_first_party |
| 2026-08-17 | 129 | depin_first_party |
| 2026-08-18 | 130 | depin_first_party |
| 2026-08-19 | 126 | depin_first_party |
| 2026-08-20 | 126 | depin_first_party |
| 2026-08-21 | 129 | depin_first_party |
| 2026-08-22 | 124 | depin_first_party |
| 2026-08-23 | 126 | depin_first_party |
| 2026-08-24 | 129 | depin_first_party |
| 2026-08-25 | 128 | depin_first_party |
| 2026-08-26 | 128 | depin_first_party |
| 2026-08-27 | 125 | depin_first_party |
| 2026-08-28 | 129 | depin_first_party |
| 2026-08-29 | 127 | depin_first_party |
| 2026-08-30 | 128 | depin_first_party |
| 2026-08-31 | 127 | depin_first_party |
| 2026-09-01 | 127 | depin_first_party |
countries_covered — the same quantity, independently captured from Mysterium's own discovery API (first_party_api) — 24 snapshot days, and on every day the two families overlap the two measurements are rendered side by side below:
| Snapshot date | Countries covered (discovery API) | Source |
|---|---|---|
| 2026-08-09 | 132 | first_party_api |
| 2026-08-10 | 130 | first_party_api |
| 2026-08-11 | 128 | first_party_api |
| 2026-08-12 | 128 | first_party_api |
| 2026-08-13 | 130 | first_party_api |
| 2026-08-14 | 131 | first_party_api |
| 2026-08-15 | 127 | first_party_api |
| 2026-08-16 | 128 | first_party_api |
| 2026-08-17 | 129 | first_party_api |
| 2026-08-18 | 130 | first_party_api |
| 2026-08-19 | 126 | first_party_api |
| 2026-08-20 | 126 | first_party_api |
| 2026-08-21 | 130 | first_party_api |
| 2026-08-22 | 126 | first_party_api |
| 2026-08-23 | 127 | first_party_api |
| 2026-08-24 | 130 | first_party_api |
| 2026-08-25 | 128 | first_party_api |
| 2026-08-26 | 128 | first_party_api |
| 2026-08-27 | 125 | first_party_api |
| 2026-08-28 | 128 | first_party_api |
| 2026-08-29 | 127 | first_party_api |
| 2026-08-30 | 128 | first_party_api |
| 2026-08-31 | 128 | first_party_api |
| 2026-09-01 | 127 | first_party_api |
ACTIVE_PROVIDERS — active provider nodes, depin_first_party collector, 27 snapshot days:
| Snapshot date | Active providers | Source |
|---|---|---|
| 2026-08-06 | 20,925 | depin_first_party |
| 2026-08-07 | 20,850 | depin_first_party |
| 2026-08-08 | 21,472 | depin_first_party |
| 2026-08-09 | 21,012 | depin_first_party |
| 2026-08-10 | 20,725 | depin_first_party |
| 2026-08-11 | 20,791 | depin_first_party |
| 2026-08-12 | 20,897 | depin_first_party |
| 2026-08-13 | 21,077 | depin_first_party |
| 2026-08-14 | 20,623 | depin_first_party |
| 2026-08-15 | 20,566 | depin_first_party |
| 2026-08-16 | 21,296 | depin_first_party |
| 2026-08-17 | 20,295 | depin_first_party |
| 2026-08-18 | 20,357 | depin_first_party |
| 2026-08-19 | 19,539 | depin_first_party |
| 2026-08-20 | 21,765 | depin_first_party |
| 2026-08-21 | 25,569 | depin_first_party |
| 2026-08-22 | 25,803 | depin_first_party |
| 2026-08-23 | 25,331 | depin_first_party |
| 2026-08-24 | 25,606 | depin_first_party |
| 2026-08-25 | 26,019 | depin_first_party |
| 2026-08-26 | 26,467 | depin_first_party |
| 2026-08-27 | 25,913 | depin_first_party |
| 2026-08-28 | 28,036 | depin_first_party |
| 2026-08-29 | 28,069 | depin_first_party |
| 2026-08-30 | 28,022 | depin_first_party |
| 2026-08-31 | 27,558 | depin_first_party |
| 2026-09-01 | 26,557 | depin_first_party |
nodes_total — the same quantity, independently captured from Mysterium's discovery API (first_party_api) — 24 snapshot days:
| Snapshot date | Nodes total (discovery API) | Source |
|---|---|---|
| 2026-08-09 | 20,802 | first_party_api |
| 2026-08-10 | 20,734 | first_party_api |
| 2026-08-11 | 20,794 | first_party_api |
| 2026-08-12 | 20,951 | first_party_api |
| 2026-08-13 | 21,095 | first_party_api |
| 2026-08-14 | 20,622 | first_party_api |
| 2026-08-15 | 20,721 | first_party_api |
| 2026-08-16 | 21,287 | first_party_api |
| 2026-08-17 | 20,297 | first_party_api |
| 2026-08-18 | 20,393 | first_party_api |
| 2026-08-19 | 19,481 | first_party_api |
| 2026-08-20 | 21,784 | first_party_api |
| 2026-08-21 | 25,574 | first_party_api |
| 2026-08-22 | 25,802 | first_party_api |
| 2026-08-23 | 25,358 | first_party_api |
| 2026-08-24 | 25,423 | first_party_api |
| 2026-08-25 | 26,005 | first_party_api |
| 2026-08-26 | 26,455 | first_party_api |
| 2026-08-27 | 25,816 | first_party_api |
| 2026-08-28 | 28,028 | first_party_api |
| 2026-08-29 | 28,052 | first_party_api |
| 2026-08-30 | 28,138 | first_party_api |
| 2026-08-31 | 27,352 | first_party_api |
| 2026-09-01 | 27,497 | first_party_api |
Per-country node counts held by the depin_first_party collector (21 snapshot days each, 2026-08-10 → 2026-09-01):
| Series | Rows | Window |
|---|---|---|
NODES_DE | 21 | 2026-08-10 → 2026-09-01 |
NODES_FR | 21 | 2026-08-10 → 2026-09-01 |
NODES_GB | 21 | 2026-08-10 → 2026-09-01 |
NODES_US | 21 | 2026-08-10 → 2026-09-01 |
Check 1 — countries. On the snapshot days where both the depin_first_party COUNTRIES collector and the first_party_api countries_covered series (Mysterium's own discovery API) hold a value, the two independent captures are compared live: 13 agreeing days, 11 divergent (max observed gap 2 countries). A divergence is a sampling-window difference between two collectors hitting the same upstream at different moments — a real measured fact, published as measured, never reconciled away.
| Snapshot date | depin_first_party value | first_party_api value | Verdict |
|---|---|---|---|
| 2026-08-09 | 130 | 132 | DIVERGE |
| 2026-08-10 | 129 | 130 | DIVERGE |
| 2026-08-11 | 128 | 128 | agree |
| 2026-08-12 | 129 | 128 | DIVERGE |
| 2026-08-13 | 129 | 130 | DIVERGE |
| 2026-08-14 | 130 | 131 | DIVERGE |
| 2026-08-15 | 127 | 127 | agree |
| 2026-08-16 | 128 | 128 | agree |
| 2026-08-17 | 129 | 129 | agree |
| 2026-08-18 | 130 | 130 | agree |
| 2026-08-19 | 126 | 126 | agree |
| 2026-08-20 | 126 | 126 | agree |
| 2026-08-21 | 129 | 130 | DIVERGE |
| 2026-08-22 | 124 | 126 | DIVERGE |
| 2026-08-23 | 126 | 127 | DIVERGE |
| 2026-08-24 | 129 | 130 | DIVERGE |
| 2026-08-25 | 128 | 128 | agree |
| 2026-08-26 | 128 | 128 | agree |
| 2026-08-27 | 125 | 125 | agree |
| 2026-08-28 | 129 | 128 | DIVERGE |
| 2026-08-29 | 127 | 127 | agree |
| 2026-08-30 | 128 | 128 | agree |
| 2026-08-31 | 127 | 128 | DIVERGE |
| 2026-09-01 | 127 | 127 | agree |
Check 2 — active providers / nodes. The same construction over ACTIVE_PROVIDERS (depin_first_party) vs nodes_total (discovery API) on their overlap days: 0 agreeing days, 24 divergent (max observed gap 940 nodes).
| Snapshot date | ACTIVE_PROVIDERS (depin_first_party) | nodes_total (first_party_api) | Verdict |
|---|---|---|---|
| 2026-08-09 | 21,012 | 20,802 | DIVERGE |
| 2026-08-10 | 20,725 | 20,734 | DIVERGE |
| 2026-08-11 | 20,791 | 20,794 | DIVERGE |
| 2026-08-12 | 20,897 | 20,951 | DIVERGE |
| 2026-08-13 | 21,077 | 21,095 | DIVERGE |
| 2026-08-14 | 20,623 | 20,622 | DIVERGE |
| 2026-08-15 | 20,566 | 20,721 | DIVERGE |
| 2026-08-16 | 21,296 | 21,287 | DIVERGE |
| 2026-08-17 | 20,295 | 20,297 | DIVERGE |
| 2026-08-18 | 20,357 | 20,393 | DIVERGE |
| 2026-08-19 | 19,539 | 19,481 | DIVERGE |
| 2026-08-20 | 21,765 | 21,784 | DIVERGE |
| 2026-08-21 | 25,569 | 25,574 | DIVERGE |
| 2026-08-22 | 25,803 | 25,802 | DIVERGE |
| 2026-08-23 | 25,331 | 25,358 | DIVERGE |
| 2026-08-24 | 25,606 | 25,423 | DIVERGE |
| 2026-08-25 | 26,019 | 26,005 | DIVERGE |
| 2026-08-26 | 26,467 | 26,455 | DIVERGE |
| 2026-08-27 | 25,913 | 25,816 | DIVERGE |
| 2026-08-28 | 28,036 | 28,028 | DIVERGE |
| 2026-08-29 | 28,069 | 28,052 | DIVERGE |
| 2026-08-30 | 28,022 | 28,138 | DIVERGE |
| 2026-08-31 | 27,558 | 27,352 | DIVERGE |
| 2026-09-01 | 26,557 | 27,497 | DIVERGE |
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 network, market or window change, not upstream rewriting history. For MYST the table is dominated by exactly what the network is: provider populations that churn (a provider going offline is a smaller count, not a rewrite), country coverage that shifts, and market-cap / price / supply classes that revalue. 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 |
|---|---|---|
ACTIVE_PROVIDERS | 12 | 27 |
NODES_DE | 11 | 21 |
COUNTRIES | 10 | 27 |
fully_diluted_valuation_usd | 10 | 17 |
market_cap_usd | 10 | 17 |
price_usd | 10 | 17 |
NODES_FR | 9 | 21 |
NODES_GB | 9 | 21 |
countries_covered | 9 | 24 |
NODES_US | 8 | 21 |
nodes_total | 7 | 24 |
price_change_30d_pct | 7 | 11 |
price_from_atl_pct | 7 | 11 |
price_high_24h_usd | 7 | 11 |
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 MYST 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, rolling windows) legitimately move both ways and are deliberately excluded — a drop there is a real change, not a rewrite; the gauge table on this page is the worked example for MYST's all-gauge profile. 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.
MYST's slice of depin_daily: 477 rows over 27 snapshot days (2026-08-06 → 2026-09-01), from 3 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 zero above is measured over — not an assumption, a measured archive.
Served by /v1/network/MYST — 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 — this network's node-quality and revenue grades are F, and the page says so rather than burying it.
| Engine | Grade | Score |
|---|---|---|
| Node quality | F | 0 |
| Dilution risk | MINIMAL | 90 |
| Bot risk | C | 80 |
| Dev velocity | B | 97.748 |
| Revenue | F | 0 |
| Data coverage | B | 50 |
| Overall | C | 47.2748 |
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–5 hit the Mysterium discovery API and GitHub origins the first-party rows came from; command 6 is the CoinGecko origin page; command 7 is the estate's graded network row; command 8 is the frozen daily snapshot of the ledger. One polite call per endpoint, no hammering.
# 1) The served revision feed for MYST — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=MYST" | 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) Mysterium's own discovery API, countries (the countries_covered origin):
curl -s -H "User-Agent: kairos-check" "https://discovery.mysterium.network/api/v4/countries" | python3 -m json.tool | head -30
# 4) Mysterium's discovery API, proposals (the proposal-count series origin):
curl -s -H "User-Agent: kairos-check" "https://discovery.mysterium.network/api/v4/proposals?limit=3" | python3 -m json.tool | head -40
# 5) GitHub API, the dev-velocity origin for mysteriumnetwork/node:
curl -s -H "User-Agent: kairos-check" "https://api.github.com/repos/mysteriumnetwork/node" | python3 -m json.tool | head -30
# 6) CoinGecko MYST page (the market-series origin; browser-verified, bot-walled to curl):
curl -s -o /dev/null -w "%{http_code}\n" "https://www.coingecko.com/en/coins/mysterium"
# 7) This estate's public API row for MYST (grades + provenance):
curl -s "https://kairossignal.com/v1/network/MYST" | python3 -m json.tool | head -60
# 8) 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_myst.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The MYST revision count is the live result of SELECT count() FROM default.depin_revision_ledger WHERE network='MYST'; the page refuses to ship if the served /v1/revisions?symbol=MYST 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. The two cross-source agreement checks are computed in-generation from the raw trails shown above, not asserted. Upstream probes ran serially by this generator immediately before rendering: Mysterium discovery /v4/countries (the countries_covered + COUNTRIES origin) HTTP 200; Mysterium discovery /v4/proposals (the proposal-count series origin) HTTP 200; GitHub API mysteriumnetwork/node (the dev-velocity series origin) HTTP 200; GitHub API mysteriumnetwork org (dev_public_repos origin) HTTP 200; CoinGecko MYST page (browser-verified origin; 403 here is its bot wall) HTTP 403; estate /v1/revisions?symbol=MYST (keyed) HTTP 200; estate /v1/network/MYST (keyed) HTTP 200.
propintel/gen_revision_page_myst.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.