# Kairos Design Partner Brief — 2026-08-24

*Generated 2026-08-24T21:26:07Z — every number below is measured, carries its source and as-of time, and can be re-derived from the live API. Windows are stated; nothing is interpolated or forecast.*

## The verdict

**What is scarce here.** Both halves of a utilisation ratio — capacity AND consumption — on 6 networks: AKT, FIL, FLUX, IO, SC, TFT. Node counts are public everywhere; the denominator is not. This is the entire reason the ledger below can exist, and it is why coverage, not commentary, is what we sell.

**The sharpest thing the data says this week.** AKT gpus: utilisation 31.64% → 48.7%, with demand growing 54.93pp faster than capacity over the window.

Demand is outrunning capacity: the constraint is onboarding, not adoption, and utilisation headroom is the thing to underwrite.

**Also this week:** 3 live dashboard(s) serving a number that stopped moving; 148 of 219 token supplies confirmed by our own chain reads rather than taken on trust.

*Every figure ships source, as-of and a verify URL; the utilisation halves are at GET /v1/supply?network=<sym> and this brief is machine-readable at GET /v1/brief. If you can refute a number here, we would rather publish the correction than the number.*

---

## 1. The Allocator's Ledger — capacity vs demand

> Is this network adding capacity faster than demand absorbs it?

| Network | Resource | Utilisation | Supply Δ | Demand Δ | Divergence | Read |
|---|---|---|---|---|---|---|
| IO | devices | 57.28% → 46.87% | 16.23% | -4.89% | 21.12pp | **overcapacity building** |
| AKT | storage_bytes | 7.98% → 7.22% | 5.87% | -4.21% | 10.08pp | **overcapacity building** |
| SC | storage_bytes | 25.85% → 26.95% | -0.61% | 3.64% | -4.25pp | balanced |
| AKT | compute_cores | 20.55% → 24.78% | -3.24% | 16.69% | -19.93pp | demand outpacing supply |
| AKT | memory_bytes | 14.92% → 19.32% | -4.85% | 23.25% | -28.1pp | demand outpacing supply |
| AKT | gpus | 31.64% → 48.7% | 1.92% | 56.86% | -54.93pp | demand outpacing supply |

*Positive divergence = capacity onboarding faster than demand absorbs it — utilisation falls even while the headline node count rises. The exact number a growth chart hides.*

- Window starts 2026-08-06 00:37:10Z — about 11 days. One window, not a trend.
- Descriptive only. Nothing here is a forecast or a trading signal.
- Pairs come from the canonical ontology; units corrected via native_scale.
- Reported only when both halves have >=8 obs over >=3.0d.

**Withheld from the table above (and why):**

- **GLM providers** — base moved 1233% in 18.0d — beyond 100%, which in a window this short indicates a coverage/collector change rather than a network change. Withheld until the series has a stable baseline; the raw halves remain queryable via the API.

**Pairs we investigated and decided NOT to publish:**

