{
  "towns": [
    {
      "id": "faithchain",
      "chainId": 34348,
      "status": "live",
      "repo": "agentictrustlabs/ap-town",
      "manifest": "https://raw.githubusercontent.com/agentictrustlabs/ap-town/master/towns/faithchain/town.yaml",
      "agent": "https://town.faithnet.io",
      "portal": "https://town.faithnet.io",
      "naming": "https://names.faithnet.io",
      "registry": "https://discovery-a2a.faithnet.io",
      "rpc": "https://rpc.faithnet.io",
      "probed": true,
      "agentHealth": {
        "ok": true,
        "status": 200,
        "ms": 749
      },
      "declaredStatus": "live",
      "chain": {
        "id": 34348,
        "generation": "1",
        "rpc": "https://rpc.faithnet.io"
      },
      "estates": [
        {
          "id": "faithnet",
          "home": "https://www.faithnet.me",
          "edge": "https://edge.faithnet.io",
          "a2a": "https://a2a.faithnet.io",
          "nameRoots": [
            "me",
            "org",
            "team",
            "svc",
            "workspace",
            "treasury",
            "registry",
            "church",
            "circle",
            "impact"
          ],
          "repo": "agentictrustlabs/ap-home",
          "estateName": "faithnet.estate",
          "agentZone": "faithnet.ai"
        },
        {
          "id": "imbnet",
          "home": "https://www.impact-agent.me",
          "edge": "https://edge.impact-agent.io",
          "a2a": "https://a2a.impact-agent.io",
          "nameRoots": [
            "me",
            "org",
            "team",
            "svc",
            "workspace",
            "treasury",
            "registry",
            "church",
            "circle"
          ],
          "repo": "agentictrustlabs/ap-home",
          "estateName": "imbnet.estate",
          "agentZone": "impact-agent.ai"
        }
      ],
      "services": [
        {
          "id": "registry",
          "kind": "commons",
          "hosts": [
            "discovery-a2a.faithnet.io"
          ],
          "agentName": "discovery.registry",
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "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"
          },
          "description": "The town's registry — the discovery.registry agent, its ARD document, ACP registry and search."
        },
        {
          "id": "discovery-mcp",
          "kind": "commons",
          "hosts": [],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "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"
          },
          "description": "Reads the public graph and the retrieval index for the registry. Reachable only by service binding."
        },
        {
          "id": "discovery-indexer",
          "kind": "commons",
          "hosts": [],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "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"
          },
          "description": "The only writer of the public graph and the retrieval index; crawls every estate's name roots."
        },
        {
          "id": "discovery-connector",
          "kind": "commons",
          "hosts": [
            "discovery-connector.faithnet.io"
          ],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "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"
          },
          "description": "Public read-only MCP for external assistants, over the registry's search."
        },
        {
          "id": "discovery-web",
          "kind": "commons",
          "hosts": [
            "discovery.faithnet.io"
          ],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "signals": {
            "listed": true,
            "healthy": "up",
            "healthDetail": "GET https://discovery.faithnet.io/ → 302",
            "compatible": "unknown",
            "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
          },
          "description": "The explorer's old host — the registry's documents at their well-known paths, and a redirect to the portal's Find."
        },
        {
          "id": "town-agent",
          "kind": "commons",
          "hosts": [
            "town.faithnet.io"
          ],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "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"
          },
          "description": "The town's own agent — what this town offers and whether each service is up. Lists; never grants."
        },
        {
          "id": "town-mcp",
          "kind": "commons",
          "hosts": [],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "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"
          },
          "description": "The town's private MCP (spec 437 §4) — the only place a platform read credential lives, and the only thing that reads Cloudflare, Vercel, Azure and GraphDB. No hostname; reachable only by service binding from the town agent. It reads; it acts for nobody."
        },
        {
          "id": "naming",
          "kind": "commons",
          "hosts": [
            "names.faithnet.io"
          ],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "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"
          },
          "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."
        },
        {
          "id": "inference",
          "kind": "commons",
          "hosts": [
            "inference.faithnet.io"
          ],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "signals": {
            "listed": true,
            "healthy": "up",
            "healthDetail": "GET https://inference.faithnet.io/healthz → 200",
            "compatible": "unknown",
            "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
          },
          "description": "The town's model gateway (spec 434) — provider keys live on this Worker and nowhere else; it routes a call to a provider by budget and records the route it chose. It answers; it decides no authority."
        },
        {
          "id": "chain-gateway",
          "kind": "commons",
          "hosts": [
            "rpc.faithnet.io"
          ],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "signals": {
            "listed": true,
            "healthy": "up",
            "healthDetail": "GET https://rpc.faithnet.io/healthz → 200",
            "compatible": "unknown",
            "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
          },
          "description": "Chain access — per-app tokens, method allow-list, rate limits — in front of the faithchain node."
        },
        {
          "id": "skills",
          "kind": "commons",
          "hosts": [
            "skills.faithnet.io"
          ],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "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"
          },
          "description": "The skills registry — SKILL.md contracts and playbooks, pinned by digest."
        },
        {
          "id": "kms",
          "kind": "commons",
          "hosts": [
            "akcs-pilot.faithnet.io"
          ],
          "estates": [
            "faithnet",
            "imbnet"
          ],
          "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"
          },
          "description": "Key custody (AKCS) — the federation's shared operator (ap-federation federation.yaml#kms); a tenant per estate, never shared; keys are delegates, never identities."
        },
        {
          "id": "people-groups-mcp",
          "kind": "application",
          "hosts": [
            "demo-gc-pg.r-pedersen.workers.dev"
          ],
          "estates": [
            "faithnet"
          ],
          "signals": {
            "listed": true,
            "healthy": "up",
            "healthDetail": "GET https://demo-gc-pg.r-pedersen.workers.dev/health → 200",
            "compatible": "unknown",
            "compatibleDetail": "the town does not yet record what each service runs (town.lock.json); compatibility is not claimed"
          },
          "description": "The people-group MCP beside the Global.Church people-groups service agent — public counts from the GC graph through the GC gateway. The gateway credential lives on the Worker alone, never in the agent."
        },
        {
          "id": "gamenight",
          "kind": "application",
          "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"
          },
          "description": "Game Night — people and agents at the same tables, including Field Operations."
        }
      ],
      "names": {
        "ok": true,
        "block": 91748,
        "roots": [
          {
            "tld": "me",
            "kind": "person",
            "count": 87,
            "priced": true,
            "estates": [
              "faithnet",
              "imbnet"
            ]
          },
          {
            "tld": "org",
            "kind": "org",
            "count": 69,
            "priced": true,
            "estates": [
              "faithnet",
              "imbnet"
            ]
          },
          {
            "tld": "team",
            "kind": "team",
            "count": 66,
            "priced": true,
            "estates": [
              "faithnet",
              "imbnet"
            ]
          },
          {
            "tld": "svc",
            "kind": "service",
            "count": 27,
            "priced": true,
            "estates": [
              "faithnet",
              "imbnet"
            ]
          },
          {
            "tld": "workspace",
            "kind": "workspace",
            "count": 25,
            "priced": true,
            "estates": [
              "faithnet",
              "imbnet"
            ]
          },
          {
            "tld": "treasury",
            "kind": "treasury",
            "count": 16,
            "priced": true,
            "estates": [
              "faithnet",
              "imbnet"
            ]
          },
          {
            "tld": "registry",
            "kind": "registry",
            "count": 1,
            "priced": true,
            "estates": [
              "faithnet",
              "imbnet"
            ]
          },
          {
            "tld": "church",
            "kind": "church",
            "count": 2,
            "priced": true,
            "estates": [
              "faithnet",
              "imbnet"
            ]
          },
          {
            "tld": "circle",
            "kind": "circle",
            "count": 6,
            "priced": true,
            "estates": [
              "faithnet",
              "imbnet"
            ]
          },
          {
            "tld": "household",
            "kind": "household",
            "count": 2,
            "priced": true,
            "estates": []
          }
        ],
        "fees": {
          "treasury": "0xd2e64340f93933cc160d470c8eb9042435e29809",
          "coin": "SHQ",
          "coins": 299
        }
      }
    },
    {
      "id": "base-sepolia",
      "chainId": 84532,
      "status": "retired",
      "repo": "agentictrustlabs/ap-town",
      "manifest": "https://raw.githubusercontent.com/agentictrustlabs/ap-town/master/towns/base-sepolia/town.yaml",
      "note": "The impact demos' town (ap-town spec 429 §12.3). Its discovery list was decommissioned 2026-10-13; the manifest stays as the record of what stood there. Not probed, not queried for names.",
      "probed": false,
      "reason": "retired: not probed"
    }
  ],
  "at": "2026-10-13T21:47:22.946Z"
}