Sato Hub
The onchain agent economy
8004

ERC-8004 Identity Registry

identity registry · week 2026-W36

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.

What we measured

Arbitrum

Registeredregistered agent id
1,437Proof
New this windownew registered agent id over the window
214Proof
Distinct ownersdistinct owner wallet in sample
100%94n=94Proof
Fundedsampled EOA owner holding a native balance > 0
7n=7 · too small to quoteIndicator
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
3n=7 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
1n=7 · too small to quoteInference
  • 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

Avalanche

Registeredregistered agent id
1,807Proof
New this windownew registered agent id over the window
17Proof
Distinct ownersdistinct owner wallet in sample
0n=0 · too small to quoteProof
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
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
unknownn=0 · too small to quoteIndicator
  • 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

Base

Registeredregistered agent id
83,521Proof
New this windownew registered agent id over the window
23,066Proof
Distinct ownersdistinct owner wallet in sample
44.2%106n=240Proof
Fundedsampled EOA owner holding a native balance > 0
100%75n=75Indicator
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
86.7%65n=75Indicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
80%60n=75Inference
  • 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

BNB Chain

Registeredregistered agent id
324,930Proof
Distinct ownersdistinct owner wallet in sample
95%19n=20Proof
Fundedsampled EOA owner holding a native balance > 0
13n=19 · too small to quoteIndicator
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
6n=19 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
1n=19 · too small to quoteInference
New this windownew registered agent id over the window
unknownProof
  • 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
  • UNKNOWN: the public node pruned this chain's history back to less than a day (0d), so no window growth can be measured keylessly. The raw delta over that sub-day window was 1.

Ethereum

Registeredregistered agent id
50,658Proof
New this windownew registered agent id over the window
3,696Proof
Distinct ownersdistinct owner wallet in sample
55%11n=20Proof
Active beyond registeringsampled EOA owner whose nonce exceeds the agent ids it holds
2n=2 · too small to quoteIndicator
Fundedsampled EOA owner holding a native balance > 0
2n=2 · too small to quoteIndicator
In ongoing usesampled EOA owner with >= 10 non-registration transactions
2n=2 · too small to quoteInference
  • 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

Registeredregistered agent id
4,121Proof
New this windownew registered agent id over the window
16Proof
Distinct ownersdistinct owner wallet in sample
2n=16 · 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
0n=1 · too small to quoteInference

Optimism

Registeredregistered agent id
542Proof
New this windownew registered agent id over the window
7Proof
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
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
  • 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

Polygon

Registeredregistered agent id
631Proof
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
New this windownew registered agent id over the window
unknownProof
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
  • 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
  • UNKNOWN: the public node pruned this chain's history back to less than a day (0d), so no window growth can be measured keylessly. The raw delta over that sub-day window was 0.

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
Arbitrumipfs87of 94not listed
Basetermix-platform-prod.s3.ap-southeast-1.amazonaws.com78of 240not listed
Base(no agentURI declared)75of 240not listed
Baseipfs35of 240not listed
Basewild-west-bots.vercel.app20of 240not listed
Gnosismarketplace.olas.network15of 16olas
BNB Chaintermix-platform-prod.s3.ap-southeast-1.amazonaws.com11of 20not listed
Basevia9of 240not listed
Baselobster3301.com9of 240not listed
Baseexecution.market7of 240not listed
Ethereumipfs6of 20not listed
Ethereumapi.freaks.one5of 20not listed
Arbitrummodusops.xyz4of 94not listed
BNB Chainq402.quackai.ai4of 20not listed
Ethereumdepunks.club4of 20not listed
BNB Chainmetadata.evoevo.ai3of 20not listed
Basex402-explorer.hpp.io2of 240not listed
BNB Chainiconaves.com2of 20not listed
Ethereumsignalbound.art2of 20not listed
Arbitrumagentsinc.app1of 94not listed
Arbitrumexecution.market1of 94not listed
Arbitrumglassofbeer.ai1of 94not listed
Base(inline document, no platform named)1of 240not listed
Baseapi.x402.jobs1of 240not listed
Basejetson-virohana.tail5c1d8f.ts.net1of 240not listed
Basetenjin.blog1of 240not listed
Baseapi.acp.virtuals.io1of 240virtuals-protocol
Ethereumbooa.app1of 20not listed
Ethereumexecution.market1of 20not listed
Ethereumapi.normies.art1of 20not listed
Gnosis(no agentURI declared)1of 16not 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
ArbitrumERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
AvalancheERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
BaseERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
BaseERC-8004 Reputation Registry0x8004BAa17C55a88189AE136b182e5fdA19dE9b63registry2026-09-01 · source
BNB ChainERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
EthereumERC-8004 Reputation Registry0x8004BAa17C55a88189AE136b182e5fdA19dE9b63registry2026-09-01 · source
EthereumERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
GnosisERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
GnosisERC-8004 Reputation Registry0x8004BAa17C55a88189AE136b182e5fdA19dE9b63registry2026-09-01 · source
OptimismERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source
PolygonERC-8004 Identity Registry0x8004A169FB4a3325136EB29fA0ceB6D2e539a432registry2026-09-01 · source

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 here is EVM-shaped. Solana is not covered by any measurement on this page.

In the directory as ERC-8004: Trustless Agents.

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