1,000,000 free RPC requestsJust a wallet, via x402.

Start building
ERC-8004 Explorer by

Last updated 2026-05-05

Contract addresses + ABIs

The three ERC-8004 registries sit at deterministic CREATE2 addresses across every supported EVM chain. Identity and Reputation are live on every mainnet listed below. Validation is mainnet-pending and runs only on testnets while the working group finalizes the TEE attestation flow.

The tables below are generated from config/chains.yml — the same file the indexer reads at boot, so the two never disagree. Click any contract address to open it on that network’s block explorer.

Mainnet addresses

Chain Identity Registry Reputation Registry Validation Registry Identity deploy block
Ethereum 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 24,339,871
Base 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 41,663,783
BNB Chain 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 79,027,268
Avalanche 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 77,389,037
Mantle 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 91,333,846
Arbitrum 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 428,895,443
OP Mainnet 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 147,514,947
Polygon 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 82,458,484
Scroll 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 29,432,417
Gnosis 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 44,505,010
Celo 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 58,396,724
Linea 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 28,662,553
Abstract 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 39,596,871
Soneium 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 18,879,198
Monad 0x8004A169FB4a3325136EB29fA0ceB6D2e539a432 0x8004BAa17C55a88189AE136b182e5fdA19dE9b63 (mainnet pending) 52,952,790

The Identity and Reputation addresses are CREATE2-deterministic, so they are byte-identical on every mainnet; only the deploy block and the explorer differ. The Reputation Registry deploys 1–5 blocks after Identity on each chain (Validation 2–10 blocks after Identity on testnets); use config/chains.yml for the exact per-registry deploy blocks if you’re starting a Reputation- or Validation-only indexer.

Testnet addresses

Chain Identity Registry Reputation Registry Validation Registry Identity deploy block
Ethereum Sepolia 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 9,989,393
Base Sepolia 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 36,304,145
BNB Testnet 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 84,555,147
Avalanche Fuji 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 51,485,079
Mantle Sepolia 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 34,586,937
Arbitrum Sepolia 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 239,945,838
OP Sepolia 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 39,412,868
Polygon Amoy 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 33,069,064
Scroll Sepolia 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 16,543,185
Abstract Sepolia 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 16,493,173
Monad Testnet 0x8004A818BFB912233c491871b3d84c89A494BD9e 0x8004B663056A597Dffe9eCcC1965A193B7388713 0x8004Cb1BF31DAf7788923b405b754f57acEB4272 10,391,697

ABIs

The canonical JSON ABIs live in the reference contracts repo at github.com/erc-8004/erc-8004-contracts under the abis/ directory. Those files are the Hardhat build artifacts, so they drop straight into viem, ethers, or web3.py without any conversion. If you only need a quick reference for what each registry emits, the event signatures below are enough to wire up an eth_getLogs call or filter a subscription:

IdentityRegistry:   Registered(uint256,string,address)
                    MetadataSet(uint256,string,string,bytes)
                    URIUpdated(uint256,string,address)
                    Transfer(address,address,uint256)        // ERC-721 inherit
ReputationRegistry: NewFeedback(uint256,address,uint64,int128,uint8,string,string,string,string,string,bytes32)
                    FeedbackRevoked(uint256,address,uint64)
                    ResponseAppended(uint256,address,uint64,address,string,bytes32)
ValidationRegistry: ValidationRequest(address,uint256,string,bytes32)
                    ValidationResponse(address,uint256,bytes32,uint8,string,bytes32,string)

These are the exact signatures this Explorer’s indexer parses on every supported chain, and the /tutorials/viem and /tutorials/register-agent walkthroughs consume them directly.

Where to go next