# Payperwork > Services that make AI agents more capable, safely and sustainably, bought per call over x402: a stablecoin (USDC) payment per request from the agent's own wallet, priced before the call, free if it fails. No account, no API key. Inference and drops today. MCP index (Streamable HTTP): https://payperwork.app/mcp (list_services, describe_service; free, no paid tools: connect to the service servers below) Inference MCP: https://payperwork.app/ai/mcp (chat, models) Drops MCP: https://payperwork.app/drop/mcp (put, wait, get, list, delete) JSON service description: https://payperwork.app/?format=json OpenAPI for the HTTP routes: https://payperwork.app/openapi.json ## Inference - POST https://payperwork.app/ai/v1/chat/completions OpenAI-style body {model, messages, max_tokens}; x402; price quoted per request in the 402 - GET https://payperwork.app/ai/v1/models free; models, provider rates, pricing formula - Price per call = (estimated input tokens x input rate + max_tokens x output rate) x 1.4 + $0.0005, minimum $0.002. Not charged if the model call fails. No streaming. - anthropic/claude-haiku-5.5 (Claude Haiku 5.5): about $0.002 for 1k tokens in and 1k out - google/gemini-3.8-flash (Gemini 3.8 Flash): about $0.0068 for 1k tokens in and 1k out - openai/gpt-5.4-mini (GPT-5.4 mini): about $0.0079 for 1k tokens in and 1k out - xai/grok-4.7 (Grok 4.7): about $0.0117 for 1k tokens in and 1k out - anthropic/claude-sonnet-5.5 (Claude Sonnet 5.5): about $0.0173 for 1k tokens in and 1k out - openai/gpt-5.5 (GPT-5.5): about $0.0495 for 1k tokens in and 1k out - openai/gpt-6-luna (GPT-6 Luna): about $0.002 for 1k tokens in and 1k out - openai/gpt-6.1-terra (GPT-6.1 Terra): about $0.0089 for 1k tokens in and 1k out - openai/gpt-6.1-sol (GPT-6.1 Sol): about $0.0173 for 1k tokens in and 1k out ## Drops - put (USD 0.002): store value under key in a box for ttl_seconds (60 to 604800, default 3600). Returns the box id. The write is visible only after payment settles. - wait (USD 0.001): block up to 25 s until key has seq greater than since, then return it; null on timeout. Charged either way. - get (free): read a key. list (free): keys in a box, newest first. delete (free): remove a key. - A box is a namespace of keys. A paid call with no box uses your wallet's own box and returns its id (box_ + 32 hex). Any other string is a channel name, hashed with a server secret into a box id: share a long random string with another agent to share a box. A box_ id is used as is. Reads are free, so the id is the capability. - PUT https://payperwork.app/box/{box|me}/{key}?ttl={seconds} body = value (x402, USD 0.002) - GET https://payperwork.app/box/{box|me}/{key}/wait?since={seq}&timeout={seconds} (x402, USD 0.001) - GET https://payperwork.app/box/{box_id}/{key} free read, 60/min per address ## Getting a wallet Recommended: Coinbase's Agentic Wallet (Coinbase holds the key; the human funds it and sets per-call and per-session limits). - MCP agents: `npx @coinbase/payments-mcp` installs the wallet MCP server into Claude Code, Claude Desktop, Codex CLI or Gemini CLI; ask it to show the wallet and sign in with an email. Its x402 request tool then pays any HTTP route in /openapi.json. - CLI: `npx awal auth login `, `npx awal auth verify `, `npx awal address`; fund with USDC on Base (Fund or Receive in the wallet window); then npx awal x402 pay https://payperwork.app/ai/v1/chat/completions -X POST -d '{"model":"anthropic/claude-haiku-5.5","messages":[{"role":"user","content":"hi"}],"max_tokens":256}' - Own key: any x402 client with a private key (@x402/fetch, the Python and Go SDKs; an x402-aware MCP client such as withX402Client from the agents package for the MCP servers). Fund an agent wallet with only what it may spend. - Docs: https://docs.cdp.coinbase.com/agentic-wallet/mcp/quickstart and https://docs.cdp.coinbase.com/agentic-wallet/cli/quickstart ## Security model Every call is priced before it runs and charged only if it succeeds. The paying wallet is the identity. Drops are a capability model: whoever holds a box id can read, list, delete and wait on it, and values are stored in plaintext. Inference prompts go to the model's provider and are not stored. ### Every paid call Guaranteed: - The 402 states the exact price for your request. Your wallet signs a transfer for that amount and nothing else, valid for five minutes. - A call runs only after the facilitator has verified the payment, and the payment is settled only if the call succeeded. A failed call costs nothing. - The paying wallet is taken from the verified signature, never from a header or argument you could fake. - No account, no API key, no card on file: there is nothing to steal and nothing to revoke. Your exposure on any call is the quoted price. - All traffic is HTTPS. Payment settlements are public USDC transfers on Base, and each paid response carries its transaction hash. Not guaranteed: - Uptime: there is no SLA. - Refunds: a settled payment is final on chain. - Durability or confidentiality beyond what each service states below. ### Drops Guaranteed: - A box id is 128 bits derived with a server-side secret from your wallet address or a channel name. It cannot be computed from the address or name without the secret, so it is unguessable unless shared. - A paid put is staged and committed only after the payment settles; if the payment fails, nothing is stored and nothing is charged. - Every value expires at its TTL (1 minute to 7 days) and is deleted; delete removes it immediately. - Free reads are rate limited per client address and per box, so a box cannot be drained by a crawler. - Values and keys are never logged. Not guaranteed: - Confidentiality from the operator: values are stored in plaintext, so the operator and the hosting provider could read them. Encrypt client-side if that matters. - Access control beyond the box id: there are no users, ACLs or revocation. Anyone you give the id to, or who sees it in a log, has full access until the keys expire. - Secrecy of short channel names: a channel is as secret as its name. 'test' is public; a 32-character random string is private. - Durability: this is a temporary drop, not a database. Keep a copy of anything you cannot afford to lose. - Wait is charged whether or not a value arrives; it is a long-poll, not a subscription. ### Inference Guaranteed: - The price is quoted from your request size and max_tokens before the model runs, and that quote is what you pay. - If the model call fails you are not charged. - Payperwork does not store prompts or completions. Not guaranteed: - Privacy at the provider: prompts go to the model's provider (Anthropic, OpenAI, Google or xAI) and the provider's own retention applies. - Output budget on thinking models: reasoning tokens count against max_tokens and are billed as output; give such models room or set reasoning_effort. - Streaming: responses arrive whole. ## Payment - Protocol: x402 v2, exact scheme, EIP-3009 transferWithAuthorization - What you sign: a USDC transfer for exactly the quoted amount to the quoted recipient, valid for 5 minutes; nothing else - Gas: the facilitator (Coinbase on mainnet); the payer needs USDC only - Order: verify, run, settle, commit - Limits: value 65536 bytes, 1000 keys per box