Sato Hub
identity registry

ERC-8004 Identity Registry

As of 2026-10-16, ERC-8004 agent ids registered on 0G: 3,919,209; on BNB Chain: 375,182; on Base: 154,989 and 23 more chains, never summed.data: weekly readings, JSON · CSV · MCP onchain_agent_get_trend(venue="erc8004", stage="registered", grain="daily") · current count per chain, table

  • Week2026-W42
  • Updated2026-10-16

Each chain is its own registry, so there is no total. Past registration, from a sample of recent registrants rather than the whole registry: 89.3% of the owner wallets in the Base sample (25 of 28) sent a transaction beyond their registration in the last 7 days, read 2026-10-12.

New ids since the previous read: 0G +10,428 on 2026-10-15; BNB Chain +878 on 2026-10-15; Base +23,106 on 2026-10-15. Counted per chain, never summed.

How measured · The ERC-8004 Identity Registry's own agent-id counter (`_lastId`, one storage read at the chain head) on that chain, covering the whole registry with no sampling. The latest daily reading.

One unit is
one registered agent id
Entry costs
free / permissionless (gas only)

Overlaps with olas

These populations intersect: the same real agent can appear in both. Deduplicate before any combined figure, and never add the two together.

Latest complete day

What the agents did on

Live·UTC day

New ERC-8004 agent identities

  • Base+23,106
  • 0G+10,428
  • BNB Chain+878
  • Robinhood Chain+22
Base · 14 days

Registrations on 2026-10-15, per chain — top 4 of 26 chains read. Chains are never added together.

Registration bursts

  • Base+23,106vs a median of 971 (threshold 4,855)

A burst is a day far above the chain's own recent run of registrations — often one operator minting in bulk. It says how, not who.

Declared MCP endpoints that answer

  • All chainsnot enough readingsn=0–6

Of the MCP endpoints sampled ERC-8004 registrations declare, the share that completed a handshake. A handshake proves a server is up, nothing more.

A day counts once it is over in UTC and the daily collector has finished it; today's partial readings never appear here. Each figure is one chain or one operator — none is a total.

Registered agent identities, chain by chain

Updated

Every chain we read, largest first, each with its own date. Never added together.

0G
3,919,209
registered agent ids+10,428 on 2026-10-15as of · daily reading
BNB Chain
375,182
registered agent ids+878 on 2026-10-15as of · daily reading
▸ What sampled owners did
Funded61.5%n=52
Active beyond registering88.5%n=52
In ongoing use44.2%n=52

Sample covers 24.95 days of the window.

Base
154,989
registered agent ids+23,106 on 2026-10-15as of · daily reading
▸ What sampled owners did· not enough readings this window (n=0)

Raw counts, not findings: funded unknown · active beyond registering unknown · in ongoing use unknown. Rates on fewer than 20 wallets are stored and never presented as a finding.

Sample covers 27.5 days of the window.

Ethereum
54,162
registered agent ids+16 on 2026-10-15as of · daily reading

+ 6,792 on a second registry (0x8004A818…) · as of 2026-10-16 — counted separately, not added above

▸ What sampled owners did· not enough readings this window (n=0)

Raw counts, not findings: funded unknown · active beyond registering unknown · in ongoing use unknown. Rates on fewer than 20 wallets are stored and never presented as a finding.

Sample covers 27.5 days of the window.

Abstract
16,918
registered agent ids+0 on 2026-10-15as of · daily reading
X Layer
14,964
registered agent ids+7 on 2026-10-15as of · daily reading
MegaETH
12,727
registered agent ids+0 on 2026-10-15as of · daily reading
Monad
10,413
registered agent ids+1 on 2026-10-15as of · daily reading
Celo
9,964
registered agent ids+1 on 2026-10-15as of · daily reading
Robinhood Chain
8,826
registered agent ids+22 on 2026-10-15as of · daily reading
▸ What sampled owners did· not enough readings this window (n=0)

Raw counts, not findings: funded unknown · active beyond registering unknown · in ongoing use unknown. Rates on fewer than 20 wallets are stored and never presented as a finding.

Sample covers 12.55 days of the window.

Gnosis
4,162
registered agent ids+0 on 2026-10-15as of · daily reading
▸ What sampled owners did· not enough readings this window (n=1)

Raw counts, not findings: funded 1 of 1 · active beyond registering 0 of 1 · in ongoing use 0 of 1. Rates on fewer than 20 wallets are stored and never presented as a finding.

Sample covers 29.96 days of the window.

SKALE Base
2,234
registered agent ids+0 on 2026-10-15as of · daily reading
Shape
2,098
registered agent ids+0 on 2026-10-15as of · daily reading
Avalanche
1,845
registered agent ids+0 on 2026-10-15as of · daily reading
▸ What sampled owners did· not enough readings this window (n=1)

Raw counts, not findings: funded 1 of 1 · active beyond registering 1 of 1 · in ongoing use 1 of 1. Rates on fewer than 20 wallets are stored and never presented as a finding.

Sample covers 29.39 days of the window.