- **IO gpus** — io.net's GPU_TOTAL is NOT registered GPU supply — it equals DEVICES_ACTIVE exactly on every archived day (1,213/1,213 ... 1,199/1,199), and GPU_HIRED + GPU_IDLE == GPU_TOTAL exactly. So hired/total is a FILL RATE on the already-active pool, near-tautological, and it excludes every passive device. It reads 96.7% while true device utilisation (active/registered) is 46.2% and FALLING — registered devices grew 2,057 -> 2,594 (+26%) in 7 days while active stayed flat near 1,200. Publishing 96.7% beside Akash's 30.5% (utilisation of REGISTERED capacity) would invert the actual story: io.net is the network accumulating idle supply fastest, not the one running hottest.
- **NOS devices** — NOSANA HAS NO PUBLISHABLE DENOMINATOR (probed 2026-08-24, recorded so the next agent does not re-probe it). The numerator is free and clean — dashboard.k8s.prd.nos.ci/api/jobs?state=RUNNING reports totalJobs=947 running jobs and each Nosana job occupies exactly one node. The denominator is not: /api/nodes and /api/nodes/stats require an authorization header (401 with one, 422 without), and no unauthenticated sibling exposes a node count. Two tempting substitutes were REFUSED. (1) running + queued NODES from /api/markets: that per-market queue holds only IDLE nodes and is 0 across all 47 markets while 43 jobs sit QUEUED, so the denominator would equal the numerator by construction and publish a tautological 100%. (2) per-market access-SFT supply on Solana (231 for the nvidia-3070 market): a node joining three markets holds three SFTs and nothing burns them when it leaves, so the sum counts memberships and departed nodes, not live nodes. The numerator is collected anyway (collectors_clean/nosana_utilisation.py writes NOS JOBS_RUNNING/JOBS_QUEUED/MARKET_IDLE_NODES) so the pair can complete the day Nosana publishes a node count; no ratio until then.
- **SC devices** — SIACOIN'S DENOMINATOR IS CUMULATIVE, NOT LIVE (measured 2026-08-24). Both halves flow — SC_ACTIVE_HOSTS ~530, SC_TOTAL_HOSTS ~87,048 — so the pair LOOKS complete and would auto-publish a 0.6% utilisation figure. It is not a utilisation figure: TOTAL_HOSTS counts every host ever announced to the Sia network and is monotonically non-decreasing across all 19 archived days (87,032.7 → 87,048.0, never once falling), while ACTIVE_HOSTS moves both ways in the 514-556 band. A denominator that can only grow makes the ratio a function of the network's AGE, so it would fall forever regardless of how the network performs — the Storj denominator trap in a new costume. The numerator is honest and stays queryable; no ratio until Sia publishes a currently-announced host count.
- **STORJ storage_bytes** — STORJ PUBLISHES NO CAPACITY DENOMINATOR (measured 2026-08-24). Everything public is the numerator: stats.storjshare.io/data.json gives bytes stored by customers (53.4 PB) and the node-side footprint after erasure coding (92.2 PB, 1.73x), and the per-satellite node counts are memberships, not capacity — a node serving three satellites is counted three times, which is the same double-count that already inflated STORJ node totals. Nothing upstream states how many bytes the network could hold, so any utilisation ratio would need a denominator we invented. The numerator stays collected and is now correctly labelled storage_bytes_in_use rather than storage_bytes_total, which is what it had been resolving to.

**Entering this table as history accrues:** FIL (storage_bytes), FLUX (compute_cores), FLUX (memory_bytes), FLUX (storage_bytes), TFT (compute_cores), TFT (memory_bytes), TFT (storage_bytes). Both halves of each ratio are already flowing; the engine needs a few days of anchors before it will report a change, and we would rather show you the pipeline than a number computed from two samples.

## 2. Frozen feeds — the stale-dashboard detector

*2026-08-17: this is how we caught Akash's own API serving 30.5% GPU utilisation while the measured value was 55.8%.*

A first-party metric with exactly ONE distinct value across >=20 polls spanning >=5 days, while other metrics on the same network keep moving. The feed answers, but the number is stale at the source — invisible to uptime monitoring.

**21 frozen metrics** on networks whose other feeds are still moving.

**Should be moving daily — these are not:**

- **TFT `HRU_USED`** — unchanged at 0 for 10d across 216 polls, while 12 other metrics on TFT kept moving (source: threefold_gridproxy)
- **GRASS `daily_gb_collected`** — unchanged at 96950 for 10d across 239 polls, while 1 other metric on GRASS kept moving (source: first_party_api)
    - ✅ **Re-queried upstream live while writing this brief**: `https://api.getgrass.io/networkStats?input=%7B%22cluster%22%3A%22mainnet%22%7D` returned `96950` — upstream itself is serving the same static value — the freeze is at the source, not in our collector.
- **TFT `HRU_UTILISATION_PCT`** — unchanged at 0 for 10d across 216 polls, while 12 other metrics on TFT kept moving (source: threefold_gridproxy)

**Frozen but plausibly static (listed for completeness, not alarm):**

- TFT `gateways` — 10d at 133
- FET `inflation` — 10d at 0.03
- GRASS `total_ip_addresses` — 10d at 109755404
- TITAN `candidate_count` — 10d at 267
- DVPN `inflation` — 10d at 0.1
- GRASS `number_of_countries` — 10d at 190
- TFT `countries` — 10d at 78
- ALEPH `peers_total` — 10d at 3558

## 3. Supply verifiability — what we can confirm on-chain ourselves

Chain-read total supply divided by the aggregator's reported total supply, same day. Decimals are normalised by the collectors. A ratio below 1 usually means the token also lives on chains we do not read; a ratio above 1 means the aggregator is understating.

**148 of 219 networks reconcile to within 1% — those figures are independently confirmed, not taken on trust. The rest are listed with the exact contract we read so you can check in one click.**

