Guide · Inference cloud
Route a cloud through the gateway
Register one base URL as an external backend of your cloud. Every model of every venue the brokerage reads answers behind it, at the provider's price plus a published cut, and every answer is checked before it is charged.
An inference cloud sells models it runs and models it routes to. The second kind enters through a provider config: an OpenAI-compatible base URL and a key. The gateway is one such backend. Behind it sit the venues the brokerage buys from and the GPU rigs of the provider program, priced from the market by the broker, settled through one vault. This page shows what to configure, what the key costs, what an answer carries, and how a cloud's own rigs join the pool.
Nothing here needs a Taifoon SDK. The door is the OpenAI chat-completions shape; a key is the Authorization: Bearer header; a call without a key answers HTTP 402 with the x402 terms for that one call.
1. What you configure
One backend, one base URL. Your routing names the model; the gateway answers with the venue that serves it now.
| Setting | Value |
|---|---|
| base_url | https://coord.taifoon.dev/v1 |
| Chat | POST /v1/chat/completions, or POST /v1/chat/completions/<model> for one model |
| Catalogue | GET /v1/models: ids in the OpenAI list shape, each with taifoon.usd_per_1m and taifoon.available |
| Key | Authorization: Bearer tfr_…; the same key as X-API-Key on every other route |
| Streaming | stream: true answers text/event-stream chunks |
| Attestation | none on this door: an external backend is served as a third-party route, not a TEE route; section 5 says how a rig in a TEE joins |
curl -s https://coord.taifoon.dev/v1/models | jq '.data[] | select(.id == "deepseek-ai/DeepSeek-V3.2")'{
"id": "deepseek-ai/DeepSeek-V3.2",
"object": "model",
"owned_by": "deepinfra",
"taifoon": { "listing": "gpu:deepseek-v3:deepinfra", "reference_model": "deepseek-v3", "available": true, "usd_per_1m": { "in": 0.28, "out": 0.42 } }
}The price a request pays is the one the catalogue shows at that moment. The broker prices from the market, so a model may move. On 2026-10-23 the catalogue carried 29 models from 8 venues: DeepInfra, NEAR AI, Venice, Chutes, Groq, io.net, Phala and the Taifoon GPU pool.
2. The key, and how it is funded
A key is free and is shown once. It is funded with one USDC transfer on a pay chain, or a call is paid one at a time with x402.
Get a key
curl -s -X POST https://coord.taifoon.dev/v1/register -H 'content-type: application/json' -d '{}'The answer carries a tfr_free_… key and the free allowance it starts with. Nothing is signed and nothing is paid.
Fund it
curl -s 'https://coord.taifoon.dev/v1/access/quote?usdc=10&chainId=8453'{
"ok": true, "product": "balance",
"credits": { "usdc": "10.000000", "rule": "one balance pays calls past the free allowance, grades, records and gateway requests at the list prices of GET /v1/access …" },
"pay": { "chainId": 8453, "network": "Base", "symbol": "USDC", "amount": "10.000000", "payee": "0x3574999dd4c96eB73Bd6e11D4177010C83E14f5b", "confirmations": 3,
"call": { "to": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "data": "0xa9059cbb…" } }
}Send that one transfer from your own wallet, then claim it on the key with POST /v1/access/topup {tx, chainId}. The balance does not expire. Base, Arbitrum One, Robinhood Chain, Monad and Solana are pay chains; the quote names the token and payee per chain.
Or pay per call
curl -s -X POST https://coord.taifoon.dev/v1/chat/completions -H 'content-type: application/json' \
-d '{"model":"deepseek-ai/DeepSeek-V3.2","messages":[{"role":"user","content":"ping"}],"max_tokens":4}'HTTP 402
{ "error": { "type": "authentication_error", "code": "invalid_api_key", "message": "Send your Taifoon key … or pay this one call with x402" },
"listing": "gpu:deepseek-v3:deepinfra",
"x402": { "x402Version": 2, "resource": { "url": "https://coord.taifoon.dev/v1/chat/completions",
"description": "… served by DeepInfra and sold by Taifoon at the provider's price plus a 10.53 % reseller cut: 0.28 / 0.42 USD per 1M tokens in/out. This request is priced at its prompt and max_tokens. The answer is checked before you are charged." } } }An x402 client pays the quoted amount and repeats the call with the payment header. The description names the venue, the cut and the price before any money moves.
Every refusal says what to do next
| Status | Code | Next step |
|---|---|---|
| 401 | invalid_api_key | register, or pay the call with x402 |
| 402 | budget | top up the key |
| 402 | agreement_required | accept the document the answer names |
| 409 | waits_on_funding | the venue behind the model is not funded; the catalogue says so in available |
| 502 | provider_refused | the venue failed; the key is refunded |
3. What an answer carries
The answer is the OpenAI chat completion, plus one block that says who served it and what it cost.
{ "id": "…", "object": "chat.completion", "model": "deepseek-ai/DeepSeek-V3.2",
"choices": [{ "index": 0, "message": { "role": "assistant", "content": "…" }, "finish_reason": "stop" }],
"usage": { "prompt_tokens": 7, "completion_tokens": 4, "total_tokens": 11 },
"taifoon": { "served_by": "deepinfra", "listing": "gpu:deepseek-v3:deepinfra", "sale": { "id": "…", "paid_by": "key", "usdc": "0.000004" }, "rule": "…" } }An answer that fails the content check is not charged: taifoon.not_applied says why. Every charged call is one sale in the ledger. The sale walks offer in, listed, hired, delivered, graded, settled, legs written, paid, recorded; its legs net to zero per token and chain. The public summary is api.taifoon.dev/coordination/sale-run.json.
4. Where the demand comes from
A cloud that routes to the gateway reaches the demand side too. These are the doors a buyer pays through today; a seller on the gateway is sold through every one of them.
| Door | Who pays there | How |
|---|---|---|
| x402 on the OpenAI path | agents and apps with a wallet | USDC on Base, Arbitrum One, Monad, Solana; USDG on Robinhood Chain; one call, one payment |
| A funded key | teams and services | one balance, topped up with one transfer |
| n8n | workflow builders | the Taifoon node and the OpenAI Chat Model node with this base URL |
| MCP and ACP | agents | the coord MCP server and the agent catalogue |
| Reseller tenants | resellers of our resale | child keys with a markup leg of their own |
| Marketplace listings | buyers who search there | the x402 listing on the CDP Bazaar |
5. Bring your own rigs: the pool
The provider program takes a GPU behind an OpenAI-compatible chat endpoint served by a batched engine, vLLM or SGLang. A rig never sets a price and never sends a payout address: the broker prices its class from the market, and its earnings accrue to a sub-account of its owner's vault.
| Step | What happens | State |
|---|---|---|
| Join | POST /api/grid/join {kind: gpu, meta.service: inference, endpoint, owner, models}, then POST /v1/resources/register | built |
| Battery and fingerprint | three fixed prompts with known answers; the answer must name the model claimed | built |
| Price | the broker anchors the rig’s reference class to the cheapest live venue; a rig may not name a price | built |
| Probes | an hourly probe pays a service credit while the rig answers; probes gate whether it may take jobs | built |
| Share | per paid call its model served, the provider leg (70 of the list) pro rata to verified output tokens | built: accrues; mainnet payout waits on the community payout cap |
| Attestation | a CC-mode NVIDIA GPU posts its NRAS entity attestation token to POST /api/grid/attest; a TDX host adds its quote | built: accepted at the join |
| TEE-only class | demand that requires a TEE is routed only to rigs whose attestation is current | next |
| Queue and credit dispatch | jobs queued on the pipe, dispatched by the credit a rig advertises and the model it has loaded | next |
The first rig is our own: one Blackwell card on box 62 running vLLM with fp8 weights and continuous batching, joined on 2026-10-22 as cgpu_e86c959663bc5231, serving nvidia/NVIDIA-Nemotron-3-Nano-4B-BF16 at api.taifoon.dev/gpu/v1/models. It is not in a TEE. A cloud whose policy requires a TEE lists only rigs with a current attestation, and the pool sells it nothing else.
6. Settlement
One vault pays every seller: a venue on the venue's own rail, a rig to its sub-account. Every send is an unsigned plan first, signed under the operator's key policy, capped per transaction and per day. The buyer's payment, our fee leg, the venue's fee and the seller's share are legs of one ledger posting, and the ledger refuses a sale whose legs do not sum. What a cloud sees: one invoice-free balance on its key, one sale id per answer, and a public ledger summary it can reconcile its own usage against.