Raw schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "ENS name to set records for (e.g. \"myagent.eth\")"
},
"records": {
"type": "object",
"properties": {
"addresses": {
"description": "Address records by coin type. ETH takes a standard 0x address (copy it EXACTLY from the user or a tool result). Non-ETH coins (BTC, SOL, LTC, DOGE, …) take the raw wallet-format address exactly as the user gives it (e.g. \"bc1…\" bech32, base58 SOL) — it is encoded to ENSIP-9 bytes automatically. Pre-encoded 0x hex bytes are also accepted and passed through.",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"texts": {
"description": "Text records (e.g. {\"avatar\": \"https://...\", \"description\": \"An AI trading agent\", \"ai.agent\": \"true\", \"ai.capabilities\": \"trading,defi\"})",
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"contentHash": {
"description": "Content hash for a decentralized website. Accepts an ipfs:// or ipns:// URI, a bare IPFS CID (Qm…, bafy…), or an already-encoded 0x hex contenthash (0xe301…) — raw CIDs/URIs are encoded to the multicodec form automatically. Copy the CID exactly as the user gives it.",
"type": "string"
},
"agentRegistration": {
"description": "ENSIP-25 shorthand: set an agent-registration text record linking this name to an on-chain agent identity. Automatically builds the correct ERC-7930 encoded key.",
"type": "object",
"properties": {
"registryAddress": {
"type": "string",
"description": "ERC-8004 IdentityRegistry contract address (0x...)"
},
"agentId": {
"type": "string",
"description": "Agent ID in the registry"
},
"chainId": {
"default": 1,
"description": "Chain ID (default: 1 for mainnet)",
"type": "number"
}
},
"required": [
"registryAddress",
"agentId"
]
},
"agentContext": {
"description": "ENSIP-26 agent-context text record — free-form text describing the agent (markdown, JSON, YAML, etc.). The entry point for agent discovery.",
"type": "string"
},
"agentEndpoints": {
"description": "ENSIP-26 agent endpoint URLs by protocol. Sets agent-endpoint[<protocol>] text records.",
"type": "object",
"properties": {
"mcp": {
"description": "Model Context Protocol endpoint URL",
"type": "string"
},
"a2a": {
"description": "Agent-to-Agent Protocol endpoint URL",
"type": "string"
},
"oasf": {
"description": "OpenAPI Service Format endpoint URL",
"type": "string"
},
"web": {
"description": "Web interface URL",
"type": "string"
}
}
}
},
"description": "Records to set on the name"
},
"walletAddress": {
"type": "string",
"description": "Wallet address that owns the name (must sign the transaction)"
}
},
"required": [
"name",
"records",
"walletAddress"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}