Overview
.agt is a namespace for AI agents. A .agt name gives an agent a human-readable identity, structured metadata, verifiable on-chain ownership, and discoverability by any client.
The Problem
The AI agent ecosystem lacks a decentralized identity and discovery layer:
- MCP (Anthropic) defines agent-to-tool communication. Discovery is manual JSON config — no directory.
- A2A (Google) defines agent-to-agent communication. Agent Cards live at
/.well-known/agent.json— tied to traditional DNS. - Platform marketplaces are centralized. Platforms control listing, ranking, and delisting.
- Orchestration frameworks (LangChain, CrewAI, AutoGen) hardcode agent discovery.
.agt fills this gap as the decentralized, verifiable, human-readable identity layer for AI agents.
What a .agt Name Provides
- A human-readable identity (
exampleagent.agt) - Structured metadata (capabilities, protocols, endpoints, keys)
- Verifiable ownership (an on-chain NFT on Polygon)
- Discoverability (resolvable by any client)
The AGT Registry
Ownership of a .agt name is recorded on the AGT Registry — a set of self-sovereign smart contracts on Polygon mainnet. The registry, its resolver, and its migration contract are owned and operated by the project, with administrative control held behind a timelock and a multisig. No third-party vendor controls the contracts, the records, or the resolution roadmap.
Registering a name mints an NFT to the owner's wallet. That NFT is the single source of truth for who controls the name — every record, manifest, and DNS projection ultimately checks against it. Existing holders from the original registry can migrate their name for free.
Positioning
.agt is the identity layer for the agent ecosystem. The mental model:
- ICANN controls
.com— every company needs one .agt— every agent needs one
The Layers
| Layer | Purpose |
|---|---|
| Identity | Human-readable names (exampleagent.agt), backed by on-chain NFT ownership in the AGT Registry on Polygon. |
| Records | An ENS-compatible resolver stores addr, text, and agent-specific records (manifest pointer, endpoints, keys, wallet) keyed to the name. |
| Manifest | A signed JSON document declaring name, description, protocols, capabilities, endpoints, keys, and payments. Pointed to on-chain by the registry; authorship verified against the NFT owner. |
| Resolution | Any client resolves a .agt name to its records and manifest by reading the registry directly. No auth needed, no gateway to trust. |
| Communication | Protocol-agnostic endpoints — MCP, A2A, HTTP, WebSocket, gRPC. The manifest declares what the agent speaks. |
| Trust | Verifiable ownership via the on-chain NFT. A manifest is valid only when its signer, its declared owner, and the current registry owner all agree. |
The .agt Namespace
There is a single canonical registration path — the AGT Registry on Polygon. This eliminates name collisions: one name, one owner, one source of truth.
| Surface | Role | Status |
|---|---|---|
| AGT Registry | Canonical registry — ownership, NFT minting, and on-chain records on Polygon. | Live on Polygon mainnet. Migration open. |
| Handshake root | DNS anchor — .agt resolves through the project's own authoritative nameservers, projected from registry state. | Nameserver cutover in progress (see the roadmap). |
DNS records for .agt are a downstream projection of the registry — set once on-chain, mirrored to the zone. See Records & Resolution for how this works.
Naming Conventions
- Users register a new name and migrate an existing one — never "claim". Names, not domains.
- Use ".agt Protocol" or ".agt Standard" when referencing the spec.
- Names are lowercase, alphanumeric, hyphen-separated (1–63 chars).
- Internationalized (emoji / non-ASCII) labels are represented on-chain as
xn--punycode.
Where to go next
- Building an agent that uses .agt names — Quick start, then the Resolver SDK.
- Holding a name — Migrating to v2, then publish from /manifest (see Records & Resolution).
- Building a client or tool — Use with Claude Code for the MCP server in any client, API Reference for HTTP.