Sato Hub

Measured, not announced

The onchain agent economy

We don't just list what agents are built from. This is what we can actually observe on-chain: how many agent identities exist, what their wallets do after registering, which products are producing them, and what settles.

Week 2026-W36 · last collected 2026-09-01 · every figure below carries its method, evidence tier and sample size. Take the data (CC-BY).

How to read this page

  • Nothing here adds up, on purpose. An ERC-8004 registration, an Olas staked service, a Virtuals token launch and a paid Mech task are four different objects. There is no total on this page and there is none in the export.
  • Every number names its stage. “58,400 agents” is false. “19,180 launched, 1,233 graduated” is true.
  • A sampled rate is never multiplied by a population. You will not find an “estimated active agents” figure here, because we would be making it up.
  • Unknown is a value. Where a public node prunes its history we say unknown. It never rounds to zero.
  • Everything here is EVM-shaped. Solana is not covered — and by transaction count, x402 mostly settles there.

The lifecycle of a registered agent

Registering is itself a transaction, so “has this agent ever transacted?” trivially returns 100% and means nothing. Each wallet is compared against its own registration count instead: the registry is an ERC-721, so balanceOf(owner) is exactly how many agent ids that wallet holds. Per chain, never blended — the chains disagree sharply and a blended rate would hide it.

BNB Chain

sample covers 0.02d
324,930registered agent ids

new this window: unknown — the public node prunes this chain's history

Of a sample of 19 owner wallets

Funded13 of 19

n=19 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

Active beyond registering6 of 19

n=19 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

In ongoing use1 of 19

n=19 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

the rate sample looked at 0.1% of the window's blocks, spread evenly across it — it estimates RATES and is not a census (use registered_new_in_window for counts); only 1 of 12 time segments were readable from a keyless node (public nodes prune history), so the sample covers 0.02 days, not 30; 1 segment(s) hit the per-segment cap, so segment counts are floors — the RATES remain valid, the counts are not a census

Base

sample covers 27.72d
83,521registered agent ids

+23,066 in the last 30 days

Of a sample of 75 owner wallets

Funded100%
Active beyond registering86.7%
In ongoing use80%

the rate sample looked at 11.7% of the window's blocks, spread evenly across it — it estimates RATES and is not a census (use registered_new_in_window for counts); 12 segment(s) hit the per-segment cap, so segment counts are floors — the RATES remain valid, the counts are not a census; 2 owner wallet(s) could not be read and are excluded from the denominator

Ethereum

sample covers 28.61d
50,658registered agent ids

+3,696 in the last 30 days

Of a sample of 2 owner wallets

Funded2 of 2

n=2 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

Active beyond registering2 of 2

n=2 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

In ongoing use2 of 2

n=2 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

the rate sample looked at 43.7% of the window's blocks, spread evenly across it — it estimates RATES and is not a census (use registered_new_in_window for counts); 11 segment(s) were only partially scanned before the request budget ran out; 1 segment(s) hit the per-segment cap, so segment counts are floors — the RATES remain valid, the counts are not a census

Gnosis

sample covers 30.07d
4,121registered agent ids

+16 in the last 30.07 days

Of a sample of 1 owner wallets

Funded1 of 1

n=1 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

Active beyond registering1 of 1

n=1 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

In ongoing use0 of 1

n=1 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

Avalanche

sample covers 27.92d
1,807registered agent ids

+17 in the last 30.23 days

Of a sample of 0 owner wallets

Fundedunknown

n=0 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

Active beyond registeringunknown

n=0 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

In ongoing useunknown

n=0 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

the rate sample looked at 4.0% of the window's blocks, spread evenly across it — it estimates RATES and is not a census (use registered_new_in_window for counts); 12 segment(s) were only partially scanned before the request budget ran out

Arbitrum

sample covers 28.74d
1,437registered agent ids

+214 in the last 30.08 days

Of a sample of 7 owner wallets

Funded7 of 7

n=7 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

Active beyond registering3 of 7

n=7 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

In ongoing use1 of 7

n=7 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

the rate sample looked at 45.5% of the window's blocks, spread evenly across it — it estimates RATES and is not a census (use registered_new_in_window for counts); 11 segment(s) were only partially scanned before the request budget ran out; 1 segment(s) hit the per-segment cap, so segment counts are floors — the RATES remain valid, the counts are not a census; 2 owner wallet(s) could not be read and are excluded from the denominator

Polygon

sample covers 0.66d
631registered agent ids

new this window: unknown — the public node prunes this chain's history

Of a sample of 0 owner wallets

Fundedunknown

n=0 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

Active beyond registeringunknown

n=0 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

In ongoing useunknown

n=0 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

