The ERC-8004 Identity Registry is deployed by CREATE2, so it sits at the same address (0x8004A169FB4a3325136EB29fA0ceB6D2e539a432) on every chain. Two consequences: anyone can read it everywhere with the same two calls, and because agent ids are sequential, the highest id that answers ownerOf is an upper bound on how many registrations were minted on that chain.
We did that on 40 EVM chains from public nodes, no provider key, in under a minute. Measured 2026-10-24 09:24 UTC. The page with the full table and the PDF: Where the ERC-8004 registrations live, chain by chain.
The method, in four lines
-
eth_getCodeon the registry address says whether it is deployed. -
eth_callwith data0x6352211e+ the id as a 32-byte word (ownerOf) answers for every minted id and reverts above the last one; a binary search finds the highest existing id in about 25 calls. - Twelve
tokenURIreads (0xc87b56dd+ id) spread over the id range name the host behind the registrations; the twelveownerOfanswers say how many distinct owners sit among them. - A second, unrelated public endpoint re-reads the boundary (highest id exists, next one does not). On this snapshot 17 of 17 agreed.
The table
| Chain | Highest agent id | Dominant agentURI host (share of 12) | Owners among 12 |
|---|---|---|---|
| 0G (16661) | 3,940,750 | metadata.evoevo.ai (100%) | 12 |
| Base (8453) | 1,123,064 | centralcity.ai (83%) | 12 |
| BNB Smart Chain (56) | 382,289 | inline metadata (50%) | 12 |
| Ethereum (1) | 55,332 | empty URI (33%) | 9 |
| Abstract (2741) | 16,918 | one app's storage bucket (92%) | 12 |
| X Layer (196) | 15,137 | static.okx.com (100%) | 12 |
| MegaETH (4326) | 12,727 | 8004glyphs.vercel.app (58%) | 12 |
| Monad (143) | 10,417 | eve-8004.vercel.app (75%) | 12 |
| Celo (42220) | 9,987 | inline metadata (83%) | 5 |
| Gnosis (100) | 4,168 | marketplace.olas.network (92%) | 2 |
| Avalanche (43114) | 1,846 | empty URI (83%) | 3 |
| Arbitrum One (42161) | 1,641 | ipfs (67%) | 11 |
| Injective EVM (1776) | 931 | ipfs (92%) | 5 |
| Polygon PoS (137) | 690 | empty URI (25%) | 10 |
| OP Mainnet (10) | 567 | inline metadata (50%) | 5 |
| Mantle, Metis, Linea, Scroll, Taiko, GOAT | 145, 138, 116, 109, 93, 87 |
Registry deployed but empty on Flow EVM, HyperEVM, Ink and Soneium. No registry code on thirteen others; two endpoints were down on the day. Total upper bound: 5,577,152.
What the numbers say
0G alone is 3.5× Base. Every sampled agentURI on 0G, from the first id to the last, resolves under one platform's metadata host, with a distinct owner address per id. One platform minted the wave; the same host also mints on BNB.
The pattern repeats on every large registry outside Base. Abstract: one app's bucket behind 11 of 12 sampled URIs. X Layer: one exchange's static host behind all 12. MegaETH and Monad: one site each. Gnosis: the Olas marketplace, two owners among twelve sampled ids. Celo: inline metadata, five owners among twelve. On Base, Central City is behind 10 of 12. Registrations per chain measure how one platform used the registry there, not adoption by independent operators.
No public tracker counts 0G. On 23 October, 8004scan reported 1,856,049 registrations in total and agenteconomy.to 1,333,878. Base and BNB alone are 1,505,353; Base plus 0G is 5,063,814. Any figure called "ERC-8004 registrations" should say which chains are inside it. Ours do: our census covers Base, BNB, Ethereum, Arbitrum, OP Mainnet, Polygon and Solana, and the label says so.
What this does not assert
That a registration is an agent. That a platform wave is wrong or empty (the registry is designed to be used by platforms). That the upper bound is an exact count (burns leave gaps below it). Anything about the people behind any address.
Why it matters
A ledger of agents' money needs a denominator. If the denominator is "registrations", the choice of chains changes it by a factor of five, and one platform's wave on one chain moves it more than every independent operator combined. That is why we rank by behaviour seen on chain (seen paying, still funded, three counterparties) rather than by registrations, and why every registrations figure of ours carries its chain list and, from today, the platform shares behind it.
The measurement runs daily now: the document, the definition (reg.chains.upperbound.v1), CC BY 4.0. Repeat it on any node with the two calls above.
Top comments (0)