{
  "town": "faithchain",
  "status": "live",
  "chain": {
    "id": 34348,
    "generation": "1",
    "rpc": "https://rpc.faithnet.io"
  },
  "estates": [
    {
      "id": "faithnet",
      "home": "https://www.faithnet.me",
      "edge": "https://edge.faithnet.io",
      "nameRoots": [
        "me",
        "org",
        "team",
        "svc",
        "workspace",
        "treasury",
        "registry",
        "church",
        "circle",
        "impact"
      ],
      "repo": "agentictrustlabs/ap-home"
    }
  ],
  "services": [
    {
      "id": "registry",
      "kind": "commons",
      "description": "The town's registry — the discovery.registry agent, its ARD document, ACP registry and search.",
      "repo": "ap-town",
      "hosts": [
        "discovery-a2a.faithnet.io"
      ],
      "agentName": "discovery.registry",
      "card": "https://discovery-a2a.faithnet.io/.well-known/agent-card.json",
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "up",
        "healthDetail": "GET https://discovery-a2a.faithnet.io/health → 200",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "discovery-mcp",
      "kind": "commons",
      "description": "Reads the public graph and the retrieval index for the registry. Reachable only by service binding.",
      "repo": "ap-town",
      "hosts": [],
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "unobserved",
        "healthDetail": "no public probe",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "discovery-indexer",
      "kind": "commons",
      "description": "The only writer of the public graph and the retrieval index; crawls every estate's name roots.",
      "repo": "ap-town",
      "hosts": [],
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "unobserved",
        "healthDetail": "no public probe",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "discovery-connector",
      "kind": "commons",
      "description": "Public read-only MCP for external assistants, over the registry's search.",
      "repo": "ap-town",
      "hosts": [
        "discovery-connector.faithnet.io"
      ],
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "up",
        "healthDetail": "GET https://discovery-connector.faithnet.io/health → 200",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "discovery-web",
      "kind": "commons",
      "description": "The discovery explorer. Becomes the portal's Find area (R3).",
      "repo": "ap-town",
      "hosts": [
        "discovery.faithnet.io"
      ],
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "up",
        "healthDetail": "GET https://discovery.faithnet.io/ → 200",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "town-agent",
      "kind": "commons",
      "description": "The town's own agent — what this town offers and whether each service is up. Lists; never grants.",
      "repo": "ap-town",
      "hosts": [
        "town.faithnet.io"
      ],
      "card": "https://town.faithnet.io/.well-known/agent-card.json",
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "self",
        "healthDetail": "this agent — answering is its health",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "naming",
      "kind": "commons",
      "description": "The town's naming service — every name on the chain, what it points at, and who can change it. It reads; an owner's Home writes.",
      "repo": "ap-town",
      "hosts": [
        "names.faithnet.io"
      ],
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "up",
        "healthDetail": "GET https://names.faithnet.io/api/health → 200",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "chain-gateway",
      "kind": "commons",
      "description": "Chain access — per-app tokens, method allow-list, rate limits — in front of the faithchain node.",
      "repo": "ap-town",
      "hosts": [
        "rpc.faithnet.io"
      ],
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "unobserved",
        "healthDetail": "no public probe",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "skills",
      "kind": "commons",
      "description": "The skills registry — SKILL.md contracts and playbooks, pinned by digest.",
      "repo": "agentictrustlabs/skills",
      "hosts": [
        "skills.faithnet.io"
      ],
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "up",
        "healthDetail": "GET https://skills.faithnet.io/ → 200",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "kms",
      "kind": "commons",
      "description": "Key custody (AKCS) — a tenant per estate; keys are delegates, never identities.",
      "repo": "agentictrustlabs/faithkms",
      "hosts": [
        "akcs-pilot.faithnet.io"
      ],
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "up",
        "healthDetail": "GET https://akcs-pilot.faithnet.io/healthz → 200",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    },
    {
      "id": "gamenight",
      "kind": "application",
      "description": "Game Night — people and agents at the same tables, including Field Operations.",
      "repo": "agentictrustlabs/pokernight",
      "hosts": [
        "gamenight.faithnet.io",
        "games.faithnet.io",
        "agents.faithnet.io"
      ],
      "estates": [
        "faithnet"
      ],
      "signals": {
        "listed": true,
        "healthy": "up",
        "healthDetail": "GET https://gamenight.faithnet.io/ → 200",
        "compatible": "unknown",
        "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
      },
      "authorized": "Whether you may use this service is decided by your own delegation, checked by the service against the chain. The town lists; it does not grant."
    }
  ],
  "card": "https://town.faithnet.io/.well-known/agent-card.json"
}