# OmniProvider (MPP + x402) - https://pay.omnidev.tech Pay-per-call chat completions and cited briefs, served via an upstream provider. Charged only after the result is produced. MPP: Tempo charge (pull), tempo-mainnet chain 4217, USDC.e, on /v1/*. POST https://pay.omnidev.tech/v1/chat/nano USD 0.001/call <= 1000 in / 256 out tokens POST https://pay.omnidev.tech/v1/chat/small USD 0.002/call <= 8000 in / 1024 out tokens POST https://pay.omnidev.tech/v1/brief USD 0.002/call cited brief from the caller's quotes: {"query":"...","citations":[{"url":"https://...","quote":"..."}]} x402 (v2 exact, Base USDC, eip155:8453): the same services and prices on https://pay.omnidev.tech/x402/chat- and /x402/brief POST https://pay.omnidev.tech/x402/chat-nano USD 0.001/call POST https://pay.omnidev.tech/x402/chat-small USD 0.002/call POST https://pay.omnidev.tech/x402/brief USD 0.002/call One payment method per URL: /v1/* = MPP only, /x402/* = x402 only (the other method there -> 400, not charged). Body: {"messages":[{"role":"user","content":"..."}], "max_tokens": 128} An unpaid request returns 402 with the payment challenge for that URL (WWW-Authenticate on /v1, PAYMENT-REQUIRED on /x402). Paid requests carry the header X-Omni-Client-Nonce: <22-128 base64url chars> (required on paid requests). - The nonce is random, generated by the client before paying, and unique per payment; the client keeps it. - A missing or malformed nonce returns 400 client_nonce_required / bad_client_nonce, and the request is not charged. - MPP / x402 clients send it as an extra header (examples below); a client that cannot add headers receives 400, not charged. - The same credential with the same nonce returns the stored result of that payment, without a second charge. Nonce example: N=$(openssl rand -base64 24 | tr '+/' '-_' | tr -d '=') mppx: npx mppx --method POST -H 'content-type: application/json' -H "X-Omni-Client-Nonce: $N" -d '{"prompt":"hi"}' https://pay.omnidev.tech/v1/chat/nano agentcash: npx agentcash fetch https://pay.omnidev.tech/v1/chat/nano --method POST --header 'content-type: application/json' --header "X-Omni-Client-Nonce: $N" --body '{"prompt":"hi"}' --payment-protocol mpp x402: npx agentcash fetch https://pay.omnidev.tech/x402/chat-nano --method POST --header 'content-type: application/json' --header "X-Omni-Client-Nonce: $N" --body '{"prompt":"hi"}' --payment-protocol x402 (agentcash documents the flag as --header; mppx accepts -H / --header) Payment is settled only after the completion is produced (settle-after-serve). Docs: https://pay.omnidev.tech/openapi.json Terms (draft): https://pay.omnidev.tech/terms Privacy (draft): https://pay.omnidev.tech/privacy ## p9 catalog (OpenAI-compatible) - p9.12 GET https://pay.omnidev.tech/v1/models price per Mtok in/out, context, rails per model POST https://pay.omnidev.tech/v1/chat/completions {"model":"","messages":[...],"max_tokens":256} MPP tempo charge: 402 WWW-Authenticate: Payment quotes a fixed amount (min $0.0008). /v1 is MPP-only. GET https://pay.omnidev.tech/v1/packages prepaid token packs (OPEN-*) and frontier credit; pay once, then Authorization: Bearer sk-omni-... (or wallet-signed: X-Omni-Wallet / X-Omni-Wallet-Ts / X-Omni-Wallet-Sig) Client nonce (mandatory on paid requests): X-Omni-Client-Nonce, random base64url, 22-128 chars, new per payment. A paid request without it is answered 400 client_nonce_required and is not charged; unpaid price checks omit it. The same credential with the same nonce is redeliverable after settlement; a reused nonce weakens that protection. NONCE=$(python3 -c 'import secrets; print(secrets.token_urlsafe(32))') curl -sS -X POST https://pay.omnidev.tech/v1/chat/completions -H 'Content-Type: application/json' -H "X-Omni-Client-Nonce: $NONCE" -H 'Authorization: Payment ' -d @body.json Models: kimi-k3 in $0.08/Mtok out $0.24/Mtok ctx 1048576 deepseek-v4.1-flash in $0.03601/Mtok out $0.036/Mtok ctx 5000000 glm-5.3 in $0.4/Mtok out $0.2/Mtok ctx 5000000 llama-3.1-8b in $0.06/Mtok out $0.12/Mtok ctx 16384 gpt-oss-120b in $0.12/Mtok out $0.5/Mtok ctx 122880 gpt-6-luna in $0.15/Mtok out $0.75/Mtok ctx 1000000 claude-haiku-5.5 in $0.15/Mtok out $0.75/Mtok ctx 100000 gpt-6-sol in $2.4/Mtok out $12.0/Mtok ctx 1000000 claude-sonnet-5.5 in $2.4/Mtok out $12.0/Mtok ctx 1000000 gemini-3.1-pro in $2.4/Mtok out $14.4/Mtok ctx 200000 grok-4.7 in $2.4/Mtok out $7.2/Mtok ctx 500000 gpt-6-astra in $12.0/Mtok out $60.0/Mtok ctx 1000000 No streaming, no tools. The charge occurs only after the completion is produced. Served via an upstream provider; while the upstream is down every paid route answers 503 upstream_unavailable (charged:false) before quoting.