← agentwallet.md

ENS (Ethereum Name Service)

by ENS DAO (decentralized) · ens.domains
Identity Open Source
Best for: Giving AI agents human-readable on-chain identities (agent.eth); agent discovery and routing
Not ideal for: Non-EVM chains; purely off-chain identity; free identity (registration costs ETH)

Key Signals

Identity Type
Human-readable names
Chain
EVM
Integration
SDK / API
Pricing
Registration fees (ETH)

Features

🏷️
.eth Name Registration
Register a .eth name for your AI agent — e.g., procurement-bot.eth, trading-agent.eth. The name maps to the agent's wallet address and is stored on-chain. Registration costs vary by name length and are paid in ETH annually.
🔄
Reverse Resolution (Address → Name)
Map any Ethereum address back to its ENS name. When an agent sends a transaction, recipients and observers can resolve the sender's 0x address to a human-readable name, making multi-agent systems auditable and understandable.
📝
Text Records for Agent Metadata
ENS text records let you attach arbitrary metadata to an agent's identity: capabilities list, operator contact, version number, API endpoint, social profiles. Other agents or services can discover and query agent capabilities via these records.
🏛️
Decentralized
ENS is governed by ENS DAO and runs on immutable Ethereum smart contracts. No central authority can revoke or censor a registered name (except non-payment of renewal fees). Provides long-term identity stability for agents that outlive their operators.

Ratings

Ecosystem Adoption
4.9
Decentralization
4.8
Ease of Setup
4.3
Cross-chain
2.5
Ratings based on documentation review, GitHub activity, and public developer reports. Not independently verified in production.

Integration

npm install ethers import { ethers } from 'ethers'; const provider = new ethers.JsonRpcProvider('https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY'); // Forward resolution: name → address const agentAddress = await provider.resolveName('procurement-agent.eth'); console.log(agentAddress); // → 0x1234...abcd // Reverse resolution: address → name const agentName = await provider.lookupAddress('0x1234...abcd'); console.log(agentName); // → "procurement-agent.eth" // Read ENS text records (agent metadata) const resolver = await provider.getResolver('procurement-agent.eth'); const capabilities = await resolver.getText('agent.capabilities'); const apiEndpoint = await resolver.getText('agent.api'); const version = await resolver.getText('agent.version'); console.log({ capabilities, apiEndpoint, version }); // → { capabilities: "invoicing,ordering", api: "https://...", version: "2.1.0" }

Alternatives

World ID
Human verification — proves a real person operates the agent, ENS only proves ownership
EAS
Attestations — builds verifiable reputation on top of an ENS identity
Coinbase Verifications
KYC-backed identity — adds verified human/operator identity to complement an ENS name