Arbitrum
1,632
registered agent idsnew: not measuredas of · daily reading
▸ What sampled owners did· not enough readings this window (n=3)

Raw counts, not findings: funded 3 of 3 · active beyond registering 1 of 3 · in ongoing use 1 of 3. Rates on fewer than 20 wallets are stored and never presented as a finding.

Sample covers 27.51 days of the window.

Injective
932
registered agent ids+0 on 2026-10-15as of · daily reading
Polygon
688
registered agent ids+1 on 2026-10-15as of · daily reading
▸ What sampled owners did· not enough readings this window (n=0)

Raw counts, not findings: funded unknown · active beyond registering unknown · in ongoing use unknown. Rates on fewer than 20 wallets are stored and never presented as a finding.

Sample covers 27.5 days of the window.

Optimism
565
registered agent ids+0 on 2026-10-15as of · daily reading
▸ What sampled owners did· not enough readings this window (n=1)

Raw counts, not findings: funded 1 of 1 · active beyond registering 1 of 1 · in ongoing use 1 of 1. Rates on fewer than 20 wallets are stored and never presented as a finding.

Sample covers 28.38 days of the window.

Tempo
345
registered agent ids+0 on 2026-10-15as of · daily reading
▸ What sampled owners did· not enough readings this window (n=0)

Raw counts, not findings: funded unknown · active beyond registering unknown · in ongoing use unknown. Rates on fewer than 20 wallets are stored and never presented as a finding.

Sample covers 27.92 days of the window.

Mantle
144
registered agent ids+0 on 2026-10-15as of · daily reading
Metis
138
registered agent ids+0 on 2026-10-15as of · daily reading
Linea
115
registered agent ids+0 on 2026-10-15as of · daily reading
Scroll
108
registered agent ids+0 on 2026-10-15as of · daily reading
Taiko
94
registered agent ids+0 on 2026-10-15as of · daily reading
GOAT Network
88
registered agent idsnew: not measuredas of · daily reading
Morph
11
registered agent ids+0 on 2026-10-15as of · daily reading

Per-agent checks on Celo — what each agent declares and whether it answered: ERC-8004 agents on Celo →

Trend — registered, week over week

Arbitrum1,442 → 1,623(7 wk, to the week of 2026-10-12)weekly series — the daily census read 1,632 on 2026-10-16
Avalanche1,809 → 1,845(7 wk, to the week of 2026-10-12)weekly series — the daily census read 1,845 on 2026-10-16
Base84,042 → 106,116(7 wk, to the week of 2026-10-12)weekly series — the daily census read 154,989 on 2026-10-16
BNB Chain327,417 → 372,193(7 wk, to the week of 2026-10-12)weekly series — the daily census read 375,182 on 2026-10-16
Ethereum50,671 → 52,706(7 wk, to the week of 2026-10-12)weekly series — the daily census read 54,162 on 2026-10-16
Gnosis4,125 → 4,158(7 wk, to the week of 2026-10-12)weekly series — the daily census read 4,162 on 2026-10-16
Optimism542 → 565(7 wk, to the week of 2026-10-12)weekly series — the daily census read 565 on 2026-10-16
Polygon634 → 686(7 wk, to the week of 2026-10-12)weekly series — the daily census read 688 on 2026-10-16
Tempo289 → 315(7 wk, to the week of 2026-10-12)weekly series — the daily census read 345 on 2026-10-16
Robinhood Chain276 → 8,781(5 wk, to the week of 2026-10-12)weekly series — the daily census read 8,826 on 2026-10-16

Gaps in a line are weeks the value was unknown. Chains are never combined.

What we measured

Arbitrum

Registeredregistered agent id
1,623Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 1,632 on 2026-10-16.

Distinct ownersdistinct owner wallet in sample
53.2%41n=77Proof
Registration file resolvespercent of sampled registrations whose agentURI fetched and parsed as a JSON document
7.3%3.8n=52Indicator
Sampled owners also a sampled ERC-4337 accountpercent of sampled ERC-8004 owner wallets that are also a sampled ERC-4337 account deployed on the same chain
0.3%1n=288Indicator
Sampled owners also holding an Agent Passportpercent of sampled ERC-8004 owner wallets that are also the wallet_address of a Sato Agent Passport
0%0n=288Indicator
Sampled owners also an x402 seller (Bazaar payTo)percent of sampled ERC-8004 owner wallets that are also a payTo address in the Coinbase x402 Bazaar catalog
0%0n=288Indicator
New this windownew registered agent id over the window
unknownProof
▸ Not enough readings this window (n=1–3) — 7 readings, not findings
Declared MCP endpoint answerspercent of declared MCP endpoints that completed an MCP initialize handshake
100n=1 · too small to quoteIndicator
Declares an A2A cardpercent of RESOLVED registration files naming an A2A card or endpoint
50n=2 · too small to quoteIndicator
Declares an MCP endpointpercent of RESOLVED registration files naming an MCP endpoint
50n=2 · too small to quoteIndicator
Fundedsampled EOA owner holding a native balance > 0
3n=3 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
1n=3 · too small to quoteInference
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
1n=3 · too small to quoteIndicator
Previously answering MCP endpoints now darkpercent of previously-answering endpoints (declared MCP endpoint that completed an MCP initialize handshake in an earlier weekly probe) that did not answer when re-probed this week
0n=1 · too small to quoteIndicator
▸ How these were measured
  • the rate sample looked at 52.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
  • Up to 40 endpoints probed per chain, in sample order. Sample 1 < 20: stored, not a finding.
  • Declared only; A2A cards are not probed here. Sample 2 < 20: stored, not a finding.
  • Declared is not answering — see mcp_endpoint_answers. Sample 2 < 20: stored, not a finding.
  • 0 of 52 sampled registrations declare no agentURI at all and are excluded from this denominator (they are counted on registered_by_platform as "(no agentURI declared)").
  • Both legs are samples: an owner whose 4337 account was deployed outside our sampled windows does not match. A floor, not the overlap.
  • Passports are few and self-registered; a zero here is a small-B fact, not evidence about the registry.
  • A payTo match means the same key sells over x402 somewhere, not that it sells on Arbitrum. Solana payTo addresses cannot match an EVM owner and are excluded from B.
  • an endpoint that stops answering may be down, moved, or blocking us — unknown is not dead; 1 endpoints were eligible, 1 re-probed. Sample 1 < 20: stored, not a finding.
  • UNKNOWN: the public node pruned this chain's history back to less than a day (?d), so no window growth can be measured keylessly. The raw delta over that sub-day window was null.

