Generated 2026-10-12T05:01:27Z from live ClickHouse queries against this estate's ledger. Held inventory: 31,522 observations · 33 distinct series · 2 upstream sources · first row 2026-08-09 17:15:20 · newest row 2026-10-12 04:54:01 · 31,522/31,522 rows carry a verify_url. 27 series refreshed in the last 24h (646 fresh rows). Nothing on this page is cached, estimated, or remembered.
ROAM Token, category wireless, chains
binance-smart-chain,solana, website roam.xyz), the WiFi-roaming DePIN
network (Metablox miners) — packaged as a read-only product page. The catalog lists a
public stats API for this network (has_public_stats_api = 1) and the estate reads it as
its first-party source: ROAM's own explorer stats endpoint on api.weroam.xyz, not a
third-party aggregator. Two of its fields flow daily (WiFi hotspots, members); seven
wider counters from the same endpoint are held as a single 2026-08-09 deep snapshot —
both facts are labelled per row below. The estate holds NO on-chain token telemetry
for ROAM (no BSC or Solana RPC rows), so there is no chain supply read, no holder
concentration, and no host-chain context on this page — the supply references are the
CoinGecko coin-page reference alone, published as held. There are no DefiLlama and no
GitHub rows either, so those sections are absent — absence, not zero, and the queries
rerun at every regeneration so a section would appear the day rows exist. This page
reports what the held endpoints answered and when. It does not forecast, rank
investment merit, or advise. Where a metric has a measurement caveat, the caveat ships
with the metric. All source families hold verify_urls on 100% of their rows; there are
no unattributed figures on this page.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.
| Source | Rows held | Series | Rows w/ verify_url | Window (UTC) | Sample origin |
|---|---|---|---|---|---|
| CoinGecko /coins/markets | 28,098 | 24 | 28,098 | 2026-08-09 17:15:20 → 2026-10-12 04:51:54 | sample origin ↗ |
| first_party_api | 3,424 | 9 | 3,424 | 2026-08-09 23:28:06 → 2026-10-12 04:54:01 | sample origin ↗ |
One row per series: latest value, a 30-day sparkline of daily last-known values (scaled to the series' own min→max), day count, and window change. Series absent from the 30-day window are omitted from this table, not zero-filled.
| Series | Latest | 30-day shape | Days held | 30d change | Window & provenance |
|---|---|---|---|---|---|
price_usd | 0.01237004 usd | ▂▂▁▄▆▄▄▇█▄▄▆▆▇▆▅▄▃▅▅▅▅▆▆▅▅▄▃▄▄▄ | 31 | +2.3% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
market_cap_usd | 4,532,891 usd | ▂▂▁▄▆▄▄▇█▄▄▆▆▇▇▅▄▃▆▅▅▅▆▆▅▆▅▄▄▄▅ | 31 | +3.3% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
volume_24h_usd | 272,207 usd | ▇▇▇█▅▂▇▆▃▇▇█▇▇▇▇▇▇▆▃█▂██▁▇█▃▁▁▁ | 31 | -74.1% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
circulating_supply | 366,437,035.2658 tokens | ▁▁▁▂▂▂▂▃▃▃▃▄▄▄▄▅▅▅▅▆▆▆▆▇▇▇▇▇███ | 31 | +1.0% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
total_supply | 995,631,661.9548 tokens | ███▇▇▇▇▇▇▇▇▇▆▆▆▆▆▆▅▅▅▅▄▄▄▄▂▂▂▁▁ | 31 | -0.0% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
max_supply | 1,000,000,000 tokens | ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ | 31 | +0.0% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
fully_diluted_valuation_usd | 12,316,140 usd | ▂▂▁▄▆▄▄▇█▄▄▆▆▇▆▅▄▃▅▅▅▅▆▆▄▅▄▃▄▄▄ | 31 | +2.3% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
market_cap_rank | 1,786 rank | ▃▂▄▂▁▂▅▄▄██▆▆▆▇▇▇▆▅▆▆▅▅▆▆▄▄▅▅▅▅ | 31 | +2.3% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
price_ath_usd | 0.4099 usd | ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ | 31 | +0.0% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
price_from_ath_pct | -96.9823 percent | ▂▂▁▄▆▄▄▇█▄▄▆▆▇▆▅▄▃▅▅▅▅▆▆▅▅▄▃▄▄▄ | 31 | +0.1% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
price_high_24h_usd | 0.01237357 usd | ▁▁▂▄▇▅▇▇▇█▄▅▆▆▆▆▄▃▅▅▅▄▅▅▅▄▄▃▃▃▃ | 31 | +1.6% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
price_low_24h_usd | 0.01223507 usd | ▂▁▁▁▅▄▅▆█▆▄▄▆██▆▄▄▄▆▅▆▇▆▅▄▃▄▅▄▄ | 31 | +2.2% | 2026-09-12 → 2026-10-12 via CoinGecko /coins/markets · origin ↗ |
total_wifi | 6,418,321 wifi | ▁▁▁▂▂▂▂▃▃▃▃▄▃▄▄▅▅▅▅▆▆▆▆▆▆▇▇▇███ | 31 | +0.0% | 2026-09-12 → 2026-10-12 via first_party_api · origin ↗ |
total_members | 3,289,035 members | ▁▁▂▂▂▂▂▃▃▃▄▄▄▄▄▅▅▅▆▆▆▆▇▇▇▇▇████ | 31 | +0.1% | 2026-09-12 → 2026-10-12 via first_party_api · origin ↗ |
Read from the network's own public stats endpoint
(api.weroam.xyz/v1/explorer/stat/total/num — the catalog's
stats_api_url, has_public_stats_api = 1): WiFi hotspots, members, and the
wider miner/check/points/sticker counters. TWO series flow daily — the two fields the
daily collector archives (totalWiFiNum → total_wifi,
totalMemberNum → total_members). SEVEN wider counters were
captured once in a deep snapshot of the SAME endpoint on 2026-08-09 and are held as
exactly one row each — published as the snapshot they are, as of their stamp, never
presented as flowing, never back-filled from today's probe. The endpoint answers more
fields than the archive keeps; the archive is the product.
| Metric | Latest | As of (UTC) | Rows held | Verify |
|---|---|---|---|---|
checkins_total | 771,816,397 checkins | 2026-10-12 04:54:01 | 392 | origin ↗ |
total_bound_miners⚠ single-snapshot deep read of the same endpoint (2026-08-09, payload field totalBindMinerNum) — held exactly as of its stamp, NOT re-collected daily, never presented as flowing | 8,783 miners | 2026-08-09 23:53:15 | 1 | origin ↗ |
total_checks⚠ single-snapshot deep read of the same endpoint (2026-08-09, payload field totalCheckNum) — held exactly as of its stamp, NOT re-collected daily, never presented as flowing | 765,981,147 checks | 2026-08-09 23:53:15 | 1 | origin ↗ |
total_issued_points⚠ single-snapshot deep read of the same endpoint (2026-08-09, payload field totalIssuedPointsNum) — held exactly as of its stamp, NOT re-collected daily, never presented as flowing | 16,212,949,453 points | 2026-08-09 23:53:15 | 1 | origin ↗ |
total_members⚠ first-party read of ROAM's own public explorer stats API (payload field totalMemberNum) — one of the two fields the daily collector archives; this series flows daily | 3,289,035 members | 2026-10-12 04:34:01 | 1,513 | origin ↗ |
total_online_miners⚠ single-snapshot deep read of the same endpoint (2026-08-09, payload field totalOnlineMinerNum) — held exactly as of its stamp, NOT re-collected daily, never presented as flowing | 2,931 miners | 2026-08-09 23:53:15 | 1 | origin ↗ |
total_quality_user_checks⚠ single-snapshot deep read of the same endpoint (2026-08-09, payload field totalQualityUserCheckNum) — held exactly as of its stamp, NOT re-collected daily, never presented as flowing | 140,059,373 checks | 2026-08-09 23:53:15 | 1 | origin ↗ |
total_stickers⚠ single-snapshot deep read of the same endpoint (2026-08-09, payload field totalStickerNum) — held exactly as of its stamp, NOT re-collected daily, never presented as flowing | 449,929,680 stickers | 2026-08-09 23:53:15 | 1 | origin ↗ |
total_wifi⚠ first-party read of ROAM's own public explorer stats API (payload field totalWiFiNum) — one of the two fields the daily collector archives; this series flows daily | 6,418,321 wifi | 2026-10-12 04:34:01 | 1,513 | origin ↗ |
Market-data reference rows: price, supply, capitalisation, diluted valuation, and the published change columns including ATH/ATL. These are the coin-page reference's own numbers — the estate does not model, smooth, or forward-fill them. The change columns / rank / ATH-ATL / high-low series start later in the archive than the price rows (each metric's caveat in the full inventory states its own first-held row) and are shown from their first held row. The circulating and total supply rows are different quantities (circulating vs total) and are never netted against each other; the estate holds no on-chain supply read for ROAM, so there is no chain row to merge — absence, not zero.
| Metric | Latest | As of (UTC) | Verify |
|---|---|---|---|
circulating_supply | 366,437,035.2658 tokens | 2026-10-12 04:51:54 | origin ↗ |
fully_diluted_valuation_usd | 12,316,140 | 2026-10-12 04:51:54 | origin ↗ |
market_cap_change_24h_pct | 0.3069 percent | 2026-10-12 04:51:54 | origin ↗ |
market_cap_change_24h_usd | 13,870.22 | 2026-10-12 04:51:54 | origin ↗ |
market_cap_rank | 1,786 rank | 2026-10-12 04:51:54 | origin ↗ |
market_cap_usd | 4,532,891 | 2026-10-12 04:51:54 | origin ↗ |
max_supply | 1,000,000,000 tokens | 2026-10-12 04:51:54 | origin ↗ |
price_ath_usd | 0.4099 | 2026-10-12 04:51:54 | origin ↗ |
price_atl_usd | 0.00468466 | 2026-10-12 04:51:54 | origin ↗ |
price_change_14d_pct | -0.989 percent | 2026-10-12 04:51:54 | origin ↗ |
price_change_1h_pct | 0.0387 percent | 2026-10-12 04:51:54 | origin ↗ |
price_change_1y_pct | -75.2104 percent | 2026-10-12 04:51:54 | origin ↗ |
price_change_200d_pct | -77.7487 percent | 2026-10-12 04:51:54 | origin ↗ |
price_change_24h_pct | 0.2732 percent | 2026-10-12 04:51:54 | origin ↗ |
price_change_24h_usd | 0.0000337 | 2026-10-12 04:51:54 | origin ↗ |
price_change_30d_pct | 1.334 percent | 2026-10-12 04:51:54 | origin ↗ |
price_change_7d_pct | -2.0697 percent | 2026-10-12 04:51:54 | origin ↗ |
price_from_ath_pct | -96.9823 percent | 2026-10-12 04:51:54 | origin ↗ |
price_from_atl_pct | 164.0545 percent | 2026-10-12 04:51:54 | origin ↗ |
price_high_24h_usd | 0.01237357 | 2026-10-12 04:51:54 | origin ↗ |
price_low_24h_usd | 0.01223507 | 2026-10-12 04:51:54 | origin ↗ |
price_usd | 0.01237004 | 2026-10-12 04:51:54 | origin ↗ |
total_supply | 995,631,661.9548 tokens | 2026-10-12 04:51:54 | origin ↗ |
volume_24h_usd | 272,207 | 2026-10-12 04:51:54 | origin ↗ |
Every series held for ROAM with rows in the last 30 days: latest value, when it was observed, which source observed it, how many rows we hold, how many of the last 30 days it reported, its comparability grade, and the origin link. "days/30" counts distinct dates with at least one row in the window.
| Metric | Latest | As of (UTC) | Source | Rows | Days/30 | Comparability | Verify |
|---|---|---|---|---|---|---|---|
checkins_total | 771,816,397 checkins | 2026-10-12 04:54:01 | first_party_api | 392 | 18/30 | roam-native (unmapped) | origin ↗ |
circulating_supply⚠ CoinGecko coin-page reference — a market-data figure of a DIFFERENT quantity than total supply (circulating vs total); never netted against it or against any chain read (none held) | 366,437,035.2658 tokens | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
fully_diluted_valuation_usd⚠ CoinGecko coin-page reference — a market-data figure | 12,316,140 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
market_cap_change_24h_pct⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 0.3069 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
market_cap_change_24h_usd⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 13,870.22 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
market_cap_rank⚠ CoinGecko coin-page reference — a market-data figure; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 1,786 rank | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
market_cap_usd⚠ CoinGecko coin-page reference — a market-data figure | 4,532,891 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
max_supply⚠ CoinGecko coin-page reference — the protocol's own published cap (1,000,000,000 ROAM), not a chain-read value | 1,000,000,000 tokens | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_ath_usd⚠ CoinGecko coin-page reference — a market-data figure; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 0.4099 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_atl_usd⚠ CoinGecko coin-page reference — a market-data figure; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 0.00468466 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_change_14d_pct⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | -0.989 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_change_1h_pct⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 0.0387 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_change_1y_pct⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | -75.2104 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_change_200d_pct⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | -77.7487 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_change_24h_pct⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 0.2732 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_change_24h_usd⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 0.0000337 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_change_30d_pct⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 1.334 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_change_7d_pct⚠ CoinGecko coin-page reference — the published change column as the endpoint reports it, never re-windowed; starts 2026-09-12 in our archive — shown from first held row, never back-filled | -2.0697 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_from_ath_pct⚠ CoinGecko coin-page reference — a market-data figure; starts 2026-09-12 in our archive — shown from first held row, never back-filled | -96.9823 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_from_atl_pct⚠ CoinGecko coin-page reference — a market-data figure; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 164.0545 percent | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_high_24h_usd⚠ CoinGecko coin-page reference — a market-data figure; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 0.01237357 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_low_24h_usd⚠ CoinGecko coin-page reference — a market-data figure; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 0.01223507 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
price_usd⚠ CoinGecko coin-page reference — a market-data figure | 0.01237004 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
total_members⚠ first-party read of ROAM's own public explorer stats API (payload field totalMemberNum) — one of the two fields the daily collector archives; this series flows daily | 3,289,035 members | 2026-10-12 04:34:01 | first_party_api | 719 | 31/30 | roam-native (unmapped) | origin ↗ |
total_supply⚠ CoinGecko coin-page reference (question-verified comparability as token_supply_total); the estate holds NO on-chain supply read for ROAM — this reference is the only total-supply row, never reconciled against a chain read (there is none) | 995,631,661.9548 tokens | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | question-verified token_supply_total | origin ↗ |
total_wifi⚠ first-party read of ROAM's own public explorer stats API (payload field totalWiFiNum) — one of the two fields the daily collector archives; this series flows daily | 6,418,321 wifi | 2026-10-12 04:34:01 | first_party_api | 719 | 31/30 | roam-native (unmapped) | origin ↗ |
volume_24h_usd⚠ CoinGecko coin-page reference — a market-data figure; starts 2026-09-12 in our archive — shown from first held row, never back-filled | 272,207 usd | 2026-10-12 04:51:54 | CoinGecko /coins/markets | 657 | 31/30 | roam-native (unmapped) | origin ↗ |
Backward revisions are values upstream later replaced for a date we had already archived. The before-value is retained — that retention is the only reason a rewrite is detectable, and it is the part every overwriting vendor discards.
The ledger query ran during generation and returned 0 rows for ROAM. Zero here is the live query result, not a gap — the ledger itself is at /v1/revisions.
No account, no key, no trust required. Commands 1–2 hit the same upstream
endpoints our collectors do (the coingecko.com browser coin page 403s plain curl, so
the programmatic markets endpoint is given, id roam-token); command 3 hits
this estate's public API, where every row carries the same source / as_of /
verify_url fields. Command 1 is the network's own infrastructure — one polite call, no
hammering.
# 1) ROAM's own explorer stats API (first-party origin) — as of 2026-10-12T05:01:27Z:
# ROAM's own public explorer stats endpoint — the exact URL the
# first_party_api rows carry as their verify_url (one polite call,
# this is the network's own infrastructure):
curl -s -H "User-Agent: kairos-check" "https://api.weroam.xyz/v1/explorer/stat/total/num" | python3 -m json.tool
# 2) Market reference (CoinGecko public API, id roam-token):
# CoinGecko public markets API (the endpoint family our collector
# reads for the price/supply/cap rows) — the coingecko.com browser
# coin page 403s plain curl, so the programmatic endpoint is given
# (note the id: roam-token; the bare "roam" id returns an empty list):
curl -s "https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=roam-token" | python3 -m json.tool
# 2b) Human-view check of the verify_url target (the browser coin page 403s plain curl — that is the documented 403, the programmatic command above is the verification path):
curl -s -o /dev/null -w "%{http_code}\n" "https://www.coingecko.com/en/coins/roam-token"
# 3) This estate's public API row for ROAM:
curl -s "https://kairossignal.com/v1/network/ROAM" | python3 -m json.tool | head -60
Method & honesty notes. All counts are queries
against the live ledger at generation time, not restamped copy — this page is
regenerated by gen_deep_dive_roam.py and the hourly
claim_drift_check.py run grades its claims against the live API like every
other published surface. Comparability grades come from the served canonical-metric
system via its own resolver: total_supply maps to
token_supply_total (question-verified). The remaining series are
ROAM-native market/telemetry metrics with no cross-network concept; grading them would
be fabrication, so they are labelled "roam-native (unmapped)". The first-party split is
declared, not smoothed: two series flow daily from ROAM's own explorer stats API, seven
are a one-off 2026-08-09 deep snapshot of the same endpoint held as one row each with
their payload-field mappings stated — never presented as flowing, never back-filled
from probes. The CoinGecko circulating and total supply rows are different quantities
(circulating vs total) and are never netted; the estate holds no on-chain supply read
for ROAM, so no chain-vs-reference reconciliation exists or is implied — absence, not
zero. The estate holds no DefiLlama and no GitHub rows — those sections are absent
rather than zero-filled, and the queries rerun at every regeneration. Estate grades, where the engines serve any, are published exactly as served, unflattering parts included; they are the engines' own outputs, not derived from any series on this page. Where
a section has no data, it is absent — we do not publish zeros for gaps.
Upstream probes run serially by this generator immediately before rendering: ROAM explorer stats API (weroam.xyz) HTTP 200; CoinGecko markets API (roam-token) HTTP 200; estate /v1/network/ROAM HTTP 200.
propintel/gen_deep_dive_roam.py · source of truth:
default.depin_catalog, default.depin_onchain,
default.depin_revision_ledger (ClickHouse, live at generation) ·
Kairos Signal — provenance or silence.