{"ok":true,"schema":"taifoon.access.v1","as_of":"2026-10-05T07:31:08.156Z","what":"API access: one key rents RPC, proofs, decoded events and the coordination API. Every call is metered in GRID (1 GRID = 0.01 USDC of service). A free key keeps its free allowance every day; a key with a balance has ten times the rate and pays per call past the free allowance.","unit":{"grid_usdc":0.01,"shown":"GRID first, USDC beside","paid_in":"USDC on Base"},"get_key":{"method":"POST","url":"https://coord.taifoon.dev/v1/register","body":{},"mcp":"taifoon_register","note":"no payment, nothing signed; the key is shown once"},"send_key":"X-API-Key: tfr_… (or Authorization: Bearer tfr_…) on /v1 and on /gw","tiers":{"free":{"for":"a key from POST /v1/register","price":"no charge","rate":"90 budgeted calls a minute per family; 1,000 gateway requests a day","past_it":"HTTP 429 with Retry-After (the rate), HTTP 402 with the way to top up (the gateway allowance)"},"paid":{"for":"the same key once it holds a balance","price":"per call past the free allowance, at the prices below; a call that is refused or fails is not charged","rate":"900 budgeted calls a minute per family (10 times the free rate)","top_up":"GET https://coord.taifoon.dev/v1/access/quote?usdc=1","no":"no subscription, no minimum beyond 1 USDC"},"no_key":{"for":"a caller with no key","rate":"30 budgeted reads a minute and 600 a day; 100 gateway requests a day","past_it":"one gateway call for 0.001 USDC with x402, or a free key","x402":{"accepted":true,"where":["https://coord.taifoon.dev/gw/rpc/{chainId} and https://coord.taifoon.dev/gw/mcp/{resource} past the allowance","POST https://coord.taifoon.dev/v1/judge/compose (one grade)"],"how":"the 402 answer carries PAYMENT-REQUIRED (x402 v2, exact, eip155:8453, USDC); send the same request again with PAYMENT-SIGNATURE"}}},"products":[{"id":"rpc","name":"RPC","what":"Chain-agnostic JSON-RPC reads through one URL per chain. Each request goes to the chain’s measured rotation of endpoints and fails over to the next one; writes are refused.","calls":["POST https://coord.taifoon.dev/gw/rpc/{chainId}","GET https://coord.taifoon.dev/v1/rpc","GET https://coord.taifoon.dev/v1/rpc/{chainId}"],"price":{"per_call_grid":0.1,"per_call_usdc":"0.001000","per_1000_grid":100,"per_1000_usdc":"1.00","unit":"one JSON-RPC request (a batch of up to 20 calls is one request)","charged":"past the free 1,000 a day"},"free":"1,000 requests a UTC day per key (100 without a key), /gw/rpc and /gw/mcp together","limits":{"free":"120 requests a minute per key (60 without a key)","paid":"1200 requests a minute per key"},"timeout":"15 s per endpoint, up to 3 endpoints of the rotation","cost_basis":{"usd_per_1000":0.2586,"margin":3.867},"measured":{"calls":766,"availability":1,"mean_ms":229,"within_target":0.9961,"target_ms":2000,"window":"the last 24 h, every caller"},"sampled":{"measured_at":"2026-10-04","calls_sampled":48,"answered":48,"p50_ms":359,"p95_ms":1689}},{"id":"proofs","name":"Proofs","what":"Proof that a transaction, an event log, a block, a protocol transition or an order’s whole lifecycle is inside the superroot, with what was checked.","calls":["GET https://coord.taifoon.dev/v1/proof/tx/{chain}/{tx}","GET https://coord.taifoon.dev/v1/proof/log/{chain}/{tx}?log_index=","GET https://coord.taifoon.dev/v1/proof/order/{protocol}/{key}","GET https://coord.taifoon.dev/v1/proof/transition/{protocol}?seqs=","GET https://coord.taifoon.dev/v1/proof/blocks/{chain}?blocks=","GET https://coord.taifoon.dev/v1/proof/verifiable/{chain}","GET https://coord.taifoon.dev/v1/root/proof/{chain}/{block}","GET https://coord.taifoon.dev/v1/root","GET https://coord.taifoon.dev/v1/root/chains","GET https://coord.taifoon.dev/v1/protocols/proven"],"price":{"per_call_grid":0.2,"per_call_usdc":"0.002000","per_1000_grid":200,"per_1000_usdc":"2.00","unit":"one proof","charged":"past the free rate"},"free":"every proof inside the free rate; the root, its chains and the list of proven protocols are never charged","limits":{"free":"90 proofs a minute per key (30 a minute without a key)","paid":"900 a minute per key"},"timeout":"55 s for a transaction proof, 25 s for the others","cost_basis":{"usd_per_1000":0.5779,"margin":3.4608},"measured":{"calls":8415,"availability":0.9936,"mean_ms":385,"within_target":0.9993,"target_ms":10000,"window":"the last 24 h, every caller"},"sampled":{"measured_at":"2026-10-04","calls_sampled":68,"answered":67,"p50_ms":242,"p95_ms":10332}},{"id":"events","name":"Decoded events","what":"Blocks, transactions, receipts and logs like any explorer API, from the layer’s own indexes with a proof on every answer; protocol transitions from the protocol trees; transactions with every known event decoded, and the protocol sets the layer decodes.","calls":["GET https://coord.taifoon.dev/v1/chain/{chainId}/block/{id}","GET https://coord.taifoon.dev/v1/chain/{chainId}/tx/{hash}","GET https://coord.taifoon.dev/v1/chain/{chainId}/tx/{hash}/receipt","GET https://coord.taifoon.dev/v1/chain/{chainId}/logs?address=&topic0=&from=&to=","GET https://coord.taifoon.dev/v1/transitions/{protocol}?key=","GET https://coord.taifoon.dev/v1/chain/tx?chain=&hashes=","GET https://coord.taifoon.dev/v1/scan","GET https://coord.taifoon.dev/v1/wallets/state","GET https://coord.taifoon.dev/v1/explorer/jobs/{id}/decode","GET https://coord.taifoon.dev/v1/protocols","GET https://coord.taifoon.dev/v1/protocols/decoders","GET https://coord.taifoon.dev/v1/protocols/agents"],"price":{"per_call_grid":0.05,"per_call_usdc":"0.000500","per_1000_grid":50,"per_1000_usdc":"0.50","unit":"one decoded read (up to 25 transactions in one call)","charged":"past the free rate"},"free":"every decoded read inside the free rate; the protocol lists are never charged","limits":{"free":"90 decoded reads a minute per key (30 a minute without a key)","paid":"900 a minute per key"},"timeout":"25 s","cost_basis":{"usd_per_1000":0.2571,"margin":1.9448},"measured":{"calls":3062,"availability":0.9941,"mean_ms":883,"within_target":0.9304,"target_ms":3000,"window":"the last 24 h, every caller"},"sampled":{"measured_at":"2026-10-04","calls_sampled":32,"answered":32,"p50_ms":302,"p95_ms":2483}},{"id":"coordination-read","name":"Coordination API, reads","what":"Every other GET of the coordination API: the catalog, classes, jobs, pools, the explorer, the landscape, the economy.","calls":["GET https://coord.taifoon.dev/v1/chain/{chainId}/address/{addr}/events","GET https://coord.taifoon.dev/v1/chain/{chainId}/address/{addr}/txs","GET https://coord.taifoon.dev/v1/chain/{chainId}/scans/{id}","GET https://coord.taifoon.dev/v1/openapi.json lists every operation"],"price":{"per_call_grid":0.1,"per_call_usdc":"0.001000","per_1000_grid":100,"per_1000_usdc":"1.00","unit":"one of the reads that scan a chain or fold a whole store (an account scan or a scan job step, landscape, economy, explorer/jobs, pools, fees, metrics, assurance/*)","charged":"past the free rate"},"free":"every other read is free and carries no budget; the scanning reads are free inside the free rate","limits":{"free":"90 scanning reads a minute per key (30 a minute without a key)","paid":"900 a minute per key"},"timeout":"25 s","cost_basis":{"usd_per_1000":0.4274,"margin":2.3397},"measured":{"calls":69677,"availability":0.9964,"mean_ms":588,"within_target":0.9725,"target_ms":3000,"window":"the last 24 h, every caller"},"sampled":{"measured_at":"2026-10-04","calls_sampled":32,"answered":32,"p50_ms":256,"p95_ms":3180}},{"id":"coordination-write","name":"Coordination API, writes","what":"Every POST of the coordination API (demands, handshakes, quotes, plans, registrations) and the MCP gateway.","calls":["POST https://coord.taifoon.dev/v1/demands","POST https://coord.taifoon.dev/v1/pools/quote","POST https://coord.taifoon.dev/gw/mcp/{resource}","GET https://coord.taifoon.dev/v1/openapi.json lists every operation"],"price":{"per_call_grid":0.05,"per_call_usdc":"0.000500","per_1000_grid":50,"per_1000_usdc":"0.50","unit":"one POST","charged":"past the free rate; a call that is refused or fails is not charged"},"free":"every write inside the free rate (each operation keeps its own budget; a free key writes demands, the gateways and agent registration)","limits":{"free":"90 writes a minute per key (30 a minute without a key)","paid":"900 a minute per key"},"timeout":"25 s","cost_basis":{"usd_per_1000":0.2471,"margin":2.0235},"measured":{"calls":9595,"availability":0.9999,"mean_ms":564,"within_target":0.9915,"target_ms":5000,"window":"the last 24 h, every caller"},"sampled":{"measured_at":"2026-10-04","calls_sampled":16,"answered":16,"p50_ms":590,"p95_ms":1407}},{"id":"grades","name":"Grades","what":"A Jev grade of delivered work: facts, answers, a verdict and its record.","calls":["POST https://coord.taifoon.dev/v1/judge/compose","GET https://coord.taifoon.dev/v1/judge/credits"],"price":{"per_call_grid":5,"per_call_usdc":"0.050000","per_1000_grid":5000,"per_1000_usdc":"50.00","unit":"one grade","charged":"after the 3 free grades, from the grades the key bought (GET https://coord.taifoon.dev/v1/judge/credits/key) or per call with x402"},"free":"3 grades per customer","limits":{"free":"5 grades a minute","paid":"5 grades a minute"},"timeout":"55 s","cost_basis":null,"measured":{"calls":3485,"availability":0.9986,"mean_ms":532,"within_target":1,"target_ms":30000,"window":"the last 24 h, every caller"}}],"rpc":{"url":"https://coord.taifoon.dev/gw/rpc/{chainId}","protocol":"JSON-RPC 2.0 over HTTPS POST, the same for every chain; a stock client points here instead of a public endpoint","methods":["eth_blockNumber","eth_call","eth_getLogs","eth_getBlockByNumber","eth_getBlockByHash","eth_getTransactionByHash","eth_getTransactionReceipt","eth_getBlockReceipts","eth_getTransactionByBlockNumberAndIndex","eth_getBlockTransactionCountByNumber","eth_getBlockTransactionCountByHash","eth_getBalance","eth_getCode","eth_getTransactionCount","eth_getStorageAt","eth_estimateGas","eth_gasPrice","eth_maxPriorityFeePerGas","eth_feeHistory","eth_blobBaseFee","eth_syncing","eth_chainId","net_version","net_listening","web3_clientVersion","taifoon_getProof"],"proofs":"taifoon_getProof [{ tx } | { block } | { tx, log_index }]: the proof of that block from the layer’s indexes","writes":"refused (eth_send*, eth_sign*, personal_*, wallet_*)","limits":{"batch":20,"request_bytes":64000,"get_logs_span_blocks":10000},"failover":"each request goes to the first healthy endpoint of the chain’s rotation; a 429, a 5xx or a timeout moves it to the next one, up to three","chains":[{"chain_id":8453,"name":"Base","healthy":true,"endpoints":8,"logs_endpoints":5,"url":"https://coord.taifoon.dev/gw/rpc/8453","rotation":"https://coord.taifoon.dev/v1/rpc/8453"},{"chain_id":5042,"name":"Arc","healthy":true,"endpoints":2,"logs_endpoints":1,"url":"https://coord.taifoon.dev/gw/rpc/5042","rotation":"https://coord.taifoon.dev/v1/rpc/5042"},{"chain_id":1,"name":"Ethereum","healthy":true,"endpoints":5,"logs_endpoints":2,"url":"https://coord.taifoon.dev/gw/rpc/1","rotation":"https://coord.taifoon.dev/v1/rpc/1"},{"chain_id":56,"name":"BSC","healthy":true,"endpoints":2,"logs_endpoints":2,"url":"https://coord.taifoon.dev/gw/rpc/56","rotation":"https://coord.taifoon.dev/v1/rpc/56"},{"chain_id":43114,"name":"Avalanche C-Chain","healthy":true,"endpoints":3,"logs_endpoints":2,"url":"https://coord.taifoon.dev/gw/rpc/43114","rotation":"https://coord.taifoon.dev/v1/rpc/43114"},{"chain_id":42161,"name":"Arbitrum One","healthy":true,"endpoints":4,"logs_endpoints":3,"url":"https://coord.taifoon.dev/gw/rpc/42161","rotation":"https://coord.taifoon.dev/v1/rpc/42161"},{"chain_id":137,"name":"Polygon","healthy":true,"endpoints":3,"logs_endpoints":2,"url":"https://coord.taifoon.dev/gw/rpc/137","rotation":"https://coord.taifoon.dev/v1/rpc/137"},{"chain_id":10,"name":"Optimism","healthy":true,"endpoints":4,"logs_endpoints":4,"url":"https://coord.taifoon.dev/gw/rpc/10","rotation":"https://coord.taifoon.dev/v1/rpc/10"},{"chain_id":4663,"name":"Robinhood Chain","healthy":true,"endpoints":1,"logs_endpoints":1,"url":"https://coord.taifoon.dev/gw/rpc/4663","rotation":"https://coord.taifoon.dev/v1/rpc/4663"},{"chain_id":42220,"name":"Celo","healthy":true,"endpoints":4,"logs_endpoints":3,"url":"https://coord.taifoon.dev/gw/rpc/42220","rotation":"https://coord.taifoon.dev/v1/rpc/42220"},{"chain_id":36927,"name":"Taifoon devnet","healthy":true,"endpoints":1,"logs_endpoints":1,"url":"https://coord.taifoon.dev/gw/rpc/36927","rotation":"https://coord.taifoon.dev/v1/rpc/36927"},{"chain_id":3692781,"name":"Taifoon mainnet","healthy":true,"endpoints":1,"logs_endpoints":1,"url":"https://coord.taifoon.dev/gw/rpc/3692781","rotation":"https://coord.taifoon.dev/v1/rpc/3692781"}],"health":"GET https://coord.taifoon.dev/v1/rpc (every chain) and GET https://coord.taifoon.dev/v1/rpc/{chainId} (every endpoint, as measured every 5 and 10 minutes)"},"key":{"scopes":["rpc","proofs","events","coordination-read","coordination-write","grades"],"scopes_default":"all","budgets":"a cap per UTC day and per UTC month, in GRID, counted at the list price (free calls included); reaching it is HTTP 402 code budget","limits_to":"optional allowed origins and addresses; a call from elsewhere is HTTP 403 code origin","more_keys":"POST https://coord.taifoon.dev/v1/tenant/keys { action: \"create\", label, scopes?, cap_day_grid?, cap_month_grid?, origins?, ips? } (up to 10 active keys, each with a label)","change":"POST https://coord.taifoon.dev/v1/tenant/keys { action: \"update\", prefix, … }","rotate":"POST https://coord.taifoon.dev/v1/tenant/keys { action: \"roll\", env, prefix? }","revoke":"POST https://coord.taifoon.dev/v1/tenant/keys { action: \"revoke\", prefix }","standing":"GET https://coord.taifoon.dev/v1/access/key","usage":"GET https://coord.taifoon.dev/v1/access/usage?window=1d|7d|30d|month"},"checkout":{"quote":"GET https://coord.taifoon.dev/v1/access/quote?usdc=1","top_up":"POST https://coord.taifoon.dev/v1/access/topup { tx, signature }","pays":"a USDC transfer on Base to the payee, from your own wallet; the wallet’s signature names the key that is credited","payee":"0x3574999dd4c96eB73Bd6e11D4177010C83E14f5b","amounts":"a whole number of USDC from 1 to 20 per transaction","credits":"100 GRID per 1 USDC","idempotent":"a transaction credits once; sending the same top-up again answers 200 already: true"},"errors":{"envelope":"{ ok: false, code, error, next_step?, … } on /v1; on the gateways a JSON-RPC error whose data carries the same code and next_step","codes":{"scope":{"status":403,"means":"the key has no permission for this family","fix":"POST /v1/tenant/keys { action: \"update\", prefix, scopes }"},"origin":{"status":403,"means":"the key is limited to origins or addresses, and the call came from elsewhere","fix":"POST /v1/tenant/keys { action: \"update\", prefix, origins | ips }"},"budget":{"status":402,"means":"the key’s own daily or monthly cap is reached (reason cap_day | cap_month), or its balance is spent past the free rate (reason balance)","fix":"raise the cap, or top up: GET /v1/access/quote"},"payment_required":{"status":402,"means":"a gateway call past the free daily allowance with no balance (a key), or with no payment (no key: x402)","fix":"top up the key, or pay the call with x402"},"rate_limited":{"status":429,"means":"over the rate of the tier; Retry-After says when","fix":"wait, or top up the key for the paid rate"},"unauthorized":{"status":401,"means":"no key, or a key that is not valid or was revoked","fix":"POST /v1/register"},"unavailable":{"status":503,"means":"a store or a producer did not answer; nothing was charged","fix":"retry after Retry-After"},"timeout":{"status":504,"means":"what is behind the call did not answer inside the family’s timeout; nothing was charged","fix":"retry"}}},"pricing_basis":{"rule":"each price is the larger of its list price and its measured cost × 1.5","measured_at":"2026-10-04","method":"sampled from outside (n calls per kind, keyless), with the access log and the platform bill over 24 h; the endpoints behind the RPC rotation are public ones; each kind costs its share of the fixed monthly cost by answer time plus its variable cost at p95"},"documents":{"openapi":"https://coord.taifoon.dev/v1/openapi.json","mcp":"https://coord.taifoon.dev/mcp","skills":"https://www.taifoon.io/skills","pricing":"https://www.taifoon.io/pricing","seat":"https://www.taifoon.io/cockpit#tenant"}}