An ENS name under 402bot.eth, 402api.eth or 402mcp.eth binds your x402 endpoints and payTo addresses to one onchain key. Any client can then check who it's paying before it pays. Issued once, no renewals for holders.
402bot, 402api, and 402mcp map to the three places autonomous software shows up in production today: agents that act on a user's behalf, services that expose paid endpoints, and Model Context Protocol servers that broker tool use.
Autonomous agents that hold wallets, negotiate, transact, and represent a principal across chains.
Paid HTTP services that return data, run inference, or settle the HTTP 402 response in real time.
Model Context Protocol servers — the tool surface assistants attach to. Resolvable by name, not by URL.
Payment processors, infrastructure providers, and standards bodies issue and verify agent identities. Developers and end users mint and own them. The same primitive serves both audiences without intermediation.




All third-party names, logos, and trademarks shown above are the property of their respective owners and are used here solely to illustrate integration surfaces relevant to x402. Their inclusion does not imply endorsement, sponsorship, partnership, affiliation, or any commercial relationship with x402 Identity Hub.
Every agent resolves to a single onchain record. Replace API-key allowlists and certificate pinning with namespace-level trust that any party can verify without a directory call.
ENS is a public good. No registrar, foundation, or platform can revoke a name. Identities port across wallets, chains, and providers without re-issuance.
Every issuance is a transaction. Every resolution is verifiable. Compliance can grep the chain — no proprietary log shipping, no opaque registrar API.
x402 sits between the agent and the broader ENS infrastructure. The NameWrapper holds the issued subname; resolvers expose it across L1, every major L2, and via CCIP-Read to anywhere ENS reaches.
A 402 response tells a client which address to pay. Nothing in it proves that address belongs to the site that sent it. An ENS name closes that gap: the owner lists their origins and payTo addresses on the name, and any client can check a 402 against them. Setting it up is free for any .eth name, an x402 name or one you already own.
Any .eth name you control works, at no charge (your wallet pays only the network fee): ENSv1 names, wrapped or not and subnames included, and names registered or upgraded on ENSv2. Each name is marked with its version.
On your name, list the origins that serve your endpoints in org.x402.origins, and set your payTo as the name's address on that network. One wallet transaction from the verify wizard.
Your server adds the payee-name extension to its 402 response. It names the operator; it doesn't change how payment works.
A client reads the 402, resolves the name on Ethereum, and confirms both the origin it contacted and the payTo are listed. It gets a verdict, not a guess.
{
"verdict": true,
"reason": "payee-bound",
"name": "x402id.402api.eth",
"matched_by": "addr",
"parent_can_control": false,
"expires_at": "2038-02-14T12:17:23Z"
}Everything you can grep on Etherscan, surfaced as live state. No analytics layer, no proprietary dashboard — just the chain.
Launched on Base via Bankr. Registering a name earns 25% of the mint fee back in $X402ID, and trading fees flow to the x402 treasury to keep the parent names renewed.
$X402ID is a utility token for the x402 Identity Hub. It is not an investment, carries no claim on revenue, and its price can go to zero. Cashback terms may change; changes are announced before they take effect.
Quotes via 0x · pool fee 1.75% applies on every trade. Swaps settle on Base; minting names stays on Ethereum mainnet.
The NameWrapper locks each subname away from the parent at mint, and holders never renew. The one remaining dependency — the parent names themselves — is renewed from $X402ID trading fees, paid to the x402 treasury Safe.
Every subname is issued with PARENT_CANNOT_CONTROL already burned. A burned fuse cannot be cleared — by us, by the parent owner, or by the registrar contract. The holder controls the name's records, resolver, and transfers.
Trading fees from $X402ID flow to the x402 treasury Safe in WETH. Parent renewals are the first call on that treasury, ahead of development and buybacks, and every renewal is a public transaction on Ethereum.
The registrar exposes a register/batchRegister pair and an availability check. Wagmi, viem, ethers, cast — anything that speaks the ABI works.
# Is 'alice' available under 402bot.eth? cast call \\ 0xeb9e9ea385fe28b51a3f9a7d93fb893e0a1f9633 \\ "isAvailable(bytes32,string)" \\ $(cast namehash 402bot.eth) \\ "alice"
import { useReadContract, useWriteContract } from 'wagmi' import { namehash } from 'viem' const { writeContract } = useWriteContract() // The fee is set on-chain; read it rather than hardcoding it const { data: fee } = useReadContract({ address: '0xeb9e…9633', abi: registrarAbi, functionName: 'mintFee' }) writeContract({ address: '0xeb9e…9633', abi: registrarAbi, functionName: 'register', args: [namehash('402bot.eth'), 'alice'], value: fee, })