A technical deep dive into the Agent Name Service architecture, trust verification mechanisms, and implementation details.
ANS is built on four foundational pillars that work together to provide verifiable agent identity and trust.
Agent metadata is published in DNS using TXT and TLSA records. No central database, no single point of failure. Works on every DNS provider today.
Cryptographically sealed registration log powered by Trillian. Every agent registration is timestamped and immutable. Provides proof of when an agent was registered and what version was published.
Certificate fingerprints are bound to DNS via TLSA records. DNSSEC ensures DNS responses haven't been tampered with. Prevents CA compromise attacks.
Aggregates signals from multiple sources: certificate validity, Transparency Log inclusion, DNSSEC status, and historical behavior. Produces Bronze, Silver, or Gold tier ratings.
The registration process creates a verifiable, immutable record of your agent's identity and capabilities.
Create an agent card (JSON) with your agent's name, version, capabilities, and endpoints. Host it at /.well-known/agent-card.json
Publish TXT records under _ans and _ans-badge labels. Add TLSA records for DANE. Enable DNSSEC if you want Silver or Gold tier.
Call the ANS registry API to seal your registration in the Transparency Log. Receive a cryptographic inclusion proof. Update your _ans-badge record with the TL URL.
{
"name": "Joe's Barbershop Agent",
"version": "v1.0.0",
"domain": "joes-barber.com",
"protocol": "a2a",
"capabilities": ["booking", "calendar", "payments"],
"endpoints": {
"a2a": "https://joes-barber.com/api/agent"
},
"contact": {
"email": "[email protected]"
},
"transparency_log": {
"url": "https://tl.godaddy.com/v1/agents/abc123",
"inclusion_proof": "..."
}
}ANS provides multiple discovery mechanisms depending on your use case: DNS queries, MCP server integration, or direct API calls.
Query the _ans TXT record to find the agent card URL. Fetch the card to get capabilities and endpoints.
$ dig _ans.joes-barber.com TXT
_ans.joes-barber.com IN TXT "v=ans1; version=v1.0.0; p=a2a; url=https://joes-barber.com/.well-known/agent-card.json"Use the ANS MCP server to query agents by capability. The server handles DNS lookups, trust verification, and filtering.
// Query for agents with booking capability
{
"tool": "list_trusted_agents",
"arguments": {
"capability": "booking",
"min_tier": "silver"
}
}
// Response
{
"agents": [
{
"domain": "joes-barber.com",
"name": "Joe's Barbershop Agent",
"tier": "gold",
"capabilities": ["booking", "calendar", "payments"]
}
]
}Query the Trust Index API directly to search for agents by capability, location, or other criteria. The API returns verified agents with trust scores.
GET https://trust-index.ans.godaddy.com/v1/agents?capability=booking&tier=gold
{
"agents": [
{
"domain": "joes-barber.com",
"tier": "gold",
"score": 95,
"verified_at": "2026-04-15T10:30:00Z"
}
]
}ANS performs multi-layered verification to ensure agents are who they claim to be. Each tier adds additional checks.
Verifies the agent has a valid TLS certificate for their domain. Checks certificate chain, expiration, and revocation status. Prevents unregistered impostors.
Adds DANE verification: the certificate fingerprint must match the TLSA DNS record. Requires DNSSEC. Prevents compromised CAs from issuing fraudulent certificates.
Adds Transparency Log verification: the agent's registration must be sealed in the TL with a valid inclusion proof. Prevents tampered registrations, backdated entries, and code swaps without version bumps.
ANS is designed to defend against specific attack vectors in the agentic ecosystem.
Threat: Attacker registers a similar domain (typosquatting) and claims to be a trusted agent.
Mitigation: Bronze tier requires valid TLS certificate for the exact domain. Trust Index tracks domain reputation and flags suspicious registrations.
Threat: Compromised Certificate Authority issues fraudulent certificate for victim's domain.
Mitigation: Silver tier DANE binds certificate fingerprint to DNS via TLSA record. Attacker must compromise both CA and DNS.
Threat: Attacker compromises DNS and changes ANS records to point to malicious agent.
Mitigation: DNSSEC prevents DNS tampering. Transparency Log provides historical record showing when changes occurred.
Threat: Attacker rolls back agent to older version with known vulnerabilities.
Mitigation: Gold tier Transparency Log tracks version history. Trust Index flags unexpected version downgrades.
Threat: Attacker modifies agent code without changing version number.
Mitigation: Transparency Log seals code hash with version. Any change requires new TL entry with version bump.
Threat: Attacker captures and replays legitimate agent requests.
Mitigation: Web Bot Auth signatures include timestamps and nonces. Identity Certificates bind requests to specific agent instances.
Ready to integrate ANS into your agent? Here's how to get started with the SDK and MCP server.
The ANS SDK provides high-level APIs for registration, discovery, and trust verification. Available for Node.js, Python, and Go.
import { ANSClient } from '@godaddy/ans-sdk';
const client = new ANSClient();
// Register your agent
await client.register({
domain: 'my-agent.com',
name: 'My Agent',
version: 'v1.0.0',
capabilities: ['booking', 'payments'],
});
// Discover agents
const agents = await client.discover({
capability: 'booking',
minTier: 'silver',
});
// Verify trust
const trust = await client.verify('joes-barber.com');
console.log(trust.tier); // 'gold'The ANS MCP server exposes ANS functionality as MCP tools. Integrate with Claude Desktop, OpenClaw, or any MCP-compatible agent framework.
{
"mcpServers": {
"ans": {
"command": "npx",
"args": ["-y", "@godaddy/ans-mcp-server"],
"env": {
"ANS_API_KEY": process.env.ANS_API_KEY
}
}
}
}Phase one: TXT records work today, on every provider, zero friction. Phase two: the DNS community is converging on shared SVCB records under the _ag label as the permanent format.
_ans and _ans-badge labels. Works on every DNS provider today. No custom extensions, no provider lock-in. Immediate deployment with zero friction._ag label as the permanent format — one record per protocol, carrying discovery metadata for all participating drafts. Standards-track SvcParams via IANA Expert Review. The transition is transparent to agents: the ANS SDK and MCP server abstract which record format is in use.; Connection hint — which protocol, where to find metadata
_ans.joes-barber.com IN TXT "v=ans1; version=v1.0.0; p=a2a; url=https://joes-barber.com/.well-known/agent-card.json"
; Trust badge — link to the sealed TL entry
_ans-badge.joes-barber.com IN TXT "v=ans-badge1; version=v1.0.0; url=https://tl.godaddy.com/v1/agents/abc123"
; DANE — certificate fingerprint bound to DNSSEC
_443._tcp.joes-barber.com IN TLSA 3 0 1 <sha256_fingerprint>
; Identity DANE — version-bound Identity Certificate (managed by agent owner)
_ans-identity._tls.joes-barber.com IN TLSA 3 0 1 <identity_cert_fingerprint>_ans and _ans-badge — separate from _agent (AID) and _agents (DNS-AID). All coexist without collision. A DNS-AID SVCB record and an ANS TXT record can point to the same endpoint. ANS tells you whether to trust it.See how ANS enables secure, autonomous agent interactions. Choose a scenario to explore the full flow — from plain English to the technical protocol detail.
Step through what actually happens when your AI assistant / agent books a haircut — no jargon, no protocols. Just the story.