← ENS · 8004
How it works

Your ENS name, your agent.

This app turns your ENS name into something more: a permanent agent identity that travels with the name, with its metadata stored as part of your ENS profile.

1. Get an ENS name

Enter an ENS name that you own, or register a new one.

2. Register the name as an ERC-8004 agent

Your ENS name is an NFT.

Unwrapped .eth names are ERC-721s held by the ENS BaseRegistrar; wrapped names and subnames are ERC-1155s in the NameWrapper.

Adapter8004 maps that NFT to an ERC-8004 agent registration. Whoever holds the ENS NFT also controls the agent.

The contract doesn't take custody - your name stays in your wallet. If you sell the ENS name, the agent registration goes with it.

3. Give your agent a personality

To make the binding useful, you can set ENS text records on the name that describe what you agent is, and how it functions. These agent-specific keys are standardized in ENSIP-26.

Field in the UIENS text record keySpec
Display namedisplayENSIP-5
Contextagent-contextENSIP-26
ImageavatarENSIP-5
A2A endpointagent-endpoint[a2a]ENSIP-26
MCP endpointagent-endpoint[mcp]ENSIP-26

The manifest at /api/manifest/<contract>/<tokenId> reads these records live and composes the agent JSON on every request.

4. Declare the link on the ENS side

The first time you save records, we also write an ENSIP-25 verification claim:

agent-registration[eip155:1:0x8004A169…E539a432][<agentId>] = "1"

ENSIP-25 defines a standardized method for directly verifying, using text records, the association between an ENS name and an AI agent identity.

Standards we lean on

  • ERC-8004Trustless agent identity on Ethereum.
  • Adapter8004Binds any ERC-721/1155/6909 NFT to an ERC-8004 agent without escrow or approvals.
  • ENSIP-5Text records on ENS names. Standard keys for display, avatar, url, description, etc.
  • ENSIP-25ENS standard for verifying, using text records, the association between an ENS name and an AI agent identity.
  • ENSIP-26Agent-specific text record keys. agent-context, agent-endpoint[a2a], agent-endpoint[mcp].