{
  "name": "hopenet town",
  "description": "The hopenet town's own agent: which estates live on chain 34349, which services they share, and whether each is up. It lists; it never grants — whether you may use a service is your own delegation's question.",
  "version": "0.1.0",
  "supportedInterfaces": [
    {
      "url": "https://town.impact-agent.io/a2a",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "capabilities": {
    "streaming": false,
    "pushNotifications": false
  },
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "provider": {
    "organization": "The hopenet town",
    "url": "https://town.impact-agent.io"
  },
  "documentationUrl": "https://town.impact-agent.io/",
  "skills": [
    {
      "id": "town.describe",
      "name": "Describe the town",
      "description": "The chain, the estates and every listed service, each with its signals: listed · healthy · compatible.",
      "tags": [
        "town",
        "directory",
        "health"
      ],
      "examples": [
        "what is in this town?",
        "which services are up?"
      ]
    },
    {
      "id": "town.service",
      "name": "One service",
      "description": "One listed service by id — what it is, who deploys it, where it lives, and its signals.",
      "tags": [
        "town",
        "service",
        "health"
      ],
      "examples": [
        "registry",
        "skills",
        "kms"
      ]
    },
    {
      "id": "town.estate",
      "name": "One estate",
      "description": "One estate of this town by id — where it lives, the name roots it may give and the gate that authorizes them, whose keys hold it, the MCP servers it declares, and which agents answer at its hosts. Membership is INFERRED from each agent's own on-chain endpoint and every row says so; no attestation of membership exists yet. Args: a data part { \"skill\": \"town.estate\", \"id\": \"<estate id>\" }, or name the estate in the text.",
      "tags": [
        "town",
        "estate",
        "directory"
      ],
      "examples": [
        "tell me about the faithnet estate",
        "which agents are in impact-agent?"
      ]
    },
    {
      "id": "town.mcp",
      "name": "The MCP servers",
      "description": "Which MCP servers this town runs, which each estate runs, and which agents serve a door of their own. The first two are DECLARED in the town manifest; the third is read from the chain. What an agent has ATTACHED is absent by construction: those are records in its owner's vault under her own grant. No tool lists — those belong to each server's own signed manifest. An endpoint says where a server listens, never that you may use it.",
      "tags": [
        "town",
        "mcp",
        "directory"
      ],
      "examples": [
        "which mcp servers are here?",
        "what mcp does faithnet run?"
      ]
    }
  ]
}