Generated 2026-09-02T19:14:37Z from live ClickHouse queries against this estate's ledger. Point-in-time archive held for Onocoy Token: 8,692 observations · 29 distinct series · 3 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-09-02 18:49:30 · every one of the 8,692 rows carries a verify_url · 28 series refreshed in the last 24h (768 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. ONO is one of this estate's first-party-telemetry networks: onocoy publishes its own public explorer API (https://api.onocoy.com/api/v1/explorer), which feeds the station population series (station_count, stations_online, stations_validated, stations_offline) and the STATION_LIVENESS_PCT series directly from the network's own infrastructure, with CoinGecko's market series alongside. ONO's token lives on Solana (onoyC1ZjHNtT2tShqvVSg5WEcQDbu5zht6sdU9Nwjrc).
| Source | Rows held | Series | Rows w/ verify_url | Window (UTC) | Sample origin |
|---|---|---|---|---|---|
| CoinGecko /coins/markets | 7,026 | 24 | 7,026 | 2026-08-09 17:15:20 → 2026-09-02 18:49:30 | sample origin ↗ |
| first_party_api | 1,400 | 4 | 1,400 | 2026-08-09 23:28:06 → 2026-09-02 18:34:01 | sample origin ↗ |
| onocoy_explorer | 266 | 1 | 266 | 2026-08-22 13:13:27 → 2026-09-02 18:47:01 | sample origin ↗ |
The ledger query ran during generation and returned 0 rows for ONO — and ONO's zero is a measured negative with a structural reason: the daily archive this estate holds for ONO — 398 rows over 27 snapshots (2026-08-06 → 2026-09-01) — contains zero cumulative-by-construction series. Every series onocoy publishes is gauge-class: station population counts, a liveness percentage, and market data — the classes a drop in means a real population or market change, not upstream rewriting history. The detector diffed what exists and correctly found nothing diffable of the restatement class; the measured gauge behaviour below is the proof the archive itself is alive and moving. Where a sibling network (AR) shows a BLOCKS restatement (1,988,930 → 1,702,206, on the estate-wide ledger below), ONO publishes nothing of that counter class. Zero here is the live query result plus the measured trails below, not a gap — the ledger itself is at /v1/revisions?symbol=ONO (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=ONO 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 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 ONO. Live query result: 0 watchlist series held for ONO. 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 ONO's daily archive. ONO's telemetry is entirely gauge-class — station population counts, liveness percentage, market data. This is the structural zero behind the ledger count above, published as the query found it. Honest boundary: if onocoy ever publishes a cumulative counter (total checks, stations onboarded lifetime, rewards paid out cumulative), the detector watches it automatically and this page gains the trail.
These are actual series from ONO's daily archive, rendered live. Each is a gauge: it legitimately decreases when a station goes dark or the market reprices, which is exactly why the detector excludes these classes from revision detection — publishing their drops as "revisions" would be the fake-metric behaviour this product exists to eliminate. The backward steps are visible in the trails, measured, not smoothed away. These same trails are also where a restatement would surface if onocoy upstream rewrote any of these values for an already-archived date — the archive keeps every write, so a replacement is detectable.
stations_online — stations online — the first-party population gauge; every drop is a station going dark, not a rewrite:
| Snapshot date | Value | Source |
|---|---|---|
| 2026-08-09 | 5,799 | first_party_api |
| 2026-08-10 | 5,806 | first_party_api |
| 2026-08-11 | 5,777 | first_party_api |
| 2026-08-12 | 5,794 | first_party_api |
| 2026-08-13 | 5,821 | first_party_api |
| 2026-08-14 | 5,817 | first_party_api |
| 2026-08-15 | 5,811 | first_party_api |
| 2026-08-16 | 5,820 | first_party_api |
| 2026-08-17 | 5,824 | first_party_api |
| 2026-08-18 | 5,866 | first_party_api |
| 2026-08-19 | 5,876 | first_party_api |
| 2026-08-20 | 5,874 | first_party_api |
| 2026-08-21 | 5,857 | first_party_api |
| 2026-08-22 | 5,839 | first_party_api |
| 2026-08-23 | 5,827 | first_party_api |
| 2026-08-24 | 5,862 | first_party_api |
| 2026-08-25 | 5,865 | first_party_api |
| 2026-08-26 | 5,892 | first_party_api |
| 2026-08-27 | 5,928 | first_party_api |
| 2026-08-28 | 5,850 | first_party_api |
| 2026-08-29 | 5,936 | first_party_api |
| 2026-08-30 | 5,916 | first_party_api |
| 2026-08-31 | 5,924 | first_party_api |
| 2026-09-01 | 5,912 | first_party_api |
STATIONS_TOTAL — STATIONS_TOTAL — the catalog-wide station population series:
| Snapshot date | Value | Source |
|---|---|---|
| 2026-08-06 | 8,957 | depin_first_party |
| 2026-08-07 | 8,964 | depin_first_party |
| 2026-08-08 | 8,963 | depin_first_party |
| 2026-08-09 | 8,963 | depin_first_party |
| 2026-08-10 | 8,963 | depin_first_party |
| 2026-08-11 | 8,968 | depin_first_party |
| 2026-08-12 | 8,917 | depin_first_party |
| 2026-08-13 | 8,918 | depin_first_party |
| 2026-08-14 | 8,920 | depin_first_party |
| 2026-08-15 | 8,922 | depin_first_party |
| 2026-08-16 | 8,928 | depin_first_party |
| 2026-08-17 | 8,929 | depin_first_party |
| 2026-08-18 | 8,930 | depin_first_party |
| 2026-08-19 | 8,933 | depin_first_party |
| 2026-08-20 | 8,941 | depin_first_party |
| 2026-08-21 | 8,939 | depin_first_party |
| 2026-08-22 | 8,948 | depin_first_party |
| 2026-08-23 | 8,953 | depin_first_party |
| 2026-08-24 | 8,963 | depin_first_party |
| 2026-08-25 | 8,969 | depin_first_party |
| 2026-08-26 | 8,975 | depin_first_party |
| 2026-08-27 | 8,967 | depin_first_party |
| 2026-08-28 | 8,967 | depin_first_party |
| 2026-08-29 | 8,970 | depin_first_party |
| 2026-08-30 | 8,973 | depin_first_party |
| 2026-08-31 | 8,976 | depin_first_party |
| 2026-09-01 | 8,976 | depin_first_party |
station_count — station_count — the first-party station count series:
| Snapshot date | Value | Source |
|---|---|---|
| 2026-08-09 | 8,963 | first_party_api |
| 2026-08-10 | 8,967 | first_party_api |
| 2026-08-11 | 8,968 | first_party_api |
| 2026-08-12 | 8,917 | first_party_api |
| 2026-08-13 | 8,918 | first_party_api |
| 2026-08-14 | 8,920 | first_party_api |
| 2026-08-15 | 8,922 | first_party_api |
| 2026-08-16 | 8,927 | first_party_api |
| 2026-08-17 | 8,929 | first_party_api |
| 2026-08-18 | 8,931 | first_party_api |
| 2026-08-19 | 8,934 | first_party_api |
| 2026-08-20 | 8,940 | first_party_api |
| 2026-08-21 | 8,938 | first_party_api |
| 2026-08-22 | 8,949 | first_party_api |
| 2026-08-23 | 8,953 | first_party_api |
| 2026-08-24 | 8,963 | first_party_api |
| 2026-08-25 | 8,969 | first_party_api |
| 2026-08-26 | 8,975 | first_party_api |
| 2026-08-27 | 8,967 | first_party_api |
| 2026-08-28 | 8,967 | first_party_api |
| 2026-08-29 | 8,970 | first_party_api |
| 2026-08-30 | 8,974 | first_party_api |
| 2026-08-31 | 8,976 | first_party_api |
| 2026-09-01 | 8,976 | first_party_api |
price_usd — price_usd — the CoinGecko market gauge; drops are revaluation:
| Snapshot date | Value | Source |
|---|---|---|
| 2026-08-09 | 0.01788601 | CoinGecko /coins/markets |
| 2026-08-17 | 0.01702572 | CoinGecko /coins/markets |
| 2026-08-18 | 0.01790408 | CoinGecko /coins/markets |
| 2026-08-19 | 0.01802525 | CoinGecko /coins/markets |
| 2026-08-20 | 0.01795222 | CoinGecko /coins/markets |
| 2026-08-21 | 0.01752423 | CoinGecko /coins/markets |
| 2026-08-22 | 0.01735986 | CoinGecko /coins/markets |
| 2026-08-23 | 0.01838345 | CoinGecko /coins/markets |
| 2026-08-24 | 0.0179354 | CoinGecko /coins/markets |
| 2026-08-25 | 0.01764624 | CoinGecko /coins/markets |
| 2026-08-26 | 0.01825123 | CoinGecko /coins/markets |
| 2026-08-27 | 0.01858783 | CoinGecko /coins/markets |
| 2026-08-28 | 0.01838116 | CoinGecko /coins/markets |
| 2026-08-29 | 0.01677722 | CoinGecko /coins/markets |
| 2026-08-30 | 0.01800063 | CoinGecko /coins/markets |
| 2026-08-31 | 0.01594233 | CoinGecko /coins/markets |
| 2026-09-01 | 0.01688318 | CoinGecko /coins/markets |
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. For ONO this is the whole archive: 22 of its daily series showed at least one backward move across the 27 snapshots — measured, not assumed.
| Series (gauge / revaluation) | Backward moves observed | Snapshot rows held |
|---|---|---|
stations_online | 10 | 24 |
fully_diluted_valuation_usd | 9 | 17 |
market_cap_usd | 9 | 17 |
price_usd | 9 | 17 |
price_change_200d_pct | 6 | 11 |
price_low_24h_usd | 6 | 11 |
market_cap_rank | 5 | 11 |
price_from_atl_pct | 5 | 11 |
price_high_24h_usd | 5 | 11 |
STATIONS_TOTAL | 4 | 27 |
STATION_LIVENESS_PCT | 4 | 11 |
market_cap_change_24h_pct | 4 | 11 |
market_cap_change_24h_usd | 4 | 11 |
price_change_24h_pct | 4 | 11 |
price_change_24h_usd | 4 | 11 |
price_change_7d_pct | 4 | 11 |
volume_24h_usd | 4 | 11 |
price_change_14d_pct | 3 | 11 |
station_count | 3 | 24 |
stations_validated | 3 | 11 |
price_change_30d_pct | 2 | 11 |
price_change_1h_pct | 1 | 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 ONO 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 gauge tables on this page are the worked example, and for ONO the exclusion class covers every series it publishes. 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/ONO — 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 | B | 65.4621 |
| Dilution risk | HIGH | 14.5112 |
| Bot risk | C | 85 |
| Dev velocity | A | 100 |
| Revenue | F | 0 |
| Data coverage | D | 20 |
| Overall | D | 38.4716 |
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 the network's own first-party stats API, the origin of the station series; command 4 is the estate's graded network row; command 5 is the frozen daily snapshot of the ledger; command 6 is the market-data origin. One polite call per endpoint, no hammering.
# 1) The served revision feed for ONO — the same rows this page queried, live:
curl -s "https://kairossignal.com/v1/revisions?symbol=ONO" | 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) onocoy's own public explorer API (the first_party_api / onocoy_explorer origin):
curl -s -H "User-Agent: kairos-check" "https://api.onocoy.com/api/v1/explorer" | python3 -m json.tool | head -60
# 4) This estate's public API row for ONO (grades + provenance):
curl -s "https://kairossignal.com/v1/network/ONO" | 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"
# 6) CoinGecko's ONO page in a browser (the market-series origin; a plain
# curl here meets its bot wall and returns 403 — stated, not hidden):
curl -s -o /dev/null -w "%{http_code}\n" -H "User-Agent: kairos-check" "https://www.coingecko.com/en/coins/onocoy-token"
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_ono.py and the hourly claim_drift_check.py run grades its claims against the live API like every other published surface. The ONO revision count is the live result of SELECT count() FROM default.depin_revision_ledger WHERE network='ONO'; the page refuses to ship if the served /v1/revisions?symbol=ONO 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 ONO is genuinely empty today — because ONO's archive holds no cumulative-by-construction series at all (its telemetry is station population, liveness, and market gauges — the exclusion class), a structural fact measured live above and published as found — and this page says so instead of inventing restatements. The same-stamp conflict check is likewise the honest live answer: 0 groups in depin_onchain and 0 in depin_daily. Upstream probes ran serially by this generator immediately before rendering: api.onocoy.com /api/v1/explorer (the first_party_api and onocoy_explorer upstream — ONO's own public stats API) HTTP 200; CoinGecko ONO page (browser-verified origin; 403 here is its bot wall) HTTP 403; estate /v1/revisions?symbol=ONO HTTP 200; estate /v1/network/ONO HTTP 200.
propintel/gen_revision_page_ono.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.