{
  "openapi": "3.1.0",
  "info": {
    "title": "Fieldproof",
    "version": "0.2.0",
    "description": "Pay $42 with card or 42 USDC on Base. Policy Gate is the live API.",
    "contact": { "url": "https://fieldproofhq.github.io" }
  },
  "servers": [
    { "url": "https://policy-gate.3labsio.workers.dev" },
    { "url": "https://fieldproofhq.github.io" }
  ],
  "externalDocs": {
    "description": "Pay $42 with card",
    "url": "https://buy.stripe.com/eVq4gA91U3Rr1Yt6z31sQ00"
  },
  "paths": {
    "/.well-known/host-meta.json": {
      "get": {
        "operationId": "hostMetaJson",
        "summary": "RFC 6415 JSON host-meta. rel=payment is the live $42 Stripe checkout.",
        "responses": { "200": { "description": "application/jrd+json host-meta" } }
      }
    },
    "/.well-known/did.json": {
      "get": {
        "operationId": "didWeb",
        "summary": "W3C did:web document. PaymentService #stripe is the live $42 Stripe checkout.",
        "responses": { "200": { "description": "application/did+json DID document" } }
      }
    },
    "/.well-known/nodeinfo": {
      "get": {
        "operationId": "nodeInfoIndex",
        "summary": "NodeInfo index. Follow the 2.1 link for payment metadata.",
        "responses": { "200": { "description": "NodeInfo well-known index" } }
      }
    },
    "/.well-known/webfinger": {
      "get": {
        "operationId": "webfinger",
        "summary": "RFC 7033 WebFinger. Query resource=acct:pay@host for $42 payment links.",
        "responses": { "200": { "description": "application/jrd+json with rel=payment" } }
      }
    },
    "/humans.txt": {
      "get": {
        "operationId": "humansTxt",
        "summary": "humans.txt listing the operator and every live $42 rail",
        "responses": { "200": { "description": "text/plain humans.txt with live $42 rails" } }
      }
    },
    "/.well-known/security.txt": {
      "get": {
        "operationId": "securityTxt",
        "summary": "RFC 9116 security.txt. Contact is the $42 Zelle inbox and the live invoice.",
        "responses": { "200": { "description": "text/plain security.txt with live $42 rails" } }
      }
    },
    "/package.json": {
      "get": {
        "operationId": "npmFunding",
        "summary": "npm-style funding document pointing at the live $42 checkout",
        "responses": { "200": { "description": "package.json with funding URLs" } }
      }
    },
    "/pay": {
      "get": {
        "operationId": "payCardRedirect",
        "summary": "302 to the live $42 Stripe Payment Link",
        "responses": { "302": { "description": "Redirect to Stripe" } }
      }
    },
    "/v1/quote": {
      "get": {
        "operationId": "quote42",
        "summary": "Directory alias of /v1/offer. HTML 302s to Stripe; otherwise HTTP 402 with 42 USDC plus card fallback.",
        "responses": { "402": { "description": "Payment required" } }
      },
      "post": {
        "operationId": "quote42Post",
        "summary": "POST-only $42 quote. Always 402 with 42 USDC plus card fallback.",
        "responses": { "402": { "description": "Payment required" } }
      }
    },
    "/v1/invoice": {
      "get": {
        "operationId": "invoice42",
        "summary": "HTTP 200 multi-rail $42 invoice: Stripe, EIP-681, BIP-21, x402, Zelle",
        "responses": { "200": { "description": "JSON invoice" } }
      }
    },
    "/skills/pay/SKILL.md": {
      "get": {
        "operationId": "paySkill",
        "summary": "Agent skill: how to pay Fieldproof $42 on every live rail",
        "responses": { "200": { "description": "text/markdown skill with live checkout URLs" } }
      }
    },
    "/v1/pay/card.png": {
      "get": {
        "operationId": "payCardQr",
        "summary": "302 to a scannable QR of the live $42 Stripe Payment Link",
        "responses": { "302": { "description": "Redirect to QR image of the Stripe checkout" } }
      }
    },
    "/v1/pay/card.uri": {
      "get": {
        "operationId": "payCardUri",
        "summary": "text/uri-list of the live $42 Stripe Payment Link",
        "responses": { "200": { "description": "text/uri-list; one Stripe checkout URI" } }
      }
    },
    "/v1/pay/usdc.png": {
      "get": {
        "operationId": "payUsdcQr",
        "summary": "302 to a scannable QR of the 42 USDC EIP-681 invoice on Base",
        "responses": { "302": { "description": "Redirect to QR image of the 42 USDC transfer" } }
      }
    },
    "/v1/pay/usdc.uri": {
      "get": {
        "operationId": "payUsdcUri",
        "summary": "text/uri-list EIP-681 invoice for 42 USDC on Base",
        "responses": { "200": { "description": "text/uri-list; one ethereum: transfer URI" } }
      }
    },
    "/v1/pay/tip-jar.uri": {
      "get": {
        "operationId": "payTipUri",
        "summary": "text/uri-list of the live $42 Gumroad tip-jar checkout",
        "responses": { "200": { "description": "text/uri-list; one store.3labs.io tip-jar URI" } }
      }
    },
    "/v1/pay/pack.uri": {
      "get": {
        "operationId": "payPackUri",
        "summary": "text/uri-list of the live $42 Gumroad Governance Pack checkout",
        "responses": { "200": { "description": "text/uri-list; one store.3labs.io pack URI" } }
      }
    },
    "/v1/pay/zelle.uri": {
      "get": {
        "operationId": "payZelleUri",
        "summary": "text/uri-list mailto invoice for $42 via Zelle",
        "responses": { "200": { "description": "text/uri-list; one mailto: URI" } }
      }
    },
    "/v1/pay/btc.uri": {
      "get": {
        "operationId": "payBtcUri",
        "summary": "text/uri-list BIP-21 invoice for ~$42 BTC",
        "responses": { "200": { "description": "text/uri-list; one bitcoin: URI with amount" } }
      }
    },
    "/v1/sponsor": {
      "post": {
        "operationId": "sponsor42",
        "summary": "Unpaid request quotes 42 USDC on Base (x402) plus a card fallback",
        "responses": { "402": { "description": "Payment required" } }
      }
    }
  },
  "x-payment": {
    "scheme": "stripe",
    "amountUsd": 42,
    "url": "https://buy.stripe.com/eVq4gA91U3Rr1Yt6z31sQ00"
  }
}
