Skip to content
Open
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
1548c12
Add ENSIP-TBD-11 from the main branch of ENSIP-ideas repository (http…
nxt3d May 22, 2025
45dde5f
Update ENSIP-TBD-11 to standardize the `llms-txt` text record key for…
nxt3d May 30, 2025
88ee00f
Update title in ENSIP-TBD-11 to standardize naming convention for the…
nxt3d May 30, 2025
db7abb0
Refine llms.txt format in ENSIP-TBD-11 by removing ENS-specific adapt…
nxt3d May 30, 2025
98c1940
Clarify section headings in ENSIP-TBD-11 by renaming "Optional H2 Sec…
nxt3d May 30, 2025
fa95aa7
Remove redundant security considerations in ENSIP-TBD-11, clarifying …
nxt3d May 30, 2025
69b8e49
Add RFC 2119 terminology clarification and reintroduce rationale in E…
nxt3d May 30, 2025
5f62201
Enhance ENSIP-TBD-11 by introducing the llms-agent text record alongs…
nxt3d Jun 3, 2025
608cf5c
Return to the commit e616468b9adf76aaa9d88badaac4c8c770908f70, while …
nxt3d Jun 10, 2025
1fc7b59
Enhance ENSIP-TBD-11 by expanding the `root-context` text record spec…
nxt3d Jun 10, 2025
f30ee33
Enhance Markdown usage in ENSIP-TBD-11 by adding fenced code blocks f…
nxt3d Jun 10, 2025
356a114
feat: Head section in root-context interfaces
Ghadi8 Jun 11, 2025
516fb08
feat: simplify ensip to define only root-context key
Ghadi8 Jun 19, 2025
4ed460b
Rename root-context to agent-context and add registry/protocol discovery
nxt3d Nov 12, 2025
be9b031
Rename ensip-TBD-11.md to agent-context-record.md
nxt3d Nov 12, 2025
5d2df39
Update header style to match ENSIP-24 format
nxt3d Nov 12, 2025
d5840b4
ENSIP-26: Agent-Context Text Record
nxt3d Feb 16, 2026
232a173
Add index.html analogy: agent-context as starting point for AI agent
nxt3d Feb 25, 2026
88384f3
Add Agent Resolution section: load agent-context, read content
nxt3d Feb 25, 2026
79c8f2d
Add agent-endpoint records and multichain agent identity model
nxt3d Mar 11, 2026
e4dcecc
Rename to Agent Text Records
nxt3d Mar 11, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 112 additions & 0 deletions ensips/26.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
---
title: Agent Text Records
description: Standardized text records for multichain ENS agent identity, context, and endpoint discovery.
contributors:
- premm.eth
- justghadi.eth
ensip:
created: "2025-05-17"
status: draft
---

# ENSIP-26: Agent Text Records

## Abstract

This ENSIP extends ENSIP‑5: Text Records by standardizing the `agent-context` text record key and `agent-endpoint[<protocol>]` for agent interface discovery. An ENS name provides a single, multichain identity for an AI agent. The `agent-context` is the entry point: it describes the agent and may reference agent registries (e.g. ENSIP-25) or endpoints set via `agent-endpoint` records. Clients discover one identity, one context, and connect via the indicated registries or endpoints.

## Motivation

Agentic systems require a single, verifiable identity that works across chains. An ENS name provides that: one identity, one place for context and discovery. This ENSIP standardizes how agents declare themselves via `agent-context` and `agent-endpoint`. The context can point to whether the agent is registered in agent registries (e.g. ENSIP-25) or has protocol endpoints (MCP, A2A) set via `agent-endpoint` text records.

## Specification

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.

### Text Record Keys

#### agent-context

- **Key**: `agent-context`
- **Format**: Any format suitable for agentic systems (plain text, Markdown, YAML, JSON, etc.)

The key **MUST** be published via `text(bytes32,string)` as defined in ENSIP‑5. The content describes the agent and how to interact with it. The content MAY reference whether the agent is registered in agent registries (e.g. ENSIP-25 `agent-registration` records) or has endpoints published via `agent-endpoint` text records. This gives clients a single entry point to understand the agent's identity and how to reach it.

#### agent-endpoint

- **Key**: `agent-endpoint[<protocol>]`
- **Format**: A URL (e.g. `https://`, `http://`) identifying the endpoint for the specified agent protocol.

Name owners MAY publish one or more `agent-endpoint` records for different agent interfaces. Supported protocol values align with [ERC-8004](https://eips.ethereum.org/EIPS/eip-8004) services:

| Protocol | Description |
| -------- | ----------- |
| `mcp` | [Model Context Protocol](https://modelcontextprotocol.io/) – tools, resources, prompts |
| `a2a` | [Agent-to-Agent Protocol](https://google-a2a.github.io/A2A/) – agent authentication, skills, messaging |
| `oasf` | [OpenAPI Service Format](https://github.com/agntcy/oasf) – OpenAPI-based agent interface |
| `web` | Web interface or human-facing URL |

Example records:

| Key | Value |
| ----- | ----- |
| `agent-endpoint[mcp]` | `https://token-swap.mcp` |
| `agent-endpoint[a2a]` | `https://token-swap.a2a` |
| `agent-endpoint[oasf]` | `ipfs://{cid}` or `https://api.example.com/openapi.json` |
| `agent-endpoint[web]` | `https://agent.example.com/` |

Copy link

@jmacwhyte jmacwhyte Feb 25, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't understand what mechanism is being standardized here. This section basically boils down to "a specific key name may or may not exist, and if it does, it could contain any value".

Could you explain a bit more why this needs to be formalized as an ENSIP? Isn't "describe what the ENS name represents" already possible with the description key defined in ENSIP-5?

The value MUST be a valid URL, including IPFS URIs (e.g. `ipfs://{cid}`). Clients interpret the protocol and connect accordingly. Additional protocol values MAY be used as the ecosystem evolves.

### Agent Resolution

To resolve an agent for an ENS name (the agent's single identity):

1. Load the `agent-context` text record for the name using the resolver interface defined in ENSIP‑5.
2. Read the record content. The content describes the agent, how to interact with it, and may reference registries (ENSIP-25) or `agent-endpoint` records.
3. Optionally, load `agent-endpoint[<protocol>]` records to discover protocol-specific endpoints (MCP, A2A, etc.).

If `agent-context` is absent, no agent context is available for that name.

### Example: Multichain agent with single identity

A Swap Agent has one identity. The context describes the agent and points to how it can be reached:

| Key | Value |
| ----- | ----- |
| `agent-context` | See below |
| `agent-endpoint[mcp]` | `https://token-swap.mcp` |
| `agent-endpoint[a2a]` | `https://token-swap.a2a` |

```markdown
# Swap Agent

I am a multichain swapping agent with a single ENS identity. Connect to me via the MCP or A2A endpoints set in my agent-endpoint text records.

My verified tokens for swapping include:
| Symbol | Chain ID | Address |
|--------|----------|---------|
| WETH | 1 | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 |
| USDC | 1 | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 |
| WETH | 8453 | 0x4200000000000000000000000000000000000006 |
| USDC | 8453 | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| WETH | 10 | 0x4200000000000000000000000000000000000006 |
| USDC | 10 | 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 |
```

## Backwards Compatibility

Unaware clients will ignore the new keys; existing behavior is unaffected.

## Security Considerations

There are no security considerations specific to this ENSIP. Standard ENS security considerations apply to the underlying text record functionality.

## Rationale

This ENSIP creates a single identity model for multichain agents. An ENS name is the identity; `agent-context` is the entry point (analogous to `index.html`), and it can point to registries or endpoints. The `agent-endpoint` records enable direct connections to MCP, A2A, and other protocols. By unifying context and discovery under one ENS name, clients get one place to understand and reach an agent—whether it is registered on-chain, exposed via endpoints, or both.

Future ENSIPs may define more specific formats, but this specification intentionally remains minimal to encourage adoption and experimentation.

## Copyright

Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).
Loading