Sato Hub

Report

State of Onchain Agents 2026

Twenty numbers, each with its method.

Generated 2026-09-07 by scripts/report-draft.mjs from Sato Hub's tables. Nothing in this document is typed in; every number has the query that reproduces it. The rows do not add across venues, chains or stages — that is a property of the data, not a formatting choice. "Unknown" means unknown, never zero.

Publication of this document as a page is an owner decision; the draft is generated every week regardless.

  1. 01

    Share of listings with a deploy spec whose install we reproduced in a container

    23.6% % of listings with a deploy_spec

    • Stage: directory / deploy_status=verified
    • Method: weekly container run of the published install steps (scripts/verify-deploy-spec.mjs)
    • Sample: 305
    • As of: 2026-09-07
    • Note: 72 of 305. Says the install steps complete; nothing about runtime or safety.
    Reproduce
    jq '[.[]|select(.deploy_spec!=null)]|length, ([.[]|select(.deploy_spec.deploy_status=="verified" or any(.deploy_spec.install_variants[]?; .deploy_status=="verified"))]|length)' data/resources.json

    Cite this page

    Sato Hub. "Sato Hub — Share of listings with a deploy spec whose install we reproduced in a container." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f1

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  2. 02

    Container verification attempts recorded, and how many passed

    28 / 68 runs

    • Stage: deploy_verification_runs
    • Method: one row per (slug, ran_at, lane) from the weekly verifier
    • Sample: 68
    • As of: 2026-09-07
    • Note: A failing run names the rung it failed on; the queue retries failures after 28 days (--retry-failed-after). A credentials rung means the spec needs a secret the harness does not hold, not that the install is broken.
    Reproduce
    select count(*) filter (where ok), count(*) from deploy_verification_runs;

    Cite this page

    Sato Hub. "Sato Hub — Container verification attempts recorded, and how many passed." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f2

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  3. 03

    Listings with a 14-day observed record of our own checks

    360 listings

    • Stage: directory / uptime_observed.days ≥ 14
    • Method: daily probe of the endpoint the listing publishes (scripts/probe.mjs → uptime rollup)
    • Sample: 360
    • As of: 2026-09-07
    • Note: A success rate of OUR checks, not uptime: failures before 2026-09-01 are unattributable.
    Reproduce
    jq '[.[]|select(.uptime_observed.days_observed>=14)]|length' data/resources.json

    Cite this page

    Sato Hub. "Sato Hub — Listings with a 14-day observed record of our own checks." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f3

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  4. 04

    Share of those answering ≥95% of our checks

    81.7% % of listings with ≥14 observed days

    • Stage: directory / observed success ≥ 95
    • Method: same probe series
    • Sample: 360
    • As of: 2026-09-07
    Reproduce
    jq '[.[]|select(.uptime_observed.days_observed>=14 and .uptime_observed.success_rate_pct>=95)]|length' data/resources.json

    Cite this page

    Sato Hub. "Sato Hub — Share of those answering ≥95% of our checks." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f4

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  5. 05

    ERC-8004 agents registered on Ethereum

    50,727 registered agent id

    • Stage: erc8004 / Ethereum / registered
    • Method: lastAgentId (_lastId, ERC-7201 namespaced storage slot) on the singleton Identity Registry (tier 1)
    • Sample: —
    • As of: 2026-09-07
    • Note: Read from the registry's storage; a registration is a mint, not a running agent.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='erc8004' and chain='Ethereum' and stage='registered' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — ERC-8004 agents registered on Ethereum." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f5

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  6. 06

    ERC-8004 agents registered on Base

    85,106 registered agent id

    • Stage: erc8004 / Base / registered
    • Method: lastAgentId (_lastId, ERC-7201 namespaced storage slot) on the singleton Identity Registry (tier 1)
    • Sample: —
    • As of: 2026-09-07
    • Note: Read from the registry's storage; a registration is a mint, not a running agent.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='erc8004' and chain='Base' and stage='registered' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — ERC-8004 agents registered on Base." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f6

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  7. 07

    ERC-8004 agents registered on BNB Chain

    338,483 registered agent id

    • Stage: erc8004 / BNB Chain / registered
    • Method: lastAgentId (_lastId, ERC-7201 namespaced storage slot) on the singleton Identity Registry (tier 1)
    • Sample: —
    • As of: 2026-09-07
    • Note: Read from the registry's storage; a registration is a mint, not a running agent.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='erc8004' and chain='BNB Chain' and stage='registered' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — ERC-8004 agents registered on BNB Chain." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f7

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  8. 08

    New ERC-8004 registrations on Base over the window

    24,130 new registered agent id over the window

    • Stage: erc8004 / Base / registered_new_in_window
    • Method: lastAgentId at the head minus lastAgentId at block 49706639 — exact, whole population, no sampling (tier 1)
    • Sample: —
    • As of: 2026-09-07
    • Note: From block-sampled storage deltas; the row states its window.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='erc8004' and chain='Base' and stage='registered_new_in_window' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — New ERC-8004 registrations on Base over the window." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f8

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  9. 09

    ERC-4337 smart accounts deployed on Base (week)

    53,496 smart account deployed in the sampled blocks — TOTAL DEPLOYMENTS INCLUDING HUMANS, not agents

    • Stage: erc4337_accounts / Base / deployed
    • Method: EntryPoint AccountDeployed logs, stratified: 12/12 block segments spread across the trailing 7 days, every event in each segment counted, covering 37.70% of the window's blocks; factory read from the event's first data word, then grouped by provider (tier 2)
    • Sample: 75991
    • As of: 2026-09-07
    • Note: Denominator for the supply↔demand join. A raw deployment count is NEVER an adoption figure. Coinbase Smart Wallet is the same contract behind consumer Coinbase Wallet, and every factory here serves ordinary humans. Read the intersected row instead.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='erc4337_accounts' and chain='Base' and stage='deployed' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — ERC-4337 smart accounts deployed on Base (week)." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f9

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  10. 10

    Sampled smart accounts that ALSO hold an ERC-8004 id or settle x402

    0 sampled smart account that ALSO holds an ERC-8004 agent id or settles x402

    • Stage: erc4337_accounts / Base / intersected
    • Method: for up to 250 distinct accounts from the deployment sample: balanceOf(account) on the ERC-8004 Identity Registry, plus membership of the set of addresses that paid a catalogued x402 seller in the same window (tier 2)
    • Sample: 250
    • As of: 2026-09-07
    • Note: The intersection is the number, not either count alone. This is the only figure on this venue that may be described as adoption, and it is still an indicator rather than proof — an account can hold an agent id without being an agent. Both legs are one-week windows; an account that settled x402 last month does not appear.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='erc4337_accounts' and chain='Base' and stage='intersected' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — Sampled smart accounts that ALSO hold an ERC-8004 id or settle x402." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f10

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  11. 11

    Virtuals agent tokens with a transfer in the last 7 days

    58 sampled graduated agent whose token had >=1 Transfer in the trailing 7 days (market activity of the TOKEN, not the agent)

    • Stage: virtuals / Base / token_active_7d
    • Method: every 10th agent id of 1233 on AgentNftV2 resolved to its ERC-20 via virtualInfo(tokenId); all 123 resolved tokens placed in one eth_getLogs address filter over the trailing 7 days on Base (tier 3)
    • Sample: 123
    • As of: 2026-09-07
    • Note: Share of the catalogue, denominator stated in the row. A token transfer is market activity around the agent — trading, liquidity, airdrops — and is not evidence the agent did anything. 1 of 124 sampled ids could not be resolved and are excluded from the denominator.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='virtuals' and chain='Base' and stage='token_active_7d' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — Virtuals agent tokens with a transfer in the last 7 days." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f11

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  12. 12

    x402 settlements to catalogued sellers after the noise filter

    145,758 USDC transfer to a catalogued x402 seller, EXCLUDING sellers classified as machine noise

    • Stage: x402 / Base / settled_to_catalogued_seller_real
    • Method: the settled_to_catalogued_seller lane minus transfers to sellers where mean transfer < $0.02 AND distinct payers <= 3 over the window (heuristic; thresholds are constants, stated here) (tier 3)
    • Sample: —
    • As of: 2026-09-07
    • Note: Real vs nominal: mean ≤ $0.02 with ≤ 3 payers is classified as noise and reported as a second figure. A heuristic, not a fact: 288 of 812 paid sellers (5,131 transfers, $43) were classified as machine noise this window. The nominal row is unchanged and sits beside this one.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='x402' and chain='Base' and stage='settled_to_catalogued_seller_real' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — x402 settlements to catalogued sellers after the noise filter." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f12

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  13. 13

    Catalogued x402 sellers paid at least once (real)

    524 catalogued x402 seller paid at least once, EXCLUDING sellers classified as machine noise

    • Stage: x402 / Base / seller_paid_real
    • Method: the seller_paid lane minus sellers classified as machine noise by the same rule (tier 3)
    • Sample: —
    • As of: 2026-09-07
    • Note: Heuristic. A seller with one automated customer is real revenue to that seller; it is excluded here because the question this row answers is breadth of demand, not existence of it.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='x402' and chain='Base' and stage='seller_paid_real' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — Catalogued x402 sellers paid at least once (real)." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f13

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  14. 14

    Solana agent-identity program accounts (UPPER BOUND)

    1,585 program account (UPPER BOUND — includes initialised-but-unused and duplicate accounts)

    • Stage: solana_mpl_agent_identity / Solana / registered_upper_bound
    • Method: getProgramAccounts on 1DREGFgysWYxLnRnKQnwrxnJQeSMk2HmGaC6whw2B2p with a zero-length dataSlice (keys only) via public mainnet RPC; count of returned accounts (tier 2)
    • Sample: —
    • As of: 2026-09-07
    • Note: getProgramAccounts counts every account the program owns, agents or not. An account is not an agent, and the count includes per-agent metadata PDAs and unused entries. Read as 'at most this many'. Solana x402 settlement is NOT covered by any row in this collector.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='solana_mpl_agent_identity' and chain='Solana' and stage='registered_upper_bound' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — Solana agent-identity program accounts (UPPER BOUND)." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f14

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  15. 15

    pathUSD TransferWithMemo transfers on Tempo in 7 days

    17 memo-tagged pathUSD transfer in the sampled blocks

    • Stage: tempo_mpp / Tempo / memo_transfers_7d
    • Method: eth_getLogs for TransferWithMemo on pathUSD 0x20c0000000000000000000000000000000000000, 12/12 stratified segments across the trailing 7 days covering 10.5% of the window's blocks; every event in each segment counted (tier 2)
    • Sample: 17
    • As of: 2026-09-07
    • Note: Memo transfers are the MPP payment shape; not every memo transfer is an agent payment. MPP can settle over other rails and other TIP-20s, and any transfer may carry a memo. This is a sampled count over one token on one chain — RATES between the three rows are valid, the counts are floors over the sampled blocks.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='tempo_mpp' and chain='Tempo' and stage='memo_transfers_7d' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — pathUSD TransferWithMemo transfers on Tempo in 7 days." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f15

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  16. 16

    Largest single producing platform in the ERC-8004 sample (termix-platform-prod.s3.ap-southeast-1.amazonaws.com, listed as termix)

    112 registration in sample attributed to a producing platform

    • Stage: erc8004 / Base / registered_by_platform
    • Method: agentURI classified as url; stratified sample: the trailing 30 days split into 12 equal block segments, up to 20 registrations taken from each, applied identically on every chain (tier 2)
    • Sample: 240
    • As of: 2026-09-07
    • Note: Attribution by agentURI host; a host is strong evidence of the producer, not proof. Sample count, never scaled to the population. A host is where the agent's metadata is served — strong evidence of the producing platform, not proof of it.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='erc8004' and chain='Base' and stage='registered_by_platform' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — Largest single producing platform in the ERC-8004 sample (termix-platform-prod.s3.ap-southeast-1.amazonaws.com, listed as termix)." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f16

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  17. 17

    Sampled Base registrations that declare no agentURI at all

    60 registration in sample attributed to a producing platform

    • Stage: erc8004 / Base / registered_by_platform
    • Method: agentURI classified as absent; stratified sample: the trailing 30 days split into 12 equal block segments, up to 20 registrations taken from each, applied identically on every chain (tier 1)
    • Sample: 240
    • As of: 2026-09-07
    • Note: An observation about the registrations, not a parse failure. These registrations declare NO agentURI at all. That is an observation, not a parse failure.
    Reproduce
    select value, unit, method, sample_size, caveat from agent_metrics_history where venue='erc8004' and chain='Base' and stage='registered_by_platform' and week='2026-W37';

    Cite this page

    Sato Hub. "Sato Hub — Sampled Base registrations that declare no agentURI at all." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f17

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  18. 18

    Crypto-relevant agent skills indexed with a disclosure

    251 skills

    • Stage: skills / crypto_relevant
    • Method: ClawHub + skills.sh public APIs, crypto vocabulary gate, static scan (scripts/lib/skills/disclose.mjs)
    • Sample: 251
    • As of: 2026-09-07
    • Note: A disclosure describes; it is not a safety verdict.
    Reproduce
    select count(*) from skills where crypto_relevant;

    Cite this page

    Sato Hub. "Sato Hub — Crypto-relevant agent skills indexed with a disclosure." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f18

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  19. 19

    Share of those skills carrying at least one disclosure flag

    42.6% % of indexed skills

    • Stage: skills / disclosure.flags ≠ []
    • Method: static scan
    • Sample: 251
    • As of: 2026-09-07
    • Note: A wallet skill that generates keys is doing its job; the flag says so, it does not condemn.
    Reproduce
    select count(*) filter (where jsonb_array_length(disclosure->'flags')>0), count(*) from skills where crypto_relevant;

    Cite this page

    Sato Hub. "Sato Hub — Share of those skills carrying at least one disclosure flag." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f19

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.

  20. 20

    Skills that generate or handle private keys

    82 skills

    • Stage: skills / flag generates_or_handles_keys
    • Method: static scan
    • Sample: 251
    • As of: 2026-09-07
    Reproduce
    select count(*) from skills where disclosure->'flags' ? 'generates_or_handles_keys';

    Cite this page

    Sato Hub. "Sato Hub — Skills that generate or handle private keys." Sato Hub, accessed 2026-09-07. https://satohub.ai/state-of-onchain-agents#f20

    This page is refreshed daily. Citations include the date so a reader can tell which snapshot a claim came from.