# jurat we remember, we watch, we prove — evidence infrastructure for AI agents. Pay per call via x402 (USDC on Base). No signup, no API keys. Verification is free forever. An attestation proves what jurat observed at a point in time (URL, UTC time, bytes, sha256, ed25519 signature). It does not claim the content is true. ## Paid endpoints (x402) - GET /v1/snapshot?url=... ($0.01) -> signed, timestamped attestation of any public URL, bytes archived - GET /v1/scores?league=mlb&date=YYYYMMDD ($0.01) -> normalized scoreboard, 24 leagues incl. rugby + cricket (IPL, BBL), completion flags - GET /v1/result?league=mlb&event=ID&attest=true ($0.02) -> FINAL score + notarized source snapshot in one call; 409-refuses non-final events - GET /v1/watch/create?url=...&mode=hash&webhook=https://... ($0.05) -> we watch, you sleep: webhook on change with proof attached. Modes: hash, json:, regex:, result:: (fires on final whistle). cadence_minutes 15-1440, duration_days 1-7. - GET /v1/wake/create?at=ISO8601&webhook=https://...&payload=... ($0.005) -> we hold your payload and POST it to your webhook at time T. Cron for ephemeral agents. - GET /v1/watch/league?league=mlb&webhook=https://... ($0.10) -> one call watches EVERY event in a league for the day; each final webhooked as it lands, proof attached. - GET /v1/wake/recurring?at=ISO8601&every_seconds=3600&webhook=https://... ($0.05) -> standing cron: we poke your webhook every N seconds until expiry (max 7 days). ## Free forever - GET /catalog, /llms.txt, /health, /v1/sports (league list) - GET /v1/attestation/{id} and /v1/attestation/{id}/body -> verify any attestation, retrieve archived bytes - GET /v1/watch/{id}, /v1/wake/{id} -> task status - GET /v1/anchors -> daily merkle roots over all attestations, ed25519-signed, anchored to Base calldata; each attestation carries its merkle proof under 'anchored' - GET /.well-known/jurat.json -> signing pubkeys + canonicalization spec Base URL: https://jurat.dev