{
  "x402Version": 1,
  "service": "402oracle",
  "version": "1.3.0",
  "description": "Independent, cryptographically signed (ES256) attestations an AI agent can cite before it acts: is a business real, is a price right, is a URL live, is a claim true. Pay per call in USDC via x402 — no accounts, no API keys. Free unsigned MCP tier to evaluate.",
  "network": "base",
  "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "payTo": "0x7a19cd388c7f69145fef09b960853e0a429b6f4a",
  "endpoints": [
    {
      "method": "POST",
      "path": "/verify/business",
      "resource": "https://402oracle.com/verify/business",
      "price_atomic_usdc": "50000",
      "price_usd": "0.05",
      "description": "Verify a business or domain is real and established before your agent pays an invoice, onboards a vendor, or trusts it. Checks RDAP registration age, DNS (A/MX/NS), email posture (SPF/DMARC), and HTTPS reachability, and returns a signed attestation with a 0-100 trust score and evidence URLs.",
      "input_schema": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain to verify, e.g. example.com"
          }
        },
        "required": [
          "domain"
        ]
      }
    },
    {
      "method": "POST",
      "path": "/verify/price",
      "resource": "https://402oracle.com/verify/price",
      "price_atomic_usdc": "20000",
      "price_usd": "0.02",
      "description": "Confirm a crypto asset's price before your agent trades, quotes, or settles on it. Cross-checks Coinbase, Kraken, and OKX for a median and flags divergence when sources disagree. Returns a signed attestation.",
      "input_schema": {
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "Ticker symbol, e.g. BTC, ETH, SOL"
          }
        },
        "required": [
          "symbol"
        ]
      }
    },
    {
      "method": "POST",
      "path": "/verify/freshness",
      "resource": "https://402oracle.com/verify/freshness",
      "price_atomic_usdc": "20000",
      "price_usd": "0.02",
      "description": "Check that a URL is live and current before your agent acts on its contents. Returns HTTP status, Last-Modified/ETag, a content SHA-256, and whether it changed versus a prior hash. Returns a signed attestation.",
      "input_schema": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Full URL including https://"
          },
          "prior_hash": {
            "type": "string",
            "description": "Optional prior SHA-256 hex to compare against"
          }
        },
        "required": [
          "url"
        ]
      }
    },
    {
      "method": "POST",
      "path": "/verify/claim",
      "resource": "https://402oracle.com/verify/claim",
      "price_atomic_usdc": "250000",
      "price_usd": "0.25",
      "description": "Fact-check a single factual claim against web evidence before your agent relies on it. Returns a verdict (supported / contradicted / insufficient), a confidence score, and citations, as a signed attestation.",
      "input_schema": {
        "type": "object",
        "properties": {
          "claim": {
            "type": "string",
            "description": "A single factual claim, 8-600 characters"
          }
        },
        "required": [
          "claim"
        ]
      }
    }
  ],
  "free_tier": {
    "protocol": "mcp",
    "endpoint": "https://402oracle.com/mcp",
    "note": "Rate-limited, unsigned results."
  },
  "openapi": "https://402oracle.com/openapi.json",
  "agent_card": "https://402oracle.com/.well-known/agent-card",
  "llms_txt": "https://402oracle.com/llms.txt",
  "stats": "https://402oracle.com/stats",
  "attestation_verification": {
    "jwks": "https://402oracle.com/.well-known/jwks.json",
    "alg": "ES256",
    "canonicalization": "sorted-keys-json"
  }
}