# BotCheck > Per-request AI-traffic integrity attestation for adtech. Deterministic heuristic classification (no ML, same input -> byte-identical output) of request headers + behavioral signals into human|agent|bot|unknown, an Ed25519-signed batch impression-integrity certificate, and a SEED IP/UA reputation database (source:"seed", as_of-dated; v2 = live nginx observation feed). Payment: x402 v1 (HTTP 402, USDC on Solana mainnet via facilitator.payai.network). No API keys, no signup — pay per request. Free tier: 5 classify/day per IP for browser clients; pass holders (X-API-Key) get daily allowances. Behavioral signals are client-supplied trust-tier-2; verdicts are evidence, not proof. ## Endpoints - `POST /api/v1/botcheck/classify` — $0.002 — `{headers:{...}, signals:{...}}` -> `{verdict: human|agent|bot|unknown, confidence: 0-100, signals:[{name,value,weight,reason}...], classification_version:"1.0"}`. Deterministic heuristic: UA bot corpus (hard override), UA human corpus, Sec-CH-UA, Accept-Language, Accept, behavioral signals (js_challenge_ok, cookie_ok, honeypot_hit, mouse_moves, key_events, time_on_page_s, request_count_min, tls_fingerprint), HTTP request shape, honeypot. Bot >=55 bot-weight, human >=55 human-weight, else unknown; honeypot/known-crawler hard override -> bot, confidence >=90. - `POST /api/v1/botcheck/attest/batch` — $0.01 — `{items:[classify inputs], max 100, each <=8KB}` -> per-item verdicts + Ed25519-signed impression-integrity cert `{attestation_version:"1.0", items:[{index,verdict,confidence}], summary:{human,agent,bot,unknown}, signed_by, signature}`. Verify with the public key from /key (openssl pkeyutl -verify -pubin -rawin). - `GET /api/v1/botcheck/reputation?ip=&ua=` — $0.001 — SEED reputation lookup `{ip, ua, verdict, reasons, as_of}`; at least one of ip=/ua= required. Lookup: exact IP -> CIDR scan -> UA substring -> default unknown. source:"seed" (v2 = live nginx observation feed). - `GET /api/v1/botcheck/key` — free — Ed25519 public key (PEM). - `GET /api/v1/botcheck` — free — index/pricing/classifier method/disclaimer. ## Payment 1. Request -> 402 with accepts:[{scheme:exact, network:solana, maxAmountRequired, payTo, maxTimeoutSeconds:60, asset, extra:{feePayer}, description, serviceName:"BotCheck", tags:[...]}]. 2. Retry with `X-PAYMENT: base64(payload)`. 3. Gateway verifies via facilitator, produces the resource, settles only on success. Internal errors -> 500, NEVER settle (verify != capture). 4. Free tier: 5 classify/day/IP for browser clients; attest + reputation are paid-only. Pass-holder bypass: X-API-Key. ## Pricing | Route | Price | |---|---| | classify | $0.002 | | attest/batch | $0.01 | | reputation | $0.001 | | key | free | ## Contact Monexus x402 R&D Lab — michael.poncana@themonexus.com