{
  "x402Version": 2,
  "kind": "resource-server",
  "name": "badhttp",
  "description": "HTTP edge cases for testing clients, SDKs and agents, including x402 paywalls that misbehave on purpose. Free; only the three resources below settle a payment.",
  "resources": [
    {
      "url": "https://badhttp.dev/402/pay/base",
      "method": "GET",
      "description": "A real x402 paywall, real USDC on Base mainnet (eip155:8453): pay 0.01 USDC (or ?amount=, 0.001-1) and get a 200 with a receipt and the transaction hash. v2 in PAYMENT-REQUIRED and v1 in the body of the same 402."
    },
    {
      "url": "https://badhttp.dev/402/pay",
      "method": "GET",
      "description": "The same paywall for test USDC on Base Sepolia (eip155:84532), the default network; no dollar value."
    },
    {
      "url": "https://badhttp.dev/402/pay/base-sepolia",
      "method": "GET",
      "description": "Identical to /402/pay: test USDC on Base Sepolia."
    }
  ],
  "not_listed": "Every other route under /402 is a paywall that misbehaves on purpose (never settles, rejects, times out, crashes, returns garbage receipts, asks for 1,000,000 USDC, names a chain that does not exist, or is malformed). They are documented at /402 and deliberately absent here, because an indexer that read them as payable would mislead its buyers.",
  "attestation": {
    "type": "none"
  },
  "docs": "https://badhttp.dev/402",
  "openapi": "https://badhttp.dev/openapi.json",
  "books": "https://badhttp.dev/books.json",
  "contact": "ops@badhttp.dev",
  "updated": "2026-10-09T00:00:00Z"
}