Avalanche

Registeredregistered agent id
1,845Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 1,845 on 2026-10-16.

New this windownew registered agent id over the window
28Proof
▸ Not enough readings this window (n=0–1) — 8 readings, not findings
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
1n=1 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
1n=1 · too small to quoteInference
Distinct ownersdistinct owner wallet in sample
1n=1 · too small to quoteProof
Fundedsampled EOA owner holding a native balance > 0
1n=1 · too small to quoteIndicator
Registration file resolvespercent of sampled registrations whose agentURI fetched and parsed as a JSON document
0n=1 · too small to quoteIndicator
Declares an MCP endpointpercent of RESOLVED registration files naming an MCP endpoint
unknownn=0 · too small to quoteIndicator
Declares an A2A cardpercent of RESOLVED registration files naming an A2A card or endpoint
unknownn=0 · too small to quoteIndicator
Declared MCP endpoint answerspercent of declared MCP endpoints that completed an MCP initialize handshake
unknownn=0 · too small to quoteIndicator
▸ How these were measured
  • 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
  • 0 of 1 sampled registrations declare no agentURI at all and are excluded from this denominator (they are counted on registered_by_platform as "(no agentURI declared)"). Sample 1 < 20: stored, not a finding.
  • Declared is not answering — see mcp_endpoint_answers. Sample 0 < 20: stored, not a finding.
  • Declared only; A2A cards are not probed here. Sample 0 < 20: stored, not a finding.
  • Up to 40 endpoints probed per chain, in sample order. Sample 0 < 20: stored, not a finding.

Base

registered totalregistered agent id on this chain
106,251Proof
Registeredregistered agent id
106,116Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 154,989 on 2026-10-16.

