x402 Cloud
operatorpaper modeBankr x402 Cloud: bankr.x402.json anatomy, deploy prerequisites, pricing norms. Scaffolded, not deployed.
Status: live on x402 Cloud
The five paid CoilOps services are deployed and live on Bankr x402 Cloud (deployed 2026-07-07; see API pricing). Base URL: https://x402.bankr.bot/0x403bad53f39a74154a1c9a86852e443738328761/<service>. An unpaid call returns a standards-correct HTTP 402 challenge (x402Version 2, network eip155:8453); settlement is verified and executed by Bankr’s facilitator on Base, and revenue settles directly to the HISS treasury wallet. HISS’s internal x402 endpoints remain in disabled/mock mode — the paid rail is x402 Cloud, where settlement verification is the facilitator’s job, not ours.
How x402 Cloud works
- A service is “a plain function that receives a Request and returns data” — deployed to
https://x402.bankr.bot/<wallet>/<service>. An unpaid call returns HTTP 402 Payment Required with payment instructions. - Verification is three-step: EIP-712 signature verification, amount verification, then on-chain settlement on Base — all handled by a facilitator; handler code never touches payment logic.
- Settle-after-response: payment is only collected after the handler returns a success (status < 400). Errors cost the caller nothing.
- Secrets go in encrypted env vars via
bankr x402 env set— scoped per user, never logged or returned.
npm install -g @bankr/cli
bankr login # interactive; or: bankr login email / --api-key / siwe
bankr x402 init # scaffold project (creates bankr.x402.json)
bankr x402 add <name> # add a service (handler file)
bankr x402 env set KEY=VAL # encrypted env var (e.g. LLM Gateway key)
bankr x402 deploy [name] # live at https://x402.bankr.bot/<wallet>/<name>
bankr x402 list | search <query> | revenue [name]bankr.x402.json anatomy
The config file doubles as the discovery listing — agents find services through its descriptions and schemas.
| Field | Type | Required | Description |
|---|---|---|---|
| payTo | string | no | Revenue wallet. Defaults to your Bankr-managed wallet — HISS sets a HISS-controlled Base treasury address instead. |
| network | string | no | Default "base". |
| currency | string | no | Default "USDC" (display only). |
| tokenAddress | string | null | no | null = USDC; any ERC-20 works. |
| services.<name>.price | string | no | Per-call price in the configured token; min "0.000001". |
| services.<name>.description | string | yes | Shown to agents during discovery — this is the marketplace listing. |
| services.<name>.methods | string[] | no | Default ["GET","POST"]. |
| services.<name>.category / tags | string / string[] | no | Discovery classification and search. |
| services.<name>.paymentScheme | "exact" | "upto" | no | exact for fixed prices (EIP-3009 tokens); upto authorizes a ceiling and settles the actual amount via the X-402-Settle-Amount response header. |
| services.<name>.schema | { input, output } | no | JSON Schema for both directions. GET → query params; POST → JSON body. |
{
"payTo": "0xHISS_TREASURY_ON_BASE",
"network": "base",
"currency": "USDC",
"tokenAddress": null,
"services": {
"coil-verify": {
"price": "0.02",
"description": "Validate a Coil manifest: weights, registry identity, fuse coverage.",
"methods": ["POST"],
"category": "finance-tools",
"tags": ["coil", "validation", "robinhood"],
"paymentScheme": "exact",
"schema": {
"input": { "type": "object", "required": ["coil"],
"properties": { "coil": { "type": "object", "description": "CoilManifest JSON" } } },
"output": { "type": "object",
"properties": { "validation": { "type": "object" }, "receipt": { "type": "object" } } }
}
},
"coil-compile": { "price": "0.25", "paymentScheme": "upto", "…": "…" }
}
}Deploy prerequisites (before anything goes live)
- Bankr account + API key —
bankr login(email flow creates a wallet and key; SIWE for headless). The key authenticates deploys; store asBANKR_API_KEYin CI. - A HISS-controlled Base wallet as
payTo— otherwise revenue settles to the Bankr-managed default wallet. - Pricing decisions per service —
exactfor fixed-price calls;uptofor size-dependent work (capsule compiles priced per leg, critique priced by LLM spend). - Discovery-quality descriptions + schemas for every service.
- Secrets via
bankr x402 env set; handlers must be self-contained (≤1 MB source, 256 MB / 30 s runtime).
Fees and limits
- 0% platform fee for the first 1,000 settled requests each month; a flat 5% after that. Only successfully settled requests are billable — 402 prompts and failures are free. No upfront cost to ship.
- 60 requests/min per paying wallet per endpoint; 20 deploys/hr; 25 services per deploy.
- Revenue settles on-chain via Base directly to the
payTowallet.
Protocol compatibility note (dual headers)
The x402 spec is converging on PAYMENT-REQUIRED / PAYMENT-SIGNATURE headers with CAIP-2 network ids (e.g. eip155:8453), while earlier deployments used X-PAYMENT / X-PAYMENT-RESPONSE. The HISS compat posture is to accept both until the ecosystem settles. Facilitators in production include Bankr and Coinbase CDP; Coinbase’s Bazaar additionally offers MCP-native discovery (search_resources / proxy_tool_call) once services speak the standard headers.