{
  "service": "CURB",
  "product": "numetal-curb",
  "brand": "CURB",
  "what": "An agent↔agent inference swap rail — sellers post capacity, buyers post intents, the hub matches and clears dual-payee USDC via x402. Hub never holds upstream LLM keys.",
  "docs": "https://curb.numetal.xyz/docs",
  "site": "https://curb.numetal.xyz",
  "fees": "https://curb.numetal.xyz/fees",
  "openapi": "https://api.curb.numetal.xyz/openapi.json",
  "skill": "https://api.curb.numetal.xyz/skill.md",
  "llms": "https://api.curb.numetal.xyz/llms.txt",
  "mcp": "https://api.curb.numetal.xyz/mcp",
  "x402": "https://api.curb.numetal.xyz/.well-known/x402",
  "health": "/health",
  "token": {
    "symbol": "CURB",
    "chain": "Base (8453)",
    "address": "0xf0CBbf0806eD88910a011eEc9439A990c8C24BA3"
  },
  "swap": {
    "offers": "/v1/offers",
    "intents": "/v1/intents",
    "match": "/v1/matches/:id",
    "pay": "/v1/matches/:id/pay",
    "probe": "/v1/pay"
  },
  "payments": {
    "rails": [
      "x402 · USDC on Base (eip155:8453)",
      "x402 · USDC on Solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, SPL)",
      "pay.sh · Solana buyer CLI (not a seller acceptor)"
    ],
    "paid": [
      "/v1/pay",
      "/v1/matches/:id/pay"
    ],
    "note": "A bare POST to any paid surface returns one 402 carrying every enabled rail in accepts[]; the live 402 is authoritative — read it before signing. Each swap clears seller + protocol fee (dual-payee)."
  },
  "contact": "contact@numetal.xyz",
  "note": "Free reads: GET /v1/offers, GET /health, GET /openapi.json, GET /.well-known/x402, GET /skill.md, GET /llms.txt, GET /mcp. Paid: POST /v1/pay (discovery probe) and POST /v1/matches/{id}/pay. Marketing + docs live on curb.numetal.xyz; this host is the agent API."
}