ERC-8160: Primary Agent Registry: Address-to-Agent Resolution

ERC-8160, Primary Agent Registry, introduces a singleton contract on each EVM chain that gives a canonical answer to “which agent does this address represent?”. It builds on existing agent registry work like ERC-8004 and ERC-8122, but focuses on the reverse direction: mapping an Ethereum address to exactly one (registry, tokenId) pair so wallets, dapps, and indexers don’t all reinvent their own lookup mechanisms.

The contract is intentionally small: a single mapping from address → bytes that packs the agent registry address and token ID, plus four functions—register, resolveAgentId, agentData, and isRegistered. Write access is gated by a registrar role, but the spec is access-control-agnostic and describes several registrar patterns (self-registrar for EOAs, ERC-1271-based registrar for smart wallets, a signed registrar with nonces and deadlines, and ownable/role-check registrars) so different ecosystems can plug in whatever verification model fits their needs.

The ERC also defines a simple verification loop between the Primary Agent Registry and agent registries: forward resolution goes address → (registry, tokenId) via ERC-8160, then from the agent registry to the wallet/account (e.g. ERC-8004’s getAgentWallet(tokenId) or ERC-8122’s getMetadata(tokenId, "agent_account")), and reverse resolution confirms that wallet/account maps back to the same (registry, tokenId). A registration is considered verified only when both directions agree. I’m especially interested in feedback from wallet, agent-framework, and infra builders on whether this loop and the proposed registrar types fit the identity workflows you’re already building.

1 Like