New this windownew registered agent id over the window
19,767Proof
sample sizesampled EOA owner wallet whose nonce we could read at BOTH ends of the window
100%28n=28Proof
active 7dsampled EOA owner wallet that sent at least one transaction in the trailing 7 days
100%28n=28Indicator
Distinct ownersdistinct owner wallet in sample
100%20n=20Proof
Sampled owners also an x402 seller (Bazaar payTo)percent of sampled ERC-8004 owner wallets that are also a payTo address in the Coinbase x402 Bazaar catalog
0%0n=564Indicator
Sampled owners also holding an Agent Passportpercent of sampled ERC-8004 owner wallets that are also the wallet_address of a Sato Agent Passport
0%0n=564Indicator
Sampled owners also a sampled ERC-4337 accountpercent of sampled ERC-8004 owner wallets that are also a sampled ERC-4337 account deployed on the same chain
0%0n=564Indicator
▸ Not enough readings this window (n=0–5) — 11 readings, not findings
Registration file resolvespercent of sampled registrations whose agentURI fetched and parsed as a JSON document
100n=5 · too small to quoteIndicator
Declares an A2A cardpercent of RESOLVED registration files naming an A2A card or endpoint
100n=5 · too small to quoteIndicator
Sampled agents with any feedbackpercent of sampled registered agents with at least one feedback client on the Reputation Registry
0n=5 · too small to quoteIndicator
Declares an MCP endpointpercent of RESOLVED registration files naming an MCP endpoint
0n=5 · too small to quoteIndicator
Distinct feedback client wallets (sample floor)distinct client wallets that left feedback on the sampled agents
0n=5 · too small to quoteIndicator
Previously answering MCP endpoints now darkpercent of previously-answering endpoints (declared MCP endpoint that completed an MCP initialize handshake in an earlier weekly probe) that did not answer when re-probed this week
0n=5 · too small to quoteIndicator
Fundedsampled EOA owner holding a native balance > 0
unknownn=0 · too small to quoteIndicator
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
unknownn=0 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
unknownn=0 · too small to quoteInference
Declared MCP endpoint answerspercent of declared MCP endpoints that completed an MCP initialize handshake
unknownn=0 · too small to quoteIndicator
Feedback left by the 5 most active client walletspercent of attributed feedback entries left by the 5 most active client wallets
unknownn=0 · too small to quoteIndicator
▸ How these were measured
  • 0 of 5 sampled agents could not be read and are excluded. Sample 5 < 20: stored, not a finding.
  • the rate sample looked at 0.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
  • The population this lane's sample is drawn from. It is a count of ids minted, not of agents that exist, answer or work — and it is never added to another chain's count.
  • Of 137 sampled owner wallets: 31 EOA, 106 contract (excluded — a contract's nonce counts deployments), 0 of unknown kind, and 3 EOA owners whose historical nonce the public node would not serve (pruned state — unknown, not inactive). Registrations from site_metrics.erc8004_agents_base (scripts/erc8004-enumerate.mjs).
  • An upper bound on agent activity and a lower bound at the same time, and neither cancels the other: a nonce delta counts every transaction the OWNER KEY sent, including a human moving funds or registering a second agent, and it counts nothing an agent did through a smart account, relayer, paymaster or session key. It is a share of a SAMPLE of owner wallets, never of the registry's population. Contract owners are excluded because a contract's nonce counts deployments, not sends. THE SAMPLE IS DRAWN FROM RECENT REGISTRATIONS — the roster we can enumerate keylessly is a trailing window of `Registered` logs, not the whole registry — so it describes wallets that showed up lately and cannot be read as the registry as a whole. A wallet that registered inside the window sent a transaction to do it, so `active_7d` credits the registration itself; `active_beyond_one_tx` is the same count with that one transaction taken off.
  • 0 of 5 sampled registrations declare no agentURI at all and are excluded from this denominator (they are counted on registered_by_platform as "(no agentURI declared)"). Sample 5 < 20: stored, not a finding.
  • Declared is not answering — see mcp_endpoint_answers. Sample 5 < 20: stored, not a finding.
  • Declared only; A2A cards are not probed here. Sample 5 < 20: stored, not a finding.
  • Up to 40 endpoints probed per chain, in sample order. Sample 0 < 20: stored, not a finding.
  • Concentration of the SAMPLE's feedback, not of the registry. 0 distinct client wallets left 0 entries across 0 agents. Sample 0 < 20: stored, not a finding.
  • A floor from the sample, not a registry census. Sample 5 < 20: stored, not a finding.
  • an endpoint that stops answering may be down, moved, or blocking us — unknown is not dead; 5 endpoints were eligible, 5 re-probed. Sample 5 < 20: stored, not a finding.
  • A payTo match means the same key sells over x402 somewhere, not that it sells on Base. Solana payTo addresses cannot match an EVM owner and are excluded from B.
  • Passports are few and self-registered; a zero here is a small-B fact, not evidence about the registry.
  • Both legs are samples: an owner whose 4337 account was deployed outside our sampled windows does not match. A floor, not the overlap.

BNB Chain

Registeredregistered agent id
372,193Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 375,182 on 2026-10-16.

New this windownew registered agent id over the window
26,467Proof
Registration file resolvespercent of sampled registrations whose agentURI fetched and parsed as a JSON document
232.6%100n=43Indicator
Distinct ownersdistinct owner wallet in sample
94.8%55n=58Proof
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
88.5%46n=52Indicator
Fundedsampled EOA owner holding a native balance > 0
61.5%32n=52Indicator
Declares an A2A cardpercent of RESOLVED registration files naming an A2A card or endpoint
54.2%23.3n=43Indicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
44.2%23n=52Inference
Declares an MCP endpointpercent of RESOLVED registration files naming an MCP endpoint
16.3%7n=43Indicator
▸ Not enough readings this window (n=3) — 1 reading, not findings
Declared MCP endpoint answerspercent of declared MCP endpoints that completed an MCP initialize handshake
0n=3 · too small to quoteIndicator
▸ How these were measured
  • Declared only; A2A cards are not probed here.
  • the rate sample looked at 0.6% 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 11 of 12 time segments were readable from a keyless node (public nodes prune history), so the sample covers 24.95 days, not 30; 11 segment(s) were only partially scanned before the request budget ran out
  • Declared is not answering — see mcp_endpoint_answers.
  • Up to 40 endpoints probed per chain, in sample order. Sample 3 < 20: stored, not a finding.
  • 0 of 43 sampled registrations declare no agentURI at all and are excluded from this denominator (they are counted on registered_by_platform as "(no agentURI declared)").

Celo

▸ Not enough readings this window (n=19) — 1 reading, not findings
Previously answering MCP endpoints now darkpercent of previously-answering endpoints (declared MCP endpoint that completed an MCP initialize handshake in an earlier weekly probe) that did not answer when re-probed this week
100n=19 · too small to quoteIndicator
▸ How these were measured
  • an endpoint that stops answering may be down, moved, or blocking us — unknown is not dead; 19 endpoints were eligible, 19 re-probed. Sample 19 < 20: stored, not a finding.

Ethereum

Registeredregistered agent id
52,706Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 54,162 on 2026-10-16.

New this windownew registered agent id over the window
1,922Proof
Feedback left by the 5 most active client walletspercent of attributed feedback entries left by the 5 most active client wallets
unknownn=29Indicator
▸ Not enough readings this window (n=0–12) — 10 readings, not findings
Fundedsampled EOA owner holding a native balance > 0
unknownn=0 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
unknownn=0 · too small to quoteInference
Distinct feedback client wallets (sample floor)distinct client wallets that left feedback on the sampled agents
unknownn=12 · too small to quoteIndicator
Sampled agents with any feedbackpercent of sampled registered agents with at least one feedback client on the Reputation Registry
unknownn=12 · too small to quoteIndicator
Declared MCP endpoint answerspercent of declared MCP endpoints that completed an MCP initialize handshake
unknownn=1 · too small to quoteIndicator
Declares an A2A cardpercent of RESOLVED registration files naming an A2A card or endpoint
unknownn=10 · too small to quoteIndicator
Declares an MCP endpointpercent of RESOLVED registration files naming an MCP endpoint
unknownn=10 · too small to quoteIndicator
Registration file resolvespercent of sampled registrations whose agentURI fetched and parsed as a JSON document
unknownn=10 · too small to quoteIndicator
Distinct ownersdistinct owner wallet in sample
unknownn=4 · too small to quoteProof
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
unknownn=0 · too small to quoteIndicator
▸ How these were measured
  • the rate sample looked at 0.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
  • UNKNOWN (audit 2026-10-13): this stratified sample was drawn through a public node that returned no logs older than ~1.4 days without an error, so it came from the newest ~1.4 days, not the 30-day window it names. Unknown, not zero. The original reading is kept in extra.audit_2026_10_13.

Gnosis

Registeredregistered agent id
4,158Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 4,162 on 2026-10-16.

Registration file resolvespercent of sampled registrations whose agentURI fetched and parsed as a JSON document
357.1%100n=28Indicator
New this windownew registered agent id over the window
28Proof
Declares an MCP endpointpercent of RESOLVED registration files naming an MCP endpoint
63.9%17.9n=28Indicator
Declares an A2A cardpercent of RESOLVED registration files naming an A2A card or endpoint
63.9%17.9n=28Indicator
Distinct ownersdistinct owner wallet in sample
7.1%2n=28Proof
Sampled agents with any feedbackpercent of sampled registered agents with at least one feedback client on the Reputation Registry
0%0n=28Indicator
Distinct feedback client wallets (sample floor)distinct client wallets that left feedback on the sampled agents
0%0n=28Indicator
▸ Not enough readings this window (n=0–5) — 9 readings, not findings
Declared MCP endpoint answerspercent of declared MCP endpoints that completed an MCP initialize handshake
20n=5 · too small to quoteIndicator
Fundedsampled EOA owner holding a native balance > 0
1n=1 · too small to quoteIndicator
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
0n=1 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
0n=1 · too small to quoteInference
Sampled owners also an x402 seller (Bazaar payTo)percent of sampled ERC-8004 owner wallets that are also a payTo address in the Coinbase x402 Bazaar catalog
0n=3 · too small to quoteIndicator
Sampled owners also holding an Agent Passportpercent of sampled ERC-8004 owner wallets that are also the wallet_address of a Sato Agent Passport
0n=3 · too small to quoteIndicator
Sampled owners also a sampled ERC-4337 accountpercent of sampled ERC-8004 owner wallets that are also a sampled ERC-4337 account deployed on the same chain
0n=3 · too small to quoteIndicator
Feedback left by the 5 most active client walletspercent of attributed feedback entries left by the 5 most active client wallets
unknownn=0 · too small to quoteIndicator
Previously answering MCP endpoints now darkpercent of previously-answering endpoints (declared MCP endpoint that completed an MCP initialize handshake in an earlier weekly probe) that did not answer when re-probed this week
unknownn=0 · too small to quoteIndicator
▸ How these were measured
  • A payTo match means the same key sells over x402 somewhere, not that it sells on Gnosis. Solana payTo addresses cannot match an EVM owner and are excluded from B. Sample 3 < 20: stored, not a finding.
  • Passports are few and self-registered; a zero here is a small-B fact, not evidence about the registry. Sample 3 < 20: stored, not a finding.
  • Both legs are samples: an owner whose 4337 account was deployed outside our sampled windows does not match. A floor, not the overlap. Sample 3 < 20: stored, not a finding.
  • 0 of 28 sampled registrations declare no agentURI at all and are excluded from this denominator (they are counted on registered_by_platform as "(no agentURI declared)").
  • Declared is not answering — see mcp_endpoint_answers.
  • Declared only; A2A cards are not probed here.
  • Up to 40 endpoints probed per chain, in sample order. Sample 5 < 20: stored, not a finding.
  • 0 of 28 sampled agents could not be read and are excluded.
  • Concentration of the SAMPLE's feedback, not of the registry. 0 distinct client wallets left 0 entries across 0 agents. Sample 0 < 20: stored, not a finding.
  • A floor from the sample, not a registry census.
  • UNKNOWN: no endpoint on this venue and chain has an answer recorded ≥ 7 days ago yet (the endpoint store began 2026-09-08). Unknown, not zero.

Optimism

Registeredregistered agent id
565Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 565 on 2026-10-16.

New this windownew registered agent id over the window
23Proof
▸ Not enough readings this window (n=1–3) — 8 readings, not findings
Declares an MCP endpointpercent of RESOLVED registration files naming an MCP endpoint
100n=1 · too small to quoteIndicator
Declares an A2A cardpercent of RESOLVED registration files naming an A2A card or endpoint
100n=1 · too small to quoteIndicator
Registration file resolvespercent of sampled registrations whose agentURI fetched and parsed as a JSON document
33.3n=3 · too small to quoteIndicator
Distinct ownersdistinct owner wallet in sample
2n=3 · too small to quoteProof
Fundedsampled EOA owner holding a native balance > 0
1n=1 · too small to quoteIndicator
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
1n=1 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
1n=1 · too small to quoteInference
Declared MCP endpoint answerspercent of declared MCP endpoints that completed an MCP initialize handshake
0n=1 · too small to quoteIndicator
▸ How these were measured
  • 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
  • 0 of 3 sampled registrations declare no agentURI at all and are excluded from this denominator (they are counted on registered_by_platform as "(no agentURI declared)"). Sample 3 < 20: stored, not a finding.
  • Declared is not answering — see mcp_endpoint_answers. Sample 1 < 20: stored, not a finding.
  • Declared only; A2A cards are not probed here. Sample 1 < 20: stored, not a finding.
  • Up to 40 endpoints probed per chain, in sample order. Sample 1 < 20: stored, not a finding.

Polygon

Registeredregistered agent id
686Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 688 on 2026-10-16.

New this windownew registered agent id over the window
24Proof
▸ Not enough readings this window (n=0) — 4 readings, not findings
Distinct ownersdistinct owner wallet in sample
0n=0 · too small to quoteProof
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
unknownn=0 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
unknownn=0 · too small to quoteInference
Fundedsampled EOA owner holding a native balance > 0
unknownn=0 · too small to quoteIndicator
▸ How these were measured
  • the rate sample looked at 0.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

Robinhood Chain

Registeredregistered agent id
8,781Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 8,826 on 2026-10-16.

registered totalregistered agent id on this chain
8,781Proof
New this windownew registered agent id over the window
8,512Proof
active 7dsampled EOA owner wallet that sent at least one transaction in the trailing 7 days
unknownIndicator
sample sizesampled EOA owner wallet whose nonce we could read at BOTH ends of the window
unknownProof
▸ Not enough readings this window (n=0–3) — 8 readings, not findings
Registration file resolvespercent of sampled registrations whose agentURI fetched and parsed as a JSON document
100n=2 · too small to quoteIndicator
Distinct ownersdistinct owner wallet in sample
3n=3 · too small to quoteProof
Declares an A2A cardpercent of RESOLVED registration files naming an A2A card or endpoint
0n=2 · too small to quoteIndicator
Declares an MCP endpointpercent of RESOLVED registration files naming an MCP endpoint
0n=2 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
unknownn=0 · too small to quoteInference
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
unknownn=0 · too small to quoteIndicator
Fundedsampled EOA owner holding a native balance > 0
unknownn=0 · too small to quoteIndicator
Declared MCP endpoint answerspercent of declared MCP endpoints that completed an MCP initialize handshake
unknownn=0 · too small to quoteIndicator
▸ How these were measured
  • the rate sample looked at 1.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); only 6 of 12 time segments were readable from a keyless node (public nodes prune history), so the sample covers 12.55 days, not 30; 6 segment(s) were only partially scanned before the request budget ran out
  • Up to 40 endpoints probed per chain, in sample order. Sample 0 < 20: stored, not a finding.
  • Declared only; A2A cards are not probed here. Sample 2 < 20: stored, not a finding.
  • Declared is not answering — see mcp_endpoint_answers. Sample 2 < 20: stored, not a finding.
  • 0 of 2 sampled registrations declare no agentURI at all and are excluded from this denominator (they are counted on registered_by_platform as "(no agentURI declared)"). Sample 2 < 20: stored, not a finding.
  • UNKNOWN: no sampled owner's window could be read on Robinhood Chain this run. Unknown, never zero.
  • Of 1 sampled owner wallets: 0 EOA, 0 contract (excluded — a contract's nonce counts deployments), 1 of unknown kind, and 0 EOA owners whose historical nonce the public node would not serve (pruned state — unknown, not inactive). Registrations from eth_getLogs Registered on 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 over ~30 days.
  • The population this lane's sample is drawn from. It is a count of ids minted, not of agents that exist, answer or work — and it is never added to another chain's count.

Tempo

Registeredregistered agent id
315Proof

Weekly series, as of 2026-10-12 — not the current total. The daily census read 345 on 2026-10-16.

New this windownew registered agent id over the window
26Proof
▸ Not enough readings this window (n=0–1) — 9 readings, not findings
Declared MCP endpoint answerspercent of declared MCP endpoints that completed an MCP initialize handshake
100n=1 · too small to quoteIndicator
Declares an MCP endpointpercent of RESOLVED registration files naming an MCP endpoint
100n=1 · too small to quoteIndicator
Registration file resolvespercent of sampled registrations whose agentURI fetched and parsed as a JSON document
100n=1 · too small to quoteIndicator
Distinct ownersdistinct owner wallet in sample
1n=1 · too small to quoteProof
Declares an A2A cardpercent of RESOLVED registration files naming an A2A card or endpoint
0n=1 · too small to quoteIndicator
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
unknownn=0 · too small to quoteIndicator
Previously answering MCP endpoints now darkpercent of previously-answering endpoints (declared MCP endpoint that completed an MCP initialize handshake in an earlier weekly probe) that did not answer when re-probed this week
unknownn=0 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
unknownn=0 · too small to quoteInference
Fundedsampled EOA owner holding a native balance > 0
unknownn=0 · too small to quoteIndicator
▸ How these were measured
  • the rate sample looked at 9.8% 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
  • UNKNOWN: no endpoint on this venue and chain has an answer recorded ≥ 7 days ago yet (the endpoint store began 2026-09-08). Unknown, not zero.
  • Up to 40 endpoints probed per chain, in sample order. Sample 1 < 20: stored, not a finding.
  • Declared only; A2A cards are not probed here. Sample 1 < 20: stored, not a finding.
  • Declared is not answering — see mcp_endpoint_answers. Sample 1 < 20: stored, not a finding.
  • 0 of 1 sampled registrations declare no agentURI at all and are excluded from this denominator (they are counted on registered_by_platform as "(no agentURI declared)"). Sample 1 < 20: stored, not a finding.

Does the registration lead anywhere?

A registration is a mint. Each week we sample registrations per chain, fetch the agent's own registration file, and ask three things of it: does it resolve, does it declare an endpoint, and does a declared MCP endpoint complete a handshake. Rates of the sample, with the sample size beside each; a handshake proves a server is up and nothing about what it does. A chain with fewer than 20 readings shows “too few” rather than a rate.

ChainFile resolvesDeclares MCPMCP answersDeclares A2A
Arbitrum3.8%n=52too few (n=2)too few (n=1)too few (n=2)
Avalanchetoo few (n=1)too few (n=0)too few (n=0)too few (n=0)
Basetoo few (n=5)too few (n=5)too few (n=0)too few (n=5)
BNB Chain100%n=437%n=43too few (n=3)23.3%n=43
Ethereumtoo few (n=10)too few (n=10)too few (n=1)too few (n=10)
Gnosis100%n=2817.9%n=28too few (n=5)17.9%n=28
Optimismtoo few (n=3)too few (n=1)too few (n=1)too few (n=1)
Robinhood Chaintoo few (n=2)too few (n=2)too few (n=0)too few (n=2)
Tempotoo few (n=1)too few (n=1)too few (n=1)too few (n=1)

Who is producing these

The host serving each agent's metadata, parsed out of the registration event itself. It is strong evidence of the producing platform, not proof of it — and where a registration declares no metadata at all, that is shown as its own row rather than hidden in an “other” bucket.

ChainProducing platformIn sampleIn the directory
Arbitrumipfs38of 77not listed
Arbitrumexecution.market36of 77not listed
Gnosismarketplace.olas.network27of 28olas
BNB Chainmetadata.evoevo.ai21of 58evoevo
Basecentralcity.ai20of 20not listed
BNB Chainiconaves.com17of 58not listed
BNB Chaintermix-platform-prod.s3.ap-southeast-1.amazonaws.com12of 58termix
BNB Chainq402.quackai.ai5of 58q402-quack-ai
Optimismexecution.market2of 3not listed
Arbitrumapexfaucet.xyz1of 77not listed
Arbitrumtoku.agency1of 77not listed
Arbitrumsignals.brobotapp.com1of 77not listed
Avalancheexecution.market1of 1not listed
BNB Chain(no agentURI declared)1of 58not listed
BNB Chainbafkreihep4hcpjdyosadi3i7nv6plaufx25iqdloqzv6kbprrocqyooviq1of 58not listed
BNB Chaindolphinamp.xyz1of 58not listed
Gnosisapexfaucet.xyz1of 28not listed
Optimismmarketplace.olas.network1of 3olas
Robinhood Chain(inline document, no platform named)1of 3not listed
Robinhood Chainagnt.social1of 3not listed
Robinhood Chaintermix-platform-prod.s3.ap-southeast-1.amazonaws.com1of 3termix
Tempoblob.8004scan.app1of 1not listed

Confirmed contracts

Every address here was confirmed on-chain twice: bytecode present, and the block explorer's verified contract name matching the claim. A confirmation older than the re-check interval renders as stale rather than as a number that looks current.

ChainContractRoleConfirmed
0GERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
AbstractERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
ArbitrumERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
AvalancheERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
BaseERC-8004 Reputation Registry0x8004BAa17C55a88189AE136b182e5fdA19dE9b63registry2026-09-01 · source
BaseERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
BNB ChainERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
CeloERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
EthereumERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
EthereumERC-8004 Reputation Registry0x8004BAa17C55a88189AE136b182e5fdA19dE9b63registry2026-09-01 · source
GnosisERC-8004 Reputation Registry0x8004BAa17C55a88189AE136b182e5fdA19dE9b63registry2026-09-01 · source
GnosisERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
GOAT NetworkERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
InjectiveERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
LineaERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
MantleERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
MegaETHERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
MetisERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
MonadERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
MorphERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
OptimismERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
PolygonERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
Robinhood ChainERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
ScrollERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
ShapeERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
SKALE BaseERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
TaikoERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
TempoERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
X LayerERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
How this is measured

Registered event logs (enumerable — full range on Arbitrum/Gnosis, chunked elsewhere, or Blockscout's keyless paginated log API), plus the lastAgentId storage slot for a cheap total.

Each figure is read per chain and per lifecycle stage and is never added to another. A rate computed on fewer than 20 observations is stored and shown as “not enough readings”, never as a finding; a value that could not be read says “not measured” with the reason. Some readings on this page are in that state.

What this page cannot settle

  • Registering IS a transaction, so any naive 'has it ever transacted' test returns 100%. Compare nonce against that wallet's OWN registration count.
  • Headline safety: Only with the stage named. 465k registered is true; 465k agents is not.
  • ⚠️ READ BEFORE QUOTING ANY OF THESE. The Arbitrum sample is ALL-TIME (every owner across the registry's life); the Base and BNB samples are a RECENT WINDOW (a few hours). Recent registrants on a busy chain are self-selected for being active, so the rows are NOT directly comparable and the gap between 7.5% and 100% is partly an artefact of that. A second effect points the same way: on busy retail chains registrants reuse established, funded wallets, so 'nonce > registrations' is a weak bar there and mostly reflects ordinary human wallet history rather than agent activity. To compare properly, sample the SAME window on every chain.
  • Some rates on this page are computed on a handful of wallets. They are shown with their sample size and marked below the publishable threshold — they are observations, not findings.
  • Every method on this page is EVM-shaped. Solana identity registries are covered elsewhere as upper bounds; Solana payment settlement is not covered anywhere on this site.

In the directory as ERC-8004: Trustless Agents.

Why sources disagree

Each tracker counts a different set of chains and decides what an agent is: every registered id, only ids with a registration file, or testnets too. A wider scope or a looser definition gives a bigger figure, so the figures cannot be lined up or added.

  • agents · mainnet chains, agents with a registration file · all time

    Agents 8004scan indexes in this view.

    read 2026-10-16

  • agents · mainnet chains, including ids without a registration file · all time

    Agents 8004scan indexes in this view.

    read 2026-10-16

  • agents · all networks, testnets included · all time

    Agents 8004scan indexes in this view.

    read 2026-10-16

  • agents · the chains agenteconomy.to tracks · all time

    Total agents in agenteconomy.to’s ERC-8004 table, on the chains it tracks.

    read 2026-10-16 · source date 2026-10-15T02:18:02.381Z

Our own reading is the registry contract's own id counter on each chain, read directly and never summed. ERC-8004 agents by chain →

Figures other trackers publish, quoted with their source and read once a day. They are not Sato Hub's numbers and are never added together; “not read” means we hold no reading, never zero.

Cite this

Sato Hub, "ERC-8004 Identity Registry — measured on-chain", satohub.ai/agent-economy/erc8004, as of 2026-10-16. CC-BY.

Data: satohub.ai/api/export/adoption.json?venue=erc8004 (CC-BY, current week; every row carries its method, evidence tier and sample size).

Reference

QuestionsShowHide

Questions people ask about ERC-8004 Identity Registry

What is one unit of ERC-8004 Identity Registry?
one registered agent id. Counting anything else as a "ERC-8004 Identity Registry agent" would compare different objects, so every row on this page names the stage it counts.
What does it cost to enter ERC-8004 Identity Registry?
free / permissionless (gas only). Entry cost is why raw sizes are not comparable across venues: free and permissionless is a different market from bonded.
How is ERC-8004 Identity Registry measured?
Public chain reads on 11 chains, keylessly, once a week — this view is the week beginning 2026-W42. Each row carries its method, evidence tier and sample size, and a row we could not read is null rather than zero.
Does a count here say the agents work?
No. A registration, a launch or a staked service is an entry in a contract. Nothing about funding, activity, competence or safety is implied, and what happens after entry is measured as its own stage.
SourcesShowHide
Cite this pageShowHide

Cite this page

Sato Hub. "ERC-8004 Identity Registry — measured on-chain." Sato Hub, updated 2026-10-16, accessed 2026-10-16. https://satohub.ai/agent-economy/erc8004

Data last refreshed 2026-10-16; this page is rebuilt daily. Citations carry the date so a reader can tell which snapshot a claim came from. Catalog data is licensed CC-BY-4.0.

Take the data: JSON · CSV (CC-BY).