{
  "x402Version": 2,
  "resources": [
    {
      "resource": "https://x402-qr-api.vercel.app/api/qrcode",
      "method": "GET",
      "description": "QR code image (PNG or SVG) for any text or URL.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.01",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "data": "required, string, max 2000 chars - Text or URL to encode",
        "size": "optional, integer, default 300, max 1000 - Pixel width of the output image",
        "format": "optional, string, \"png\" | \"svg\", default \"png\" - Output image format",
        "ecLevel": "optional, string, \"L\" | \"M\" | \"Q\" | \"H\", default \"M\" - QR error correction level",
        "dark": "optional, string, default \"000000\" - Foreground color, 6 or 8 digit hex",
        "light": "optional, string, default \"ffffff\" - Background color, 6 or 8 digit hex"
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/read",
      "method": "GET",
      "description": "Fetch a URL, strip nav/ads/boilerplate, return clean Markdown + title/byline/wordCount.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.005",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "url": "required, string - Public http(s) URL to fetch and extract. Internal/private addresses are rejected."
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/hash",
      "method": "GET",
      "description": "MD5 / SHA1 / SHA256 / SHA512 digests of input text.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.001",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "text": "required, string, max 100000 chars - Text to hash"
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/dns",
      "method": "GET",
      "description": "DNS lookup: A, AAAA, MX, TXT, NS, CNAME records for a domain.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.003",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "domain": "required, string - Domain name to look up"
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/headers",
      "method": "GET",
      "description": "HTTP status, response headers, redirect chain, and timing for a URL.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.003",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "url": "required, string - Public http(s) URL to inspect. Internal/private addresses are rejected."
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/ssl",
      "method": "GET",
      "description": "TLS certificate inspection: issuer, subject, validity dates, SANs.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.005",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "domain": "required, string - Domain name to check",
        "port": "optional, integer, default 443 - TCP port to connect to"
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/convert",
      "method": "GET",
      "description": "Convert data between JSON, YAML, and CSV.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.002",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "data": "required, string, max 100000 chars - Input to convert",
        "from": "required, string, \"json\" | \"yaml\" | \"csv\" - Input format",
        "to": "required, string, \"json\" | \"yaml\" | \"csv\" - Output format"
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/text-stats",
      "method": "GET",
      "description": "Word/sentence/syllable counts, reading time, Flesch reading-ease score.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.001",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "text": "required, string, max 100000 chars - Text to analyze"
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/validate",
      "method": "GET",
      "description": "Email validation: format check plus a live MX record lookup on the domain.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.002",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "email": "required, string, max 320 chars - Email address to validate"
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/jwt",
      "method": "GET",
      "description": "Decode a JWT's header/payload and check expiry — signature is not verified.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.001",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "token": "required, string, max 8000 chars - JWT to decode"
      }
    },
    {
      "resource": "https://x402-qr-api.vercel.app/api/domain-report",
      "method": "GET",
      "description": "Synthesized DNS + TLS + HTTP security report with a 0-100 score and findings — one call instead of three.",
      "accepts": [
        {
          "scheme": "exact",
          "network": "eip155:8453",
          "price": "$0.03",
          "asset": "USDC",
          "payTo": "0x01cc8d8a2b1a2fc684a92192362d28e34104888b"
        }
      ],
      "params": {
        "domain": "required, string - Domain to generate the report for"
      }
    }
  ]
}
