TaifoonTAIFOON
SIGN IN
Route a cloud through the gateway

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.

SettingValue
base_urlhttps://coord.taifoon.dev/v1
ChatPOST /v1/chat/completions, or POST /v1/chat/completions/<model> for one model
CatalogueGET /v1/models: ids in the OpenAI list shape, each with taifoon.usd_per_1m and taifoon.available
KeyAuthorization: Bearer tfr_…; the same key as X-API-Key on every other route
Streamingstream: true answers text/event-stream chunks
Attestationnone 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
shell
curl -s https://coord.taifoon.dev/v1/models | jq '.data[] | select(.id == "deepseek-ai/DeepSeek-V3.2")'
answer, 2026-10-23
{
  "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

shell
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

shell
curl -s 'https://coord.taifoon.dev/v1/access/quote?usdc=10&chainId=8453'
answer, 2026-10-23 (shortened)
{
  "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

shell
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}'
answer, 2026-10-23 (shortened)
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

StatusCodeNext step
401invalid_api_keyregister, or pay the call with x402
402budgettop up the key
402agreement_requiredaccept the document the answer names
409waits_on_fundingthe venue behind the model is not funded; the catalogue says so in available
502provider_refusedthe 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.

answer shape
{ "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.

DoorWho pays thereHow
x402 on the OpenAI pathagents and apps with a walletUSDC on Base, Arbitrum One, Monad, Solana; USDG on Robinhood Chain; one call, one payment
A funded keyteams and servicesone balance, topped up with one transfer
n8nworkflow buildersthe Taifoon node and the OpenAI Chat Model node with this base URL
MCP and ACPagentsthe coord MCP server and the agent catalogue
Reseller tenantsresellers of our resalechild keys with a markup leg of their own
Marketplace listingsbuyers who search therethe 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.

StepWhat happensState
JoinPOST /api/grid/join {kind: gpu, meta.service: inference, endpoint, owner, models}, then POST /v1/resources/registerbuilt
Battery and fingerprintthree fixed prompts with known answers; the answer must name the model claimedbuilt
Pricethe broker anchors the rig’s reference class to the cheapest live venue; a rig may not name a pricebuilt
Probesan hourly probe pays a service credit while the rig answers; probes gate whether it may take jobsbuilt
Shareper paid call its model served, the provider leg (70 of the list) pro rata to verified output tokensbuilt: accrues; mainnet payout waits on the community payout cap
Attestationa CC-mode NVIDIA GPU posts its NRAS entity attestation token to POST /api/grid/attest; a TDX host adds its quotebuilt: accepted at the join
TEE-only classdemand that requires a TEE is routed only to rigs whose attestation is currentnext
Queue and credit dispatchjobs queued on the pipe, dispatched by the credit a rig advertises and the model it has loadednext

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.