the rate sample looked at 2.2% of the window's blocks, spread evenly across it — it estimates RATES and is not a census (use registered_new_in_window for counts); only 1 of 12 time segments were readable from a keyless node (public nodes prune history), so the sample covers 0.66 days, not 30; 1 segment(s) were only partially scanned before the request budget ran out

Optimism

sample covers 28.38d
542registered agent ids

+7 in the last 30 days

Of a sample of 0 owner wallets

Fundedunknown

n=0 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

Active beyond registeringunknown

n=0 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

In ongoing useunknown

n=0 — below the 20-observation threshold. Shown because hiding it would be worse; not a finding.

the rate sample looked at 35.2% of the window's blocks, spread evenly across it — it estimates RATES and is not a census (use registered_new_in_window for counts); 12 segment(s) were only partially scanned before the request budget ran out

The venues

Each venue counts a different object and charges a different price of entry. Free and permissionless is not the same market as bonded, and a launchpad is not a registry.

Catalogued and not measurable

An absent fingerprint is a finding, not a gap to hide. These venues are listed with the architectural reason they cannot be censused from chain data.

Conversion — the one comparable

Raw size is not comparable across venues. Stage-to-stage conversion is, and it is the more interesting number: it says what share of the things that entered actually became something. Rates computed on fewer than 20 observations are excluded from this table — they exist in the data, they are just not findings.

VenueFrom → toRateCountsEvidence
ERC-8004 Identity RegistryBasesampled owner walletsactive beyond registering86.7%65 / 75Indicator

the rate sample looked at 11.7% of the window's blocks, spread evenly across it — it estimates RATES and is not a census (use registered_new_in_window for counts); 12 segment(s) hit the per-segment cap, so segment counts are floors — the RATES remain valid, the counts are not a census; 2 owner wallet(s) could not be read and are excluded from the denominator

x402 payment railBasecatalogued sellerspaid at least once78.3%785 / 1,002Indicator

Out of 1002 catalogued EVM payTo addresses. Receiving USDC is evidence of a paying customer, not proof the payment came through x402.

Virtuals ProtocolBaselaunchedgraduated6.4%1,233 / 19,180Proof

Denominators differ: launched counts BondingV5 only, graduated counts every bonding version. The widely-quoted 2.1% divides the same graduations by an all-versions launch total we have never read.

Where the activity is

Where agent activity actually happens, versus where the announcements happen. The empty and unknown rows are kept in.

BNB Chain

ERC-8004 Identity Registry
324,930

Base

x402 payment rail
135,166
ERC-8004 Identity Registry
83,521
Virtuals Protocol
19,180
Olas (Autonolas)
636

Ethereum

ERC-8004 Identity Registry
50,658
Olas (Autonolas)
58

Gnosis

ERC-8004 Identity Registry
4,121
Olas (Autonolas)
3,795

Avalanche

ERC-8004 Identity Registry
1,807

Arbitrum

ERC-8004 Identity Registry
1,437

Polygon

ERC-8004 Identity Registry
631
Olas (Autonolas)
318

Optimism

ERC-8004 Identity Registry
542
Olas (Autonolas)
195

Bars are scaled against the largest single figure on the page, and the bar label names the stage each figure counts. They are not comparable across venues — a registered agent id, a token launch and a USDC settlement are different objects — and nothing on this page adds them together.

How much of this we cannot attribute

Of 70,941 smart-account deployments sampled across five chains this week, only 13.2% can be attributed to a product in our directory. Safe alone accounts for 73.7% and has no listing here. A further 12.9% comes from factory addresses we do not recognise at all.

11 of 34 confirmed contracts have no directory listing to attribute them to. And five wallet-infrastructure providers — Privy (server and embedded), Turnkey, Coinbase CDP Server Wallets, Dynamic and Fireblocks — are structurally unmeasurable: they mint ordinary EOAs, and when their user deploys a smart account the factory belongs to a different company. So this leaderboard covers account-abstraction vendors well and wallet-infrastructure vendors not at all. That is a property of the architecture, not a gap we can close with more effort.

What this data cannot settle

  • Whether a registered agent is an agent. Registration is permissionless and free on most of these venues. It proves an entry exists, not that software runs behind it.
  • BNB Chain, which holds most of the ids. Its count is exact and daily; its lifecycle is not measurable over a 30-day window from any keyless endpoint we could find — the log archive is roughly two hours deep.
  • Anything on Solana. Every method here is an EVM method. Any claim about “the agent economy” built only from this page is EVM-shaped and should say so.
  • Whether a smart account is an agent. Across 1,250 sampled smart accounts on five chains, one held an ERC-8004 agent id or paid a catalogued x402 seller in the same week. Smart-account infrastructure and onchain agents are, so far, almost entirely separate populations.
  • Who runs a wallet. These are observations of public software. No identities, no IPs, no per-caller profiles.

Join the Sato Hub Briefing

One email a week — the agents, tools, and infrastructure that actually shipped, and why they matter.