{
  "schema_version": "2.4",
  "provider": {
    "name": "Loop XXI",
    "legal_name": "Loop XXI LLC",
    "website": "https://loopxxi.com",
    "contact": "business@loopxxi.com",
    "description": "Loop XXI builds infrastructure for autonomous commerce on Bitcoin and Lightning rails, and publishes research and public packages."
  },
  "updated": "2026-10-08",
  "catalog_url": "https://loopxxi.com/products.json",
  "products": [
    {
      "id": "loop-gateway",
      "name": "Loop Gateway",
      "status": "under-review",
      "purchasing": {
        "open": true,
        "status": "open",
        "since": "2026-10-08",
        "reason": "Loop XXI paid both rails on production with its own Lightning wallet on 2026-10-08: a 5,000-sat prepaid top-up settled and served a chat completion, and a 1-sat L402 challenge was paid, redeemed once and refused on replay.",
        "instruction": "Check this field before paying. If it reports open: false, do not create a top-up invoice or pay an L402 challenge."
      },
      "kind": "api",
      "audience": [
        "agent",
        "human"
      ],
      "operator": "Loop XXI LLC",
      "contact": "business@loopxxi.com",
      "support": [
        "business@loopxxi.com"
      ],
      "description": "OpenAI-compatible, metered AI inference operated by Loop XXI. Preferred purchase is prepaid Bitcoin Lightning top-up: POST /v1/topup with amount_sats (min 5000 sats) \u2192 pay BOLT11 \u2192 use loop_ bearer. Humans top up at https://gateway.loopxxi.com/buy. Per-call L402 is advertised as available: unauthenticated POST /v1/chat/completions returns HTTP 402 L402. Paying that challenge with the published BoltHub L402Client was verified on production on 2026-10-08 by Loop XXI's own wallet; lnget is not yet tested. Credit pays for API usage only; Loop XXI does not take custody of customer wallets.",
      "one_line": "Prepaid sats credit for OpenAI-compatible inference. POST /v1/topup, pay BOLT11, use loop_ bearer.",
      "api_base": "https://api.loopxxi.com/v1",
      "endpoint": "https://api.loopxxi.com/v1",
      "inference_url": "https://api.loopxxi.com/v1/chat/completions",
      "details_url": "https://loopxxi.com/businesses",
      "purchase_url": "https://gateway.loopxxi.com/buy",
      "health_url": "https://api.loopxxi.com/health",
      "docs_url": "https://api.loopxxi.com/llms.txt",
      "discovery_example_url": "https://loopxxi.com/tools/gateway-discovery",
      "quickstart_url": "https://loopxxi.com/businesses#quickstart",
      "openapi_url": "https://loopxxi.com/openapi/gateway.json",
      "payment_discovery_url": "https://api.loopxxi.com/.well-known/agent-payments.json",
      "pricing_url": "https://api.loopxxi.com/v1/pricing",
      "models_url": "https://api.loopxxi.com/v1/models",
      "balance_url": "https://api.loopxxi.com/v1/balance",
      "pricing": {
        "type": "metered",
        "unit": "sat",
        "pointer": "https://api.loopxxi.com/v1/pricing",
        "requires_subscription": false,
        "basis": "Current model prices at GET /v1/pricing. Do not cache a price or model count."
      },
      "payment_rails": [
        {
          "id": "lightning-topup",
          "name": "Bitcoin Lightning top-up",
          "method": "POST",
          "url": "https://api.loopxxi.com/v1/topup",
          "content_type": "application/json",
          "example_body": {
            "amount_sats": 5000
          },
          "min_amount_sats": 5000,
          "returns": "BOLT11 invoice and a prepaid loop_ bearer token. Pay the invoice from a Bitcoin Lightning wallet you control, then call the API with Authorization: Bearer <token>.",
          "flow": "POST /v1/topup with amount_sats \u2192 pay BOLT11 \u2192 use loop_ bearer",
          "style": "NWC / Alby Hub prepaid invoice then bearer",
          "analogy": "BoltHub buyCredit: Gateway topup is prepaid sats credit for OpenAI-compatible inference.",
          "primary": true
        },
        {
          "id": "l402",
          "name": "L402",
          "method": "POST",
          "url": "https://api.loopxxi.com/v1/chat/completions",
          "available": true,
          "min_amount_sats": 1,
          "tools": [
            "lnget",
            "L402"
          ],
          "challenge": "Unauthenticated POST /v1/chat/completions returns HTTP 402 with WWW-Authenticate: L402 (macaroon and Lightning invoice).",
          "note": "Unauthenticated POST /v1/chat/completions returns an HTTP 402 L402 challenge. Challenge amount is the estimated request cost (minimum 1 sat). Paying it with the published BoltHub L402Client was verified on production on 2026-10-08 by Loop XXI's own wallet; lnget is not yet tested. Preferred first purchase is still prepaid POST /v1/topup (min 5000 sats).",
          "preferred": false,
          "primary": false
        }
      ],
      "agent_purchase": {
        "job_to_be_done": "Buy OpenAI-compatible inference with prepaid Bitcoin sats.",
        "preferred": "prepaid-topup",
        "support": "business@loopxxi.com",
        "prepaid": {
          "style": "NWC / Alby Hub prepaid invoice then bearer",
          "flow": "POST /v1/topup with amount_sats \u2192 pay BOLT11 \u2192 use loop_ bearer",
          "method": "POST",
          "url": "https://api.loopxxi.com/v1/topup",
          "example_body": {
            "amount_sats": 5000
          },
          "min_amount_sats": 5000,
          "analogy": "BoltHub buyCredit: Gateway topup is prepaid sats credit for OpenAI-compatible inference. Usage credit only; not custody of a customer wallet."
        },
        "l402": {
          "available": true,
          "tools": [
            "lnget",
            "L402"
          ],
          "url": "https://api.loopxxi.com/v1/chat/completions",
          "min_amount_sats": 1,
          "challenge": "Unauthenticated POST /v1/chat/completions returns HTTP 402 with WWW-Authenticate: L402 (macaroon and Lightning invoice).",
          "note": "Per-call L402 is advertised as available. Paying the challenge with the published BoltHub L402Client was verified on production on 2026-10-08 by Loop XXI's own wallet; lnget is not yet tested. Preferred first purchase is still prepaid Lightning top-up (POST /v1/topup, min 5000 sats) or the human purchase page https://gateway.loopxxi.com/buy."
        }
      },
      "payment_discovery": {
        "lightning": {
          "method": "POST",
          "url": "https://api.loopxxi.com/v1/topup",
          "min_amount_sats": 5000,
          "preferred": true,
          "note": "Prepaid Lightning credit. POST /v1/topup with amount_sats (min 5000). Pay BOLT11, then use loop_ bearer."
        },
        "l402": {
          "available": true,
          "method": "POST",
          "url": "https://api.loopxxi.com/v1/chat/completions",
          "min_amount_sats": 1,
          "preferred": false,
          "note": "Unauthenticated POST /v1/chat/completions returns HTTP 402 L402. Paying that challenge with the published BoltHub L402Client was verified on production on 2026-10-08 by Loop XXI's own wallet; lnget is not yet tested. Preferred first purchase is still prepaid POST /v1/topup (min 5000 sats)."
        },
        "stripe": {
          "available": false,
          "method": "GET",
          "url": "https://api.loopxxi.com/v1/credits/packs",
          "note": "Unavailable per live payment discovery: card checkout to credited balance is not verified end-to-end. This catalog does not create a new Stripe product. Use prepaid Lightning POST /v1/topup."
        },
        "x402": {
          "available": false,
          "method": "GET",
          "url": "https://api.loopxxi.com/v1/x402/payment-required",
          "note": "Optional USDC wallet rail. Unavailable per live payment discovery: settlement is not configured and the URL returns HTTP 503. Do not send funds to an address inferred from memory. Use prepaid Lightning POST /v1/topup."
        }
      },
      "requires_subscription": false,
      "delivery": "Documented prepaid inference flow; independent live paid end-to-end delivery remains unverified.",
      "safety": "Non-custodial of customer wallets. Prepaid bearer credit only. Keep tokens private. Never send seeds, operator macaroons, or Stripe secret keys to Loop XXI.",
      "status_note": "Under review as of 2026-10-08. Buying is open. Loop XXI paid both rails on production with its own Lightning wallet on 2026-10-08: a 5,000-sat prepaid top-up settled and served a chat completion, and a 1-sat L402 challenge was paid, redeemed once and refused on replay. Independent live paid end-to-end operation and external customer revenue remain unverified. Public API documentation is not a commercial readiness guarantee."
    }
  ],
  "notice": "Gateway is under review. Independent live paid end-to-end operation and external customer revenue remain unverified. Read the dated public record at https://loopxxi.com/updates. Other human offers remain paused; historical downloads do not indicate an active paid service. Loop Scope is an unpaid experiment; payment is not open for the auditor API.",
  "toolkits": []
}
