Route any agent or script through wave Dispatch. Your keys + data stay on your infra.
Authorization: Bearer <jwt> to /account/key → worker verifies online via auth.privy.io/api/v1/users/me + returns your linked license_key.ssoacct:<email> mapping as Supabase SSO — one license follows you regardless of provider.Dispatch.walletHook({provider:"privy",...}).POST /train with {routes:[{prompt,true_route},...], description?}; need ≥10 labels. true_route ∈ {claude_reason · direct · local_code · local_search · local_summarize}. Returns {job_id, status:"accepted", count, contract:"v0"}.GET /train/<job_id> with the same bearer — returns the queued record (count, dropped, description, received_at). 30-day retention.traindata:<job_id> and ship updated weights once the queue length justifies it. Want priority? Send a feature request via /feedback.machine-readable: /llms.txt · /openapi.json · /skill.md · /.well-known/x402 · /transparency.json · /payments (protocols + rails)