*A low ratio is a statement about ONE deployment on ONE chain, not a claim that the aggregator is wrong. Multi-chain tokens (native chain + bridged ERC-20) legitimately show low ratios: e.g. POKT and BTT are native elsewhere and only their wrapped portion is readable on the chain we poll. Verified 2026-08-24 that our reads are faithful to the contract: RIZ reads 100,000 on 0x058d411a..., byte-identical to the explorer's own figure for that contract.*

| Network | Chain read | Aggregator says | Verifiable | Contract we read |
|---|---|---|---|---|
| RIZ | 100,000 (evm_blockscout) | 4,989,887,900 | 0.0% | [0x058d411a…](https://eth.blockscout.com/token/0x058d411ab9911f90c74f471bdc9d2bb4cf9b309c) |
| BDX | 4,561,770 (bsc_rpc) | 9,939,216,536 | 0.1% | [0x9d10a1ec…](https://bscscan.com/token/0x9d10a1ec41fe7878429bb457e31f9b050d38c633) |
| GENE | 261,413 (bsc_rpc) | 100,000,000 | 0.3% | [0x9df46546…](https://bscscan.com/token/0x9df465460938f9ebdf51c38cc87d72184471f8f0) |
| POKT | 15,389,709 (evm_blockscout) | 2,351,355,446 | 0.7% | [0x764a726d…](https://eth.blockscout.com/token/0x764a726d9ced0433a8d7643335919deb03a9a935) |
| DEUS | 8,710,939 (solana_rpc) | 1,000,000,000 | 0.9% | [7JoGUTeaXk…](https://solscan.io/token/7JoGUTeaXkjcMGa6xJP2idYNYiLreto1WnsACHnpw3Gd) |
| OORT | 20,000,000 (evm_blockscout) | 1,998,900,000 | 1.0% | [0x5651fa7a…](https://eth.blockscout.com/token/0x5651fa7a726b9ec0cad00ee140179912b6e73599) |
| EWT | 917,463 (evm_blockscout) | 81,071,825 | 1.1% | [0x178c820f…](https://eth.blockscout.com/token/0x178c820f862b14f316509ec36b13123da19a6054) |
| OCTA | 1,173,602 (evm_blockscout) | 44,907,921 | 2.6% | [0xfa704148…](https://eth.blockscout.com/token/0xfa704148d516b209d52c2d75f239274c8f8eaf1a) |
| NMT | 3,858,485 (evm_blockscout) | 143,524,102 | 2.7% | [0x03aa6298…](https://eth.blockscout.com/token/0x03aa6298f1370642642415edc0db8b957783e8d6) |
| BTT | 36,542,206,310,204 (evm_blockscout) | 990,000,000,000,000 | 3.7% | [0xc6699281…](https://eth.blockscout.com/token/0xc669928185dbce49d2230cc9b0979be6dc797957) |
| SDM | 37,781,538 (evm_blockscout) | 1,000,000,000 | 3.8% | [0x9cfe02eb…](https://base.blockscout.com/token/0x9cfe02eb040c6f5718126128dbba0c1d364d9c07) |
| NTMPI | 19,055,147 (evm_blockscout) | 399,963,020 | 4.8% | [0x53be7be0…](https://eth.blockscout.com/token/0x53be7be0ce7f92bcbd2138305735160fb799be4f) |
| LOOPIN | 3,235,877 (evm_blockscout) | 56,451,875 | 5.7% | [0x975da7b2…](https://eth.blockscout.com/token/0x975da7b2325f815f1de23c8b68f721fb483b8071) |
| SLC | 6,104,754,762 (evm_blockscout) | 98,797,933,055 | 6.2% | [0x6bd83abc…](https://base.blockscout.com/token/0x6bd83abc39391af1e24826e90237c4bd3468b5d2) |
| GNUS | 1,000,000 (evm_blockscout) | 15,193,848 | 6.6% | [0x61457703…](https://eth.blockscout.com/token/0x614577036f0a024dbc1c88ba616b394dd65d105a) |

## 4. Whale netflow extremes — exchange wallet flows

First difference of summed proof-of-reserve wallet balances across a FIXED exchange set (DefiLlama-tracked; Coinbase/Kraken publish no wallets and are absent). Flagged when the latest daily flow sits outside the middle 90% of its own ~90-day history.

- **APT** 2026-08-24: +4.789% of tracked balance (top 5% of 91d) — Coins arriving on tracked exchange wallets
- **SEI** 2026-08-21: +1.773% of tracked balance (top 5% of 88d) — Coins arriving on tracked exchange wallets
- **AAVE** 2026-08-24: +1.646% of tracked balance (top 5% of 90d) — Coins arriving on tracked exchange wallets

## 5. Concentration watch — Solana holder concentration

*Token ACCOUNTS, not owners — pools, treasuries and exchange wallets count, so this is an upper-bound concentration proxy. Series began 2026-08-24; week-over-week deltas appear as the baseline accrues.*

- **STAR**: top-10 accounts hold 99.7% (top-1: 27.1%)
- **PULSE**: top-10 accounts hold 99.4% (top-1: 27.5%)
- **GGRID**: top-10 accounts hold 99.2% (top-1: 83.9%)
- **ROVR**: top-10 accounts hold 98.0% (top-1: 20.1%)
- **ACRON**: top-10 accounts hold 96.4% (top-1: 82.0%)
- **PHY**: top-10 accounts hold 95.7% (top-1: 42.4%)
- **CPU**: top-10 accounts hold 95.0% (top-1: 73.7%)
- **BLESS**: top-10 accounts hold 94.6% (top-1: 30.0%)
- **QUIVER**: top-10 accounts hold 93.9% (top-1: 66.4%)
- **AIDD**: top-10 accounts hold 93.6% (top-1: 48.6%)

## 6. Supply movers — first-party telemetry, 7 days

First-party supply telemetry only (tier=supply_telemetry). Latest value vs the value ~8-15 days ago; moves >15% shown. Single-window description, not a trend.

- **GRT DL_FEES_24H_USD**: +1649.6% (141 → 2467, as of 2026-08-23)
- **DATA BYTES_PER_SEC**: +1116.3% (376397 → 4.57824e+06, as of 2026-08-23)
- **CRU chain_health_peers**: +675.0% (4 → 31, as of 2026-08-23)
- **XCH DL_FEES_24H_USD**: +286.5% (1.85 → 7.15, as of 2026-08-23)
- **AKT MEMORY_PENDING**: +281.2% (6.3085e+10 → 2.40451e+11, as of 2026-08-23)
- **FLUX DIFFICULTY**: +234.0% (0.0785367 → 0.26228, as of 2026-08-23) — ⚠ two writers on this metric — cross-check before quoting
- **AKT GPU_PENDING**: +200.0% (1 → 3, as of 2026-08-23)
- **TFT DEDICATED_NODES_ONLINE**: +137.8% (74 → 176, as of 2026-08-23)
- **AUKI DL_FEES_30D_USD**: +126.8% (1286 → 2917, as of 2026-08-23)
- **AUKI DL_REV_30D_USD**: +126.8% (1286 → 2917, as of 2026-08-23)
- **AKT DAILY_LEASES**: +104.1% (518 → 1057, as of 2026-08-23)
- **PEAQ DL_FEES_24H_USD**: +100.0% (0.01 → 0.02, as of 2026-08-23)
- **ATH DL_REV_7D_USD**: -97.0% (271520 → 8113, as of 2026-08-23)
- **ATH DL_FEES_7D_USD**: -97.0% (1.3576e+06 → 40566, as of 2026-08-23)
- **XCH DL_FEES_7D_USD**: -97.0% (843.56 → 25.72, as of 2026-08-23)
- **BZZ UNREACHABLE_NODES**: -90.8% (2965 → 274, as of 2026-08-23)
- **FLOCK DL_FEES_7D_USD**: -86.6% (495.09 → 66.48, as of 2026-08-23)
- **FLOCK DL_REV_7D_USD**: -86.6% (495.09 → 66.48, as of 2026-08-23)
- **WAL DL_FEES_24H_USD**: -85.8% (478 → 68, as of 2026-08-23)
- **WAL DL_REV_24H_USD**: -85.8% (478 → 68, as of 2026-08-23)

## 7. The track record — last week's brief, re-measured

Every claim in the previous brief, re-measured today by the same code that produced it. Generated mechanically from the prior brief's JSON: reversals cannot be dropped and wins cannot be added by hand.

*This is the first issue — there is nothing yet to grade. From next week this section restates every claim above with its measured outcome, including the ones that did not hold.*


## 8. The call sheet — the questions these numbers earn you

Each question is generated from a measured row in this brief and carries that row's number. No question appears here that the data above does not support.

**1. IO team / IO allocation**
> You added 16.23% more devices capacity while demand moved -4.89% — utilisation fell 10.41pp. What is the committed demand pipeline that absorbs the capacity already onboarded, and what does the emission schedule cost per idle unit until it does?

*Basis: devices utilisation 57.28% → 46.87%, capacity +16.23% vs demand -4.89%*

**2. AKT team / AKT allocation**
> You added 5.87% more storage_bytes capacity while demand moved -4.21% — utilisation fell 0.76pp. What is the committed demand pipeline that absorbs the capacity already onboarded, and what does the emission schedule cost per idle unit until it does?

*Basis: storage_bytes utilisation 7.98% → 7.22%, capacity +5.87% vs demand -4.21%*

**3. AKT team / AKT allocation**
> Demand for compute_cores grew 16.69% against -3.24% capacity — utilisation is up to 24.78%. What is the onboarding constraint (hardware, staking cost, geography), and at what utilisation does pricing or QoS start to bind?

*Basis: compute_cores utilisation 20.55% → 24.78%, demand +16.69% vs capacity -3.24%*

**4. AKT team / AKT allocation**
> Demand for memory_bytes grew 23.25% against -4.85% capacity — utilisation is up to 19.32%. What is the onboarding constraint (hardware, staking cost, geography), and at what utilisation does pricing or QoS start to bind?

*Basis: memory_bytes utilisation 14.92% → 19.32%, demand +23.25% vs capacity -4.85%*

**5. AKT team / AKT allocation**
> Demand for gpus grew 56.86% against 1.92% capacity — utilisation is up to 48.7%. What is the onboarding constraint (hardware, staking cost, geography), and at what utilisation does pricing or QoS start to bind?

*Basis: gpus utilisation 31.64% → 48.7%, demand +56.86% vs capacity 1.92%*

**6. TFT team / their public dashboard**
> Your `HRU_USED` has served exactly one value, 0, for 10 days across 216 of our polls, while 12 other metrics on TFT kept moving. When did that figure last recompute, and is anything downstream of it — grant reporting, rewards, the investor deck — reading it as live?

*Basis: `HRU_USED` = 0 across 216 polls over 10d*

**7. GRASS team / their public dashboard**
> Your `daily_gb_collected` has served exactly one value, 96950, for 10 days across 239 of our polls, while 1 other metric on GRASS kept moving. We re-queried https://api.getgrass.io/networkStats?input=%7B%22cluster%22%3A%22mainnet%22%7D while writing this and got the same value. When did that figure last recompute, and is anything downstream of it — grant reporting, rewards, the investor deck — reading it as live?

*Basis: `daily_gb_collected` = 96950 across 239 polls over 10d*

**8. TFT team / their public dashboard**
> Your `HRU_UTILISATION_PCT` has served exactly one value, 0, for 10 days across 216 of our polls, while 12 other metrics on TFT kept moving. When did that figure last recompute, and is anything downstream of it — grant reporting, rewards, the investor deck — reading it as live?

*Basis: `HRU_UTILISATION_PCT` = 0 across 216 polls over 10d*

**9. RIZ team**
> We can independently confirm 0.0% of your reported total supply on 0x058d411ab9911f90c74f471bdc9d2bb4cf9b309c. Which contracts hold the remainder, so the full float is verifiable without taking an aggregator's word for it?

*This is a coverage question, not an allegation: a multi-chain token legitimately holds supply on chains we do not read. The point of asking is to make the full float verifiable rather than reported.*

*Basis: chain read 100,000 vs aggregator 4,989,887,900 (0.0% verifiable on eth)*

**10. BDX team**
> We can independently confirm 0.1% of your reported total supply on 0x9d10a1ec41fe7878429bb457e31f9b050d38c633. Which contracts hold the remainder, so the full float is verifiable without taking an aggregator's word for it?

*This is a coverage question, not an allegation: a multi-chain token legitimately holds supply on chains we do not read. The point of asking is to make the full float verifiable rather than reported.*

*Basis: chain read 4,561,770 vs aggregator 9,939,216,536 (0.1% verifiable on bsc)*

**11. GENE team**
> We can independently confirm 0.3% of your reported total supply on 0x9df465460938f9ebdf51c38cc87d72184471f8f0. Which contracts hold the remainder, so the full float is verifiable without taking an aggregator's word for it?

*This is a coverage question, not an allegation: a multi-chain token legitimately holds supply on chains we do not read. The point of asking is to make the full float verifiable rather than reported.*

*Basis: chain read 261,413 vs aggregator 100,000,000 (0.3% verifiable on bsc)*


---
*Kairos Signal — provenance or silence. Verify any value: every API row ships source, as_of and a verify URL. https://kairossignal.com*