Generated 2026-09-02T20:19:54Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for Chirp: 7,624 observations · 31 distinct series · 2 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 19:49:20 · every one of the 7,624 rows carries a verify_url · 25 series refreshed in the last 24h (695 fresh rows). Nothing on this page is cached, estimated, or remembered.
2 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. Chirp (the catalog name here is Chirp Token, category wireless, chain sui) publishes its own public stats endpoint (first_party_api — app.chirpwireless.io — the devices, nodes, cities, countries, users, packets and pings series) and this estate polls it directly; the market series come from CoinGecko's /coins/markets feed. Chirp's token is a Sui move object, not an EVM contract, so the estate's Blockscout chain-read family does not apply to this network — the absence of chain-counter sources below is structural, not a gap in collection.
| Source | Rows held | Series | Rows w/ verify_url | Window (UTC) | Sample origin |
|---|---|---|---|---|---|
| CoinGecko /coins/markets | 7,050 | 24 | 7,050 | 2026-08-09 17:15:20 → 2026-09-02 19:49:20 | sample origin ↗ |
| first_party_api | 574 | 7 | 574 | 2026-08-09 23:28:06 → 2026-09-02 19:34:01 | sample origin ↗ |
The ledger query ran during generation and returned 0 rows for CHIRP. Zero here is the live query result, not a gap — the ledger itself is at /v1/revisions?symbol=CHIRP (the same query this page ran, served live), and a restatement would appear on this page the day the detector records one. /v1/revisions cross-check: the estate API's free-tier daily quota answered HTTP 429 at generation time (resets 00:00 UTC); the ledger count on this page is the live ClickHouse result, and the served endpoint was probed and found quota-gated, not missing.
Why zero is the interesting answer here. The detector watches every cumulative-by-construction series — counters that cannot decrease unless upstream rewrote them (block heights, transfer counters, lifetime fees). The live intersection of that watchlist with what the daily archive holds for CHIRP is empty, measured below: nothing Chirp publishes through its stats endpoint is a monotone counter. Its event series (pings, packets) oscillate; its population series (devices, nodes, cities, users) are gauges by construction; its supply and market series are price-driven classes the detector excludes by name. The structural zero is therefore: the archive is fully exposed, and no held series is of the class that can expose a rewrite. 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 CHIRP.
Live query result: 0 watchlist series held for CHIRP. 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 CHIRP's daily archive. This is the structural zero behind the ledger count above, published as the query found it. The full series inventory CHIRP's archive does hold follows, so the disjoint is checkable row by row.
45 series held for CHIRP in depin_daily, all of them gauge- or price-class: none appears in the detector watchlist above. This inventory is live — it is the query result, not a curated list.
| Series held | Rows | Snapshot days | Source |
|---|---|---|---|
CITIES | 27 | 27 | depin_first_party |
CITIES_INCREMENT | 24 | 24 | depin_first_party |
COUNTRIES | 27 | 27 | depin_first_party |
COUNTRIES_INCREMENT | 24 | 24 | depin_first_party |
DEVICES | 27 | 27 | depin_first_party |
DEVICES_INCREMENT | 27 | 27 | depin_first_party |
NODES | 27 | 27 | depin_first_party |
NODES_INCREMENT | 27 | 27 | depin_first_party |
PACKETS | 27 | 27 | depin_first_party |
PACKETS_INCREMENT | 27 | 27 | depin_first_party |
PINGS | 27 | 27 | depin_first_party |
PINGS_INCREMENT | 24 | 24 | depin_first_party |
USERS | 27 | 27 | depin_first_party |
USERS_INCREMENT | 24 | 24 | depin_first_party |
circulating_supply | 17 | 17 | CoinGecko /coins/markets |
cities | 24 | 24 | first_party_api |
countries | 1 | 1 | first_party_api |
devices | 1 | 1 | first_party_api |
fully_diluted_valuation_usd | 17 | 17 | CoinGecko /coins/markets |
market_cap_change_24h_pct | 11 | 11 | CoinGecko /coins/markets |
market_cap_change_24h_usd | 11 | 11 | CoinGecko /coins/markets |
market_cap_rank | 11 | 11 | CoinGecko /coins/markets |
market_cap_usd | 17 | 17 | CoinGecko /coins/markets |
max_supply | 17 | 17 | CoinGecko /coins/markets |
nodes | 1 | 1 | first_party_api |
packets | 1 | 1 | first_party_api |
pings | 1 | 1 | first_party_api |
price_ath_usd | 11 | 11 | CoinGecko /coins/markets |
price_atl_usd | 11 | 11 | CoinGecko /coins/markets |
price_change_14d_pct | 11 | 11 | CoinGecko /coins/markets |
price_change_1h_pct | 11 | 11 | CoinGecko /coins/markets |
price_change_1y_pct | 11 | 11 | CoinGecko /coins/markets |
price_change_200d_pct | 11 | 11 | CoinGecko /coins/markets |
price_change_24h_pct | 11 | 11 | CoinGecko /coins/markets |
price_change_24h_usd | 11 | 11 | CoinGecko /coins/markets |
price_change_30d_pct | 11 | 11 | CoinGecko /coins/markets |
price_change_7d_pct | 11 | 11 | CoinGecko /coins/markets |
price_from_ath_pct | 11 | 11 | CoinGecko /coins/markets |
price_from_atl_pct | 11 | 11 | CoinGecko /coins/markets |
price_high_24h_usd | 11 | 11 | CoinGecko /coins/markets |
price_low_24h_usd | 11 | 11 | CoinGecko /coins/markets |
price_usd | 17 | 17 | CoinGecko /coins/markets |
total_supply | 17 | 17 | CoinGecko /coins/markets |
users | 1 | 1 | first_party_api |
volume_24h_usd | 11 | 11 | CoinGecko /coins/markets |
CHIRP's endpoint publishes PINGS and PACKETS as running totals, but the trails this estate holds for them oscillate — they fall as often as they rise. That is the defining behaviour of a gauge (a windowed or resampled event count), not a monotone counter, and it is why neither series can enter the detector's cumulative class: diffing them would manufacture a "revision" out of every ordinary daily fluctuation. Rendered raw from the archive — both directions visible; the reader does not have to trust the classification.
PINGS — as published by app.chirpwireless.io, captured by the estate's first-party collector across all 27 snapshot days:
| Snapshot date | Pings (as published) | Source |
|---|---|---|
| 2026-08-06 | 6,364,543 | depin_first_party |
| 2026-08-07 | 6,341,292 | depin_first_party |
| 2026-08-08 | 6,308,214 | depin_first_party |
| 2026-08-09 | 6,283,671 | depin_first_party |
| 2026-08-10 | 6,266,975 | depin_first_party |
| 2026-08-11 | 6,248,946 | depin_first_party |
| 2026-08-12 | 6,240,874 | depin_first_party |
| 2026-08-13 | 6,224,313 | depin_first_party |
| 2026-08-14 | 6,212,787 | depin_first_party |
| 2026-08-15 | 6,195,191 | depin_first_party |
| 2026-08-16 | 6,199,382 | depin_first_party |
| 2026-08-17 | 6,175,510 | depin_first_party |
| 2026-08-18 | 6,173,556 | depin_first_party |
| 2026-08-19 | 6,164,264 | depin_first_party |
| 2026-08-20 | 6,157,270 | depin_first_party |
| 2026-08-21 | 6,158,962 | depin_first_party |
| 2026-08-22 | 6,148,690 | depin_first_party |
| 2026-08-23 | 6,132,509 | depin_first_party |
| 2026-08-24 | 6,108,020 | depin_first_party |
| 2026-08-25 | 6,090,497 | depin_first_party |
| 2026-08-26 | 6,056,189 | depin_first_party |
| 2026-08-27 | 6,034,560 | depin_first_party |
| 2026-08-28 | 6,039,348 | depin_first_party |
| 2026-08-29 | 6,042,932 | depin_first_party |
| 2026-08-30 | 6,025,002 | depin_first_party |
| 2026-08-31 | 6,019,749 | depin_first_party |
| 2026-09-01 | 6,006,962 | depin_first_party |
PACKETS — same origin, same window — 27 snapshot days:
| Snapshot date | Packets (as published) | Source |
|---|---|---|
| 2026-08-06 | 94,141,175 | depin_first_party |
| 2026-08-07 | 94,108,887 | depin_first_party |
| 2026-08-08 | 94,040,359 | depin_first_party |
| 2026-08-09 | 93,966,954 | depin_first_party |
| 2026-08-10 | 94,018,509 | depin_first_party |
| 2026-08-11 | 94,110,678 | depin_first_party |
| 2026-08-12 | 94,287,944 | depin_first_party |
| 2026-08-13 | 94,507,687 | depin_first_party |
| 2026-08-14 | 94,792,050 | depin_first_party |
| 2026-08-15 | 95,068,110 | depin_first_party |
| 2026-08-16 | 95,559,033 | depin_first_party |
| 2026-08-17 | 95,892,761 | depin_first_party |
| 2026-08-18 | 96,311,275 | depin_first_party |
| 2026-08-19 | 96,681,473 | depin_first_party |
| 2026-08-20 | 96,830,457 | depin_first_party |
| 2026-08-21 | 97,077,986 | depin_first_party |
| 2026-08-22 | 97,332,719 | depin_first_party |
| 2026-08-23 | 97,453,568 | depin_first_party |
| 2026-08-24 | 97,530,710 | depin_first_party |
| 2026-08-25 | 97,822,897 | depin_first_party |
| 2026-08-26 | 98,034,419 | depin_first_party |
| 2026-08-27 | 98,174,937 | depin_first_party |
| 2026-08-28 | 98,378,072 | depin_first_party |
| 2026-08-29 | 98,588,451 | depin_first_party |
| 2026-08-30 | 98,698,013 | depin_first_party |
| 2026-08-31 | 98,965,103 | depin_first_party |
| 2026-09-01 | 99,140,847 | depin_first_party |
For seven series the network's own stats endpoint publishes BOTH a level (DEVICES, NODES, PACKETS, PINGS, USERS, CITIES, COUNTRIES) and a same-named *_INCREMENT series. If the endpoint is internally consistent, day-over-day level change should equal the increment. Measured live across every snapshot day where both exist: most pairs do not reconcile — the level trails and increment trails disagree with each other. This estate records what upstream published, including upstream disagreeing with itself; both trails are in the archive, both are rendered here, and nothing is smoothed over. The per-day deltas follow the summary so every claim on this page can be re-derived by hand.
| Series | Days both held | Sum of source increment | Net level change | Distinct increment values | Verdict |
|---|---|---|---|---|---|
CITIES | 24 | 48 | 4 | 1 | does NOT reconcile |
COUNTRIES | 24 | 24 | 1 | 1 | does NOT reconcile |
DEVICES | 27 | 0 | 0 | 1 | reconciles |
NODES | 27 | 0 | 0 | 1 | reconciles |
PACKETS | 27 | 83,463,809 | 5,173,893 | 27 | does NOT reconcile |
PINGS | 24 | 4,461,590 | 276,709 | 24 | does NOT reconcile |
USERS | 24 | 0 | 129 | 1 | does NOT reconcile |
Per-day deltas — level, implied change, and the increment the source published for the same day:
| Series | Snapshot date | Level | Implied Δ (level diff) | Source increment | Verdict |
|---|---|---|---|---|---|
CITIES | 2026-08-09 | 384 | 384 | 2 | does NOT reconcile |
CITIES | 2026-08-10 | 385 | 1 | 2 | does NOT reconcile |
CITIES | 2026-08-11 | 385 | 0 | 2 | does NOT reconcile |
CITIES | 2026-08-12 | 384 | -1 | 2 | does NOT reconcile |
CITIES | 2026-08-13 | 385 | 1 | 2 | does NOT reconcile |
CITIES | 2026-08-14 | 383 | -2 | 2 | does NOT reconcile |
CITIES | 2026-08-15 | 385 | 2 | 2 | reconciles |
CITIES | 2026-08-16 | 383 | -2 | 2 | does NOT reconcile |
CITIES | 2026-08-17 | 383 | 0 | 2 | does NOT reconcile |
CITIES | 2026-08-18 | 386 | 3 | 2 | does NOT reconcile |
CITIES | 2026-08-19 | 386 | 0 | 2 | does NOT reconcile |
CITIES | 2026-08-20 | 385 | -1 | 2 | does NOT reconcile |
CITIES | 2026-08-21 | 385 | 0 | 2 | does NOT reconcile |
CITIES | 2026-08-22 | 385 | 0 | 2 | does NOT reconcile |
CITIES | 2026-08-23 | 386 | 1 | 2 | does NOT reconcile |
CITIES | 2026-08-24 | 385 | -1 | 2 | does NOT reconcile |
CITIES | 2026-08-25 | 386 | 1 | 2 | does NOT reconcile |
CITIES | 2026-08-26 | 387 | 1 | 2 | does NOT reconcile |
CITIES | 2026-08-27 | 385 | -2 | 2 | does NOT reconcile |
CITIES | 2026-08-28 | 386 | 1 | 2 | does NOT reconcile |
CITIES | 2026-08-29 | 385 | -1 | 2 | does NOT reconcile |
CITIES | 2026-08-30 | 385 | 0 | 2 | does NOT reconcile |
CITIES | 2026-08-31 | 387 | 2 | 2 | reconciles |
CITIES | 2026-09-01 | 387 | 0 | 2 | does NOT reconcile |
COUNTRIES | 2026-08-09 | 50 | 50 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-10 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-11 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-12 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-13 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-14 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-15 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-16 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-17 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-18 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-19 | 50 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-20 | 51 | 1 | 1 | reconciles |
COUNTRIES | 2026-08-21 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-22 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-23 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-24 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-25 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-26 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-27 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-28 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-29 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-30 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-08-31 | 51 | 0 | 1 | does NOT reconcile |
COUNTRIES | 2026-09-01 | 51 | 0 | 1 | does NOT reconcile |
DEVICES | 2026-08-06 | 988,050 | 988,050 | 0 | does NOT reconcile |
DEVICES | 2026-08-07 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-08 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-09 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-10 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-11 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-12 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-13 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-14 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-15 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-16 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-17 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-18 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-19 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-20 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-21 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-22 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-23 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-24 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-25 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-26 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-27 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-28 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-29 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-30 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-08-31 | 988,050 | 0 | 0 | reconciles |
DEVICES | 2026-09-01 | 988,050 | 0 | 0 | reconciles |
NODES | 2026-08-06 | 504 | 504 | 0 | does NOT reconcile |
NODES | 2026-08-07 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-08 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-09 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-10 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-11 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-12 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-13 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-14 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-15 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-16 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-17 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-18 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-19 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-20 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-21 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-22 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-23 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-24 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-25 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-26 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-27 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-28 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-29 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-30 | 504 | 0 | 0 | reconciles |
NODES | 2026-08-31 | 504 | 0 | 0 | reconciles |
NODES | 2026-09-01 | 504 | 0 | 0 | reconciles |
PACKETS | 2026-08-06 | 94,141,175 | 94,141,175 | 2,647,303 | does NOT reconcile |
PACKETS | 2026-08-07 | 94,108,887 | -32,288 | 3,007,512 | does NOT reconcile |
PACKETS | 2026-08-08 | 94,040,359 | -68,528 | 2,934,590 | does NOT reconcile |
PACKETS | 2026-08-09 | 93,966,954 | -73,405 | 3,079,105 | does NOT reconcile |
PACKETS | 2026-08-10 | 94,018,509 | 51,555 | 2,921,574 | does NOT reconcile |
PACKETS | 2026-08-11 | 94,110,678 | 92,169 | 3,037,045 | does NOT reconcile |
PACKETS | 2026-08-12 | 94,287,944 | 177,266 | 3,125,276 | does NOT reconcile |
PACKETS | 2026-08-13 | 94,507,687 | 219,743 | 3,364,712 | does NOT reconcile |
PACKETS | 2026-08-14 | 94,792,050 | 284,363 | 3,395,746 | does NOT reconcile |
PACKETS | 2026-08-15 | 95,068,110 | 276,060 | 3,256,989 | does NOT reconcile |
PACKETS | 2026-08-16 | 95,559,033 | 490,923 | 2,969,651 | does NOT reconcile |
PACKETS | 2026-08-17 | 95,892,761 | 333,728 | 3,112,058 | does NOT reconcile |
PACKETS | 2026-08-18 | 96,311,275 | 418,514 | 3,227,449 | does NOT reconcile |
PACKETS | 2026-08-19 | 96,681,473 | 370,198 | 3,120,767 | does NOT reconcile |
PACKETS | 2026-08-20 | 96,830,457 | 148,984 | 3,160,617 | does NOT reconcile |
PACKETS | 2026-08-21 | 97,077,986 | 247,529 | 3,108,351 | does NOT reconcile |
PACKETS | 2026-08-22 | 97,332,719 | 254,733 | 2,886,288 | does NOT reconcile |
PACKETS | 2026-08-23 | 97,453,568 | 120,849 | 2,839,506 | does NOT reconcile |
PACKETS | 2026-08-24 | 97,530,710 | 77,142 | 3,138,720 | does NOT reconcile |
PACKETS | 2026-08-25 | 97,822,897 | 292,187 | 3,178,532 | does NOT reconcile |
PACKETS | 2026-08-26 | 98,034,419 | 211,522 | 3,030,967 | does NOT reconcile |
PACKETS | 2026-08-27 | 98,174,937 | 140,518 | 3,134,416 | does NOT reconcile |
PACKETS | 2026-08-28 | 98,378,072 | 203,135 | 3,232,633 | does NOT reconcile |
PACKETS | 2026-08-29 | 98,588,451 | 210,379 | 3,091,531 | does NOT reconcile |
PACKETS | 2026-08-30 | 98,698,013 | 109,562 | 3,017,156 | does NOT reconcile |
PACKETS | 2026-08-31 | 98,965,103 | 267,090 | 3,122,587 | does NOT reconcile |
PACKETS | 2026-09-01 | 99,140,847 | 175,744 | 3,322,728 | does NOT reconcile |
PINGS | 2026-08-09 | 6,283,671 | 6,283,671 | 192,376 | does NOT reconcile |
PINGS | 2026-08-10 | 6,266,975 | -16,696 | 177,887 | does NOT reconcile |
PINGS | 2026-08-11 | 6,248,946 | -18,029 | 191,271 | does NOT reconcile |
PINGS | 2026-08-12 | 6,240,874 | -8,072 | 191,606 | does NOT reconcile |
PINGS | 2026-08-13 | 6,224,313 | -16,561 | 199,742 | does NOT reconcile |
PINGS | 2026-08-14 | 6,212,787 | -11,526 | 207,253 | does NOT reconcile |
PINGS | 2026-08-15 | 6,195,191 | -17,596 | 190,346 | does NOT reconcile |
PINGS | 2026-08-16 | 6,199,382 | 4,191 | 170,798 | does NOT reconcile |
PINGS | 2026-08-17 | 6,175,510 | -23,872 | 188,802 | does NOT reconcile |
PINGS | 2026-08-18 | 6,173,556 | -1,954 | 187,002 | does NOT reconcile |
PINGS | 2026-08-19 | 6,164,264 | -9,292 | 193,848 | does NOT reconcile |
PINGS | 2026-08-20 | 6,157,270 | -6,994 | 193,957 | does NOT reconcile |
PINGS | 2026-08-21 | 6,158,962 | 1,692 | 186,001 | does NOT reconcile |
PINGS | 2026-08-22 | 6,148,690 | -10,272 | 176,303 | does NOT reconcile |
PINGS | 2026-08-23 | 6,132,509 | -16,181 | 168,716 | does NOT reconcile |
PINGS | 2026-08-24 | 6,108,020 | -24,489 | 182,837 | does NOT reconcile |
PINGS | 2026-08-25 | 6,090,497 | -17,523 | 180,072 | does NOT reconcile |
PINGS | 2026-08-26 | 6,056,189 | -34,308 | 178,460 | does NOT reconcile |
PINGS | 2026-08-27 | 6,034,560 | -21,629 | 200,129 | does NOT reconcile |
PINGS | 2026-08-28 | 6,039,348 | 4,788 | 203,400 | does NOT reconcile |
PINGS | 2026-08-29 | 6,042,932 | 3,584 | 182,964 | does NOT reconcile |
PINGS | 2026-08-30 | 6,025,002 | -17,930 | 171,575 | does NOT reconcile |
PINGS | 2026-08-31 | 6,019,749 | -5,253 | 173,451 | does NOT reconcile |
PINGS | 2026-09-01 | 6,006,962 | -12,787 | 172,794 | does NOT reconcile |
USERS | 2026-08-09 | 1,222,223 | 1,222,223 | 0 | does NOT reconcile |
USERS | 2026-08-10 | 1,222,230 | 7 | 0 | does NOT reconcile |
USERS | 2026-08-11 | 1,222,237 | 7 | 0 | does NOT reconcile |
USERS | 2026-08-12 | 1,222,240 | 3 | 0 | does NOT reconcile |
USERS | 2026-08-13 | 1,222,243 | 3 | 0 | does NOT reconcile |
USERS | 2026-08-14 | 1,222,246 | 3 | 0 | does NOT reconcile |
USERS | 2026-08-15 | 1,222,249 | 3 | 0 | does NOT reconcile |
USERS | 2026-08-16 | 1,222,255 | 6 | 0 | does NOT reconcile |
USERS | 2026-08-17 | 1,222,258 | 3 | 0 | does NOT reconcile |
USERS | 2026-08-18 | 1,222,262 | 4 | 0 | does NOT reconcile |
USERS | 2026-08-19 | 1,222,267 | 5 | 0 | does NOT reconcile |
USERS | 2026-08-20 | 1,222,278 | 11 | 0 | does NOT reconcile |
USERS | 2026-08-21 | 1,222,289 | 11 | 0 | does NOT reconcile |
USERS | 2026-08-22 | 1,222,294 | 5 | 0 | does NOT reconcile |
USERS | 2026-08-23 | 1,222,302 | 8 | 0 | does NOT reconcile |
USERS | 2026-08-24 | 1,222,310 | 8 | 0 | does NOT reconcile |
USERS | 2026-08-25 | 1,222,314 | 4 | 0 | does NOT reconcile |
USERS | 2026-08-26 | 1,222,318 | 4 | 0 | does NOT reconcile |
USERS | 2026-08-27 | 1,222,321 | 3 | 0 | does NOT reconcile |
USERS | 2026-08-28 | 1,222,326 | 5 | 0 | does NOT reconcile |
USERS | 2026-08-29 | 1,222,334 | 8 | 0 | does NOT reconcile |
USERS | 2026-08-30 | 1,222,340 | 6 | 0 | does NOT reconcile |
USERS | 2026-08-31 | 1,222,347 | 7 | 0 | does NOT reconcile |
USERS | 2026-09-01 | 1,222,352 | 5 | 0 | does NOT reconcile |
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 fleet, event-count or market change, not upstream rewriting history. For CHIRP this table is the whole archive's behaviour — every moving series is in it, from the PINGS event gauge (which fell on more than half its day-pairs) to the CoinGecko price and market-cap classes (a price fall revalues every derived series; that is a market move, not a rewrite) to the city and user populations themselves. Publishing them as "revisions" would be exactly the fake-metric behaviour this product exists to eliminate.
| Series (gauge / population / market) | Backward moves observed | Snapshot rows held |
|---|---|---|
PINGS | 22 | 27 |
PINGS_INCREMENT | 12 | 24 |
PACKETS_INCREMENT | 11 | 27 |
fully_diluted_valuation_usd | 10 | 17 |
market_cap_usd | 10 | 17 |
price_usd | 10 | 17 |
price_from_atl_pct | 8 | 11 |
price_high_24h_usd | 8 | 11 |
price_low_24h_usd | 8 | 11 |
CITIES | 7 | 27 |
cities | 6 | 24 |
price_change_14d_pct | 5 | 11 |
price_change_30d_pct | 4 | 11 |
volume_24h_usd | 4 | 11 |
PACKETS | 3 | 27 |
market_cap_rank | 3 | 11 |
price_change_24h_pct | 3 | 11 |
price_change_7d_pct | 3 | 11 |
market_cap_change_24h_pct | 2 | 11 |
market_cap_change_24h_usd | 2 | 11 |
price_change_1h_pct | 2 | 11 |
price_change_24h_usd | 2 | 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 CHIRP 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 level-vs-increment disagreement above is a cross-series discrepancy between two different metric families — not a same-stamp conflict — which is why it lives in its own section.)
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, and for CHIRP it is the entire held inventory. 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.
CHIRP's slice of depin_daily: 696 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.
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 is Chirp's own stats endpoint, the origin of every first-party series on this page; command 4 is the CoinGecko origin page; 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 CHIRP — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=CHIRP" | 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) Chirp's own public stats endpoint (the first_party_api origin):
curl -s -H "User-Agent: kairos-check" "https://app.chirpwireless.io/api/public/stats/total" | python3 -m json.tool
# 4) CoinGecko CHIRP 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/chirp-token"
# 5) This estate's public API row for CHIRP (grades + provenance):
curl -s "https://kairossignal.com/v1/network/CHIRP" | 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"
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_chirp.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The CHIRP revision count is the live result of SELECT count() FROM default.depin_revision_ledger WHERE network='CHIRP'; the page refuses to ship if the served /v1/revisions?symbol=CHIRP is reachable and disagrees with it (at generation the estate API was answering its free-tier daily-quota 429, so the cross-check ran against ClickHouse as the authority and the endpoint was verified quota-gated, not missing). 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 level-vs-increment tables are re-diffed from the raw trails on every regeneration — if upstream fixes its endpoint so the two reconcile, this page will say so. Upstream probes ran serially by this generator immediately before rendering: CoinGecko CHIRP page (the market-series origin; 403 here is its bot wall) HTTP 403; Chirp's own public stats endpoint (the first_party_api origin) HTTP 200; estate /v1/revisions?symbol=CHIRP HTTP 429; estate /v1/network/CHIRP HTTP 429.
propintel/gen_revision_page_chirp.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.