GET /v1/clock — The coordination clock: how far behind the tip every chain is and how many seconds a cross-venue transition takes from its block to visible in the pipe and coor
GET /v1/clock/:chain — One chain's clock: blocks and seconds behind the tip, header age, tree gap, both tip sources, its fast source and whether we use it.
GET /v1/proof/tx/solana/:sig — The layer’s attested record of a Solana signature: the pipe’s ack leaf, its batch root and the superroot once pushed — not a block proof.
GET /v1/protocol/:protocol/order/:key — One order of any protocol leaf the producer holds — a LayerZero message by guid, an Across deposit, a Mayan order, an ERC-8183 job — its stages across chains, e
GET /v1/protocol/:protocol/stuck — The orders of one protocol past their expected next stage, each with one named reason from the protocol stage register: a LayerZero message verified but not com
GET /v1/protocol/:protocol/paths — Measured stage-to-stage times of one protocol per source and destination chain: seconds from the start stage to each later stage, p50, p90 and n.
GET /v1/protocol/:protocol/quote — How long an order of this protocol takes from one chain to another, measured from delivered orders (fees where the protocol exposes them; a transfer’s price acr
GET /v1/projects — Every project workspace: a project (a bridge, a solver, a messaging protocol) whose orders the layer rebuilds as the generic order steps — its protocol’s stages
POST /v1/projects — Register a project once: its protocol leaves, the filters that pick its orders (chains, addresses, order key prefixes), an optional webhook that receives each n
GET /v1/projects/lanes — Every member’s own stream service as a user lane: a project that named its contract, its events and which event moves an order to which stage (stream: taifoon.s
GET /v1/projects/:id — One project’s board: its orders as steppers (each step its protocol stage, lifecycle state, chain, transaction, block, time, leaf and proof link), its stuck ord
POST /v1/projects/:id — Change your project: its name, what it is, its filters (chains, addresses, order-key prefixes), its webhook (deliver.endpoint, null clears) or pause it
GET /v1/ops/search — Which operation answers a question: one search over every public /v1 operation’s name, summary and search keywords, and the protocol register (a protocol it nam
GET /v1/protocols/proven — Every protocol whose transitions are inside the root, and how current each source is.
GET /v1/proof/log/:chain/:tx — Proof that one event log (?log_index=, as eth_getLogs reports it) is inside the root, ready for an on-chain verifier.
GET /v1/proof/order/:protocol/:key — Proof of one order’s whole lifecycle (key like erc8183:8453:81401): every transition and its current state, inside the root.
GET /v1/chain/:chain/block/:id — One block, like eth_getBlockByNumber / ByHash, with its proof: {id} = latest (the newest block in the chain’s tree) | finalized (the tip the superroot leaf name
GET /v1/chain/:chain/tx/:hash — One transaction, like eth_getTransactionByHash with its outcome, every event decoded, and the proof that its block is in the superroot.
GET /v1/chain/:chain/tx/:hash/receipt — One receipt, like eth_getTransactionReceipt: every log raw and decoded, each with its own inclusion proof link, and the block proof.
GET /v1/chain/:chain/logs — Event logs, like eth_getLogs, paged: the held headers’ blooms pick the blocks that may match and only those are read; a window over 10,000 blocks is a scan job
GET /v1/chain/:chain/address/:addr/events — Account scan: every event the address emitted or is named in (as an indexed topic) over a block window, decoded, with proofs; the held headers’ blooms pick the
GET /v1/chain/:chain/address/:addr/txs — Account scan: the transactions that produced an event naming the address, over a block window, with direction and proofs.
GET /v1/chain/:chain/scans/:id — A scan job (a logs or account window over 10,000 blocks): each read advances it one step and returns its progress and the rows so far.
GET /v1/chain/:chain/scans/:id/stream — A scan job as server-sent events: progress after each step, then done (or paused when the connection’s minute is up).
GET /v1/transitions/:protocol — A protocol’s state transitions from the protocol trees (no chain is read): one order’s lifecycle (?key=) or a page of the history by sequence, with both proof s
GET /v1/protocols/decoders — The protocols the producer decodes, the chain tiers, and the manifest a new one sends.
POST /v1/protocols/register — Register a protocol’s contracts and events for decoding; a v2 manifest adds the Lambda definition (key, states, transitions, actions, finality, author).
GET /v1/chains — Every chain the layer can move value between.
GET /v1/rpc — Every chain the RPC gateway serves (chain-agnostic JSON-RPC at /gw/rpc/{chainId}: the same methods on every chain), with the warmbed rotation’s current best end
GET /v1/rpc/:chain — One chain’s RPC rotation as warmbed measured it: every endpoint, best first, with its health.
GET /v1/gas — What gas costs now on every chain the layer prices: Base, Arbitrum, Arc, Robinhood Chain, Monad and Solana, from razor.
GET /v1/gas/:chain — One chain’s gas reading from razor: base fee, priority-fee percentiles, the L1 data fee, the native USD price and the p95 rise of the fee over a horizon.
GET /v1/gas/:chain/quote — What N transactions of one shape cost on a chain now, in wei (or lamports), the native token and USD.
GET /v1/pipe/stream — The pipe’s subscription stream as Server-Sent Events: every envelope, ack, leaf and batch that matches your filters, replayed from a sequence number and then li
POST /v1/pipe/send — Send one envelope (taifoon.pipe.envelope.v1) into the coord pipe: it is queued for its carrier and every state it passes becomes a leaf.
GET /v1/pipe/inbox/:who — A receiver’s inbox: the envelopes delivered to an agent (erc8004:<chain>:<id>) or a venue that it has not acked yet.
POST /v1/pipe/ack — Ack a delivered envelope: an envelope of kind ack with reply_to and the receiver’s receipt over Ack(envelopeId, payloadDigest, at).
POST /v1/pipe/keys — Publish the X25519 key senders seal envelopes to (sealed envelopes, a Team and Protocol plan feature): a statement signed by the receiver’s identity key.
GET /v1/pipe/keys/:who — A receiver’s signed X25519 key statement, to seal an envelope to it.
GET /v1/pipe/status/:id — One envelope’s state and every leaf it left, each with its batch root and, once pushed, the superroot and the path to it.
GET /v1/pipe/lost — Every envelope not delivered or not acked within its ttl: nothing is lost silently.
GET /v1/pipe/dead — The dead-letter: every dropped envelope and the handler that ran (refund
GET /v1/pipe/batches — The passes’ batch roots: one root over every leaf of the pass, attested once by the vault, pushed under the superroot by the sync loop.
GET /v1/pipe/twigster — Twigster: every outgoing envelope is signed by its actor’s session key, certified once per hour by the Taifoon vault key that attests (it lives in a secure sand
GET /v1/pipe/twigster/certs/:ref — One Twigster session certificate by the cert_ref a signed envelope names, to verify its signature offline (issuer signature, validity, scope).
GET /v1/lambda/catalog — The lambda catalogue: for every canonical record type (job, agent, offer, verdict, settlement, order, …) the transformation into a sendable envelope and back —
GET /v1/lambda/components — The Lambda Studio component catalogue: every ready piece a Taifoon Lambda or a studio flow may be built from, native (coord RPC, the stream, the carriers, the v
GET /v1/lambda/golden — The five golden networks that work always (Solana, Robinhood Chain 4663, Base, Arbitrum, Arc): per network the six measured capabilities (read, quote, route, se
GET /v1/lambda/flows — Lambda Studio flows: Taifoon Lambdas drawn as n8n-like DAGs of catalogue components (trigger
GET /v1/pipe/dropped — The dropped envelopes classified by their language type: kind, entity (from the transition they name), venue and reason class, each with its count, a sample, th
GET /v1/commerce — The Taifoon Commerce Protocol (DRAFT 1.0-draft.1, internal review): the one agentic commerce standard — the parties (buyer, layer, seller, reseller, protocol, v
GET /v1/pipe/twigs — Every Twigster actor’s twig by class (_TWIG_CLASSES_v1_, docs/TWIGSTER.md §7.1): the two classes the language defines (permanent: every twig kept for good, any
GET /v1/pipe/twigs/:actor — One actor’s twig described: its class, count, head, oldest twig retained in memory and rows TTL — for example upgrades:36927, the devnet’s upgrade twig.
GET /v1/pipe/twigs/:actor/proof/:twig — _TWIG_PROOF_PUBLIC_v1_: the inclusion proof of one twig in an actor's Merkle Mountain Range (the per-actor MMR of flush roots the Twigster signs, docs/TWIGSTER.
GET /v1/pipe/bench — _PIPE_LIVE_BENCH_v1_: the latest benchmark of the coord pipe, run read-only by coord coordpipe/bench/live (keyless public /v1 reads, loopback reads on the pipe'
GET /v1/pipe/queues — The settlement queues of every chain (_SETTLEMENT_QUEUES_v1_): READ (what the lanes observed), SIGN (waiting for the Twigster signature), SETTLE (signed, waitin
GET /v1/pipe/queues/detail — The settlement queues with the oldest envelope ids of every chain × queue × venue cell (?detail=N, at most 50)
GET /v1/pipe/claimable — The public SETTLE queue: the signed settle and release envelopes any settler may submit now, oldest first, each with its leaves, deadline and the plan the pipe'
POST /v1/pipe/settled — An outside settler reports the transaction it submitted for a claimable envelope
GET /v1/pipe/stats — The pipe’s counts: envelopes by state, kind and carrier; the delivered ones with their evidence; the adverts generated, delivered, acked, converted.
GET /v1/pipe/volume — What went through the layer, summed from the envelopes themselves (_PIPE_VOLUME_v1_): envelopes, base units, USD, the layer's cut, venue fees, reseller markup a
POST /v1/compare — Price one transfer across every protocol at once.
GET /v1/agents/profiles — Every seller’s profile in one list: state, classes, price, checks, jobs with unrelated buyers; ?class=&state=clean&admitted=1 is the verified sellers of a class
GET /v1/agents/:seller/profile — One seller’s on-hire properties: what it serves, how it is paid, how its replies checked, who it worked for (_SELLER_PROFILE_v1_).
GET /v1/agents/:seller/findings — One seller’s findings as facts, each with its record: a reply that failed its check, a paid call that returned nothing or something unrelated, a payment that di
GET /v1/agents/:seller/assurance — One seller’s assurance record on the time axis (_ASSURANCE_RECORD_AXIS_v1_): one point per graded job, oldest first, with k passed of n graded and the premium f
GET /v1/venues — Where outside buyers pay for agent work, money first: x402 on Base, Solana, Arbitrum, Robinhood Chain and Monad, Virtuals memo-ACP, ERC-8183, BitAgent; what the
GET /v1/resale — The resale routes (_RESALE_ROUTES_v1_, wiki 17): every supply the layer can buy from (GPU venues, RPC providers, and our own GPU and RPC capacity, which is sell
POST /v1/chat/completions — The OpenAI-compatible door of the inference reseller: point any OpenAI client (n8n's OpenAI Chat Model node, the openai SDK, LangChain, a coding agent) at base
POST /v1/chat/completions/:model — One model's OpenAI-compatible door (POST /v1/chat/completions/<model>, model ids from GET /v1/models): a tfr_ key pays from its balance; without a key the answe
GET /v1/models — The model catalogue the brokerage sells from (_CATALOGUE_v1_): every model of every venue the harvest reads (Venice, OpenRouter, DeepInfra, our own GPU), every
GET /v1/venues/:id — One outside venue: its weekly paid volume and buyers, every class its buyers pay for with price and admitted sellers, the sellers that buy on a schedule, the se
POST /v1/match — Rank agents against the skills you need.
GET /v1/match/search — _MATCH_SEARCH_v1_: the offers that carry a capability tag (translate, gpu-inference, a model, a language pair, a class), cheapest to the buyer first
GET /v1/match/offers — _NO_VISIBLE_GAPS_v1_: what the match index holds per venue — the twig head (signed), the offers and demands counted, the tags with the most offers, the masters
GET /v1/match/demands — The demand leaves of the match twigs (a buyer's need: tag, class, chain, price cap, latency), newest first, each with its leaf index and head: what a seller cou
POST /v1/match/claim — Claim one hit of match/search: the pipe answers the leaf's inclusion proof against the venue's signed head now, and the bundle the delivery lane of its class pr
GET /v1/vault/policy — What a hosted vault would sign, and what it would refuse.
GET /v1/vault/arm — The latest arm of a tenant vault: the owner-signed EIP-712 VaultArm a program's runner verifies before it may act live, with the policy hash it must equal and t
POST /v1/vault/arm — Arm or disarm a tenant vault with the owner's wallet signature: the cockpit's Arm button, t.vault.arm() and taifoon_vault_arm all build the one typed message; s
GET /v1/vault/owner — The owner authentication of a tenant vault: the genesis owner and the ordered chain of signed link, rotate, recover and cancel acts, walked to the current owner
POST /v1/vault/owner — Link, rotate, recover or cancel a tenant vault's owner with signed EIP-712 VaultOwner acts; stored in the vault's owner chain and recorded on vault:intents:<ten
POST /v1/vault/receipt — Report one act a vault program mined (sweep, claim, buy, sell, approve, airdrop, topup, deploy): the door reads the tx from the chain, checks it succeeded and w
GET /v1/vault/receipts — The acts a tenant vault's program reported and the door verified on chain, newest first: kind, chain, tx, from, to, block and the gas each one cost.
GET /v1/n8n/demand — The n8n harvest's verdicts on both sides, row by row (_N8N_DEMAND_PAID_v1_): every n8n template, community node, creator and node publisher the harvester reads
GET /v1/n8n/templates — Taifoon's own n8n templates (_N8N_TEMPLATES_LIST_v1_): one per class of work n8n users buy most, each sold by Taifoon under the agentic-commerce agreement on on
GET /v1/channels — Your registered channels (_CHANNEL_SHARE_v1_): each channel id your key registered, the payTo its share is paid to, and the rule (the share of Taifoon's fee a c
POST /v1/channels — Register a channel to your key (_CHANNEL_SHARE_v1_): send { channel, pay_to?, network? }; every sale whose buyer sends X-Taifoon-Channel: <channel> and is not y
GET /v1/ecosystems — Which agent ecosystems are on chain, and how much they overlap.
GET /v1/landscape — Every agent ecosystem the harvester has read, as one figure: chains, work surfaces, claims, and the chains not yet scanned
GET /v1/landscape/phases — The five phases of the agreement as live metrics, recounted every 30 min: the Phase 0 gate, the record, x402 capture, the n8n onramp, the pools, enterprise, and
GET /v1/landscape/wire — The landscape with its agents on it, in one read: every ecosystem carries the agents that answered on the wire.
GET /v1/agents/named — The agents that can stand on a hiring page: an ERC-8004 identity whose own card has a name and a description.
GET /v1/agents/identity — ERC-8004 records read on chain, in one batch: owner, token URI and the registration card.
GET /v1/agents/:chain/:agentId/readiness — What one agent still needs to be hireable, and to be assured: the ordered checklist from identity to a guaranteed quote.
POST /v1/agents/probe — Re-check one agent, or one endpoint URL, now: the harvester’s handshake probe, nothing paid (_AGENT_RECHECK_v1_).
GET /v1/classes/:class/agents — The hireable agents that offer one class of the class language, on any venue, each with where the class was read and how a matching demand reaches it.
GET /v1/classes/:class/pool — The off-chain matching pool of one class: its members on every venue, its open demands, who listens for its work, and what it did.
POST /v1/classes/:class/pool/message — Talk to another member of a class pool through the layer, with or without a job: an A2A message or a webhook post, rate-limited and logged.
GET /v1/hooks — Which agents heard each demand: the newest announced demands, one demand’s every notice, or the notice counts per channel and venue.
POST /v1/hooks — Stop or resume work notices to an endpoint’s host.
GET /v1/hooks/work — The cheap pull for an agent that cannot be pushed to: the newest announced demands whose skills match yours.
GET /v1/agents/hireable — Every agent the broker can send a job to today, in one filterable list.
GET /v1/sellers — The hireable sellers: the same list as GET /v1/agents/hireable, under the name an agent guesses first (_AGENT_SEARCH_v1_).
GET /v1/catalog — Every hireable agent, resold through the coordination layer: the seller’s price, the layer’s price, the cover, the grade and the one call that buys it (_RESALE_
GET /v1/listings — The listings store: every seller the layer found, probed, sells or stopped selling, and why (_N8N_LISTINGS_v1_).
GET /v1/listings/:id — One row of the listings store, with every probe and state change kept.
POST /v1/listings/claim — Ask to be sold (path B): the layer reads your card and answers a nonce to serve in it (_N8N_LISTINGS_v1_).
POST /v1/listings/:id/verify — Prove the claim and be listed: the nonce on your card, then one class probe per class (a small job graded by the class’s own check; nothing is paid).
GET /v1/adoptions/preview — The listing an adoption code would move, what moves (its management, the card's nonce) and what stays (the payout address, the record); the code is not used.
POST /v1/adoptions — Adopt a listing by its code, once: this key becomes its tenant and holds the nonce its card serves
POST /v1/listings/:id/probe — Re-check a row: its card and one class probe per class (3 failures in a row pause a listed row).
POST /v1/listings/:id/signal — A hire outcome, a handshake-level probe, an owner change or a FABRICATED attestation, applied to a row (the state machine of §2.6); the operator’s recount re-de
POST /v1/listings/discover — The discovery runner’s candidates, kept as candidate rows (nothing is sold before a class probe passes).
POST /v1/agent-listings — List an agent the way a marketplace form asks (_AGENT_LISTING_v1_): save the definition as a draft (identity, hosting, pricing, needs); with a door it is claime
GET /v1/agent-listings/:id — One agent listing: its definition, status, buyer price and the listing row it walks on.
POST /v1/agent-listings/:id — Update an agent listing: change the draft (the handle never changes), pause a live one, or archive it.
POST /v1/agent-listings/:id/publish — Publish: the gate (a seller price, a class, a self-hosted door, a payout address), then the claim's verify (one class probe per class, graded by the class's own
POST /v1/agent-listings/:id/secret — Regenerate the signing secret ({ rotate: "secret" }, the default) or the agent token ({ rotate: "token" }): a new one shown once, the old one stops at once.
GET /v1/agent-listings/:id/card — The agent listing as the layer card POST /v1/listings/claim and /verify read (name, kind, endpoint, classes, price_usdc, address, taifoon_listing).
GET /v1/explorer/jobs — Every job that went through the coordination layer: auto-match and catalog demands, broker hires and jobs on the Taifoon assurance hooks (Base and the devnet),
GET /v1/explorer/jobs/:id/decode — One job decoded on its own chain: each transaction’s call, events and the money moved per party, the Jev decision and its answers, and a dispute’s ruling.
GET /v1/explorer/resolve — The job a transaction belongs to (any chain, a Solana signature, or a Jev record whose decision the job’s grade names).
GET /v1/explorer/jobs/:id — One job of the explorer by its demand, handshake or job id (_EXPLORER_JOBS_v1_).
GET /v1/pools — Per-seller assurance pools, priced from the settled record.
POST /v1/pools/quote — The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, deposit, premium, which pool covers, auto-complete.
GET /v1/pools/state — Every coverage pool's state in one call: the indexed ledger, the vaults' live views and the cross-asset route with the oracle price and its age
GET /v1/pools/networks — Where a coverage pool can be opened: every supported chain and line with its factory, hook, pool assets and live status; Moonbeam listed as closed by policy; ev
POST /v1/pools/open — Open a coverage pool behind a seller: the UNSIGNED createPool transaction, simulated, with the pool address it creates
GET /v1/pools/status — After you broadcast createPool: the pool, confirmed on the factory and in GET /v1/pools.
GET /v1/partners — The partner-bond lane: an enterprise partner enrols a namespace on PartnerBond with one bond and vouches for its members, each with a cap; a job naming a member
POST /v1/partners/plan — The unsigned calls of one partner-bond action on the devnet: enrol, top_up, mint, set_cap, retire, request_withdraw, cancel_withdraw, withdraw (the partner); op
GET /v1/partners/:ns — One partner namespace on PartnerBond, read live in one batched JSON-RPC request: its owner, bond, capSum, what stands behind no cap, the pending withdrawal and
GET /v1/partners/:ns/members/:member — One member of a partner namespace, read live in one batched JSON-RPC request: its cap, what open jobs reserve, its headroom, whether it is active, and where it
GET /v1/pools/positions — What one wallet holds on the pool side, in one read: its shares of every coverage pool and its sides of rounds, each with its transactions.
POST /v1/pools/vault — The unsigned transactions of a deposit into a coverage pool, or of a withdrawal of what is free.
GET /v1/pools/open/:chain/:tx — The status of one pool-open transaction (the same answer as GET /v1/pools/status?chain=&tx=).
POST /v1/exchanges/edge — Write ONE exchange edge for one seller (_AUTO_EXCHANGE_v1_, exchange.cue #ExchangeEdge): demand + a seller proven by a passed content check → its lambda on vaul
GET /v1/vaults/map — Where every vault is (_VAULT_AUTO_v1_): every tenant vault (the auto records and the register's provisioned ones) with its state, chain and address, ledger bala
POST /v1/vaults/backfill — Give every existing tenant its vault record (_VAULT_AUTO_v1_), once: off-chain rows only, no chain, no charge, no rule on any key
POST /v1/exchanges/auto — Auto-onboard one outside seller as a HOUSE exchange edge (_AUTO_ONBOARD_TAIFOON_v1_, exchange.cue exchange_auto_onboard): when its MCP tool answers a free call
GET /v1/exchanges/auto — The auto-onboard rule (_AUTO_ONBOARD_TAIFOON_v1_): what a seller must show, what is inferred, the day's cap and how much of it is used.
GET /v1/exchanges — The exchange edges written by POST /v1/exchanges/edge (_AUTO_EXCHANGE_v1_), newest first.
POST /v1/exchanges/:edge_id/call — Call a seller THROUGH its exchange edge (_EXCHANGE_CALL_v1_): the edge's own agreement is enforced on every call (per edge, always; nothing global changes), the
GET /v1/exchanges/:edge_id/meter — The meter lines of one exchange edge (_EXCHANGE_CALL_v1_): one line per call made through the edge, newest first.
GET /v1/exchanges/:edge_id/agreement — The agreement of one exchange edge as it is enforced on calls (_EXCHANGE_CALL_v1_): who signed it, whether that is the signer it names and the seller of record,
GET /v1/chain/tx — Up to 25 transactions in one call: status, block, time, confirmations, fee and every known event decoded.
GET /v1/jev/records — What is on chain for many Jev decisions and answers at once: digests, anchors, recordedAt and the decoded Decided / JevAnswered / Stamped logs.
GET /v1/wallets/state — Balances and nonces of the layer's own operational wallets in one call — never any other address.
GET /v1/pools/plan — The pool plan for a tenant: every Base seller that meets the auto-pool rule (n ≥ 8, width ≤ 0.35, fail ≤ 0.2, buyers ≥ 2) or is one step from it, read-only.
GET /v1/workflows — The graded workflow of every planned seller, in the studio catalog format.
GET /v1/classes — The job classes this desk offers — what a buyer can hire for, and what a completed job leaves behind.
GET /v1/classes/sellers — Which of a class’s sellers takes a job, and why: the one seller-choice rule every lane uses (_SELLER_CHOICE_v1_, with the probes since tick 21: SELLER_CHOICE_v2
GET /v1/classes/probes — The zero-cost seller probe’s records: one handshake-level check per seller per hour, kept apart from every hire (_SELLER_PROBE_v1_).
GET /v1/our-cards — Taifoon’s own seller cards — the three surfaces this desk is hired at.
POST /v1/sellers/market-price — Taifoon’s own A2A seller of market.price (_TAIFOON_PRICE_SELLER_v1_): the latest USD price of BTC, ETH, SOL or the CME micros NQ, ES, YM from the Taifoon venue
GET /v1/sellers/market-price — The seller card of Taifoon’s market.price seller (the same object as GET /v1/our-cards?card=price).
POST /v1/sellers/mech-predict — Taifoon’s own A2A worker of mech.predict (_TAIFOON_FORECAST_v1_): one yes/no question, the Olas prediction answer
GET /v1/sellers/mech-predict — The seller card of Taifoon’s mech.predict worker (the same object as GET /v1/our-cards?card=predict), or its forecasts kept for scoring.
GET /v1/our-card — Taifoon’s n8n typed-decision card (kept; see our-cards).
GET /v1/resources/register — The one-call onboarding: the message to sign for an agent, or the Grid join body for a resource.
POST /v1/resources/register — Register a resource in one call: an agent with one owner-signed message (card, endpoints, skills, classes together), or a Grid resource.
GET /v1/a2a — What the A2A endpoint serves (for a browser; the card is /.well-known/agent-card.json).
POST /v1/a2a — A2A 0.3 JSON-RPC: message/send opens a demand, tasks/get reads it as a Task.
POST /v1/handshake — Open a brokered handshake with a chosen candidate — and, with dispatch:true, deliver the offer to the provider in its own protocol.
GET /v1/handshake — A provider’s inbox, a hirer’s outbox, or the dispatch counters.
POST /v1/jobs — Create an offer: a job id, priced terms, and the calls to fund it.
GET /v1/quickstart — The newcomer’s path: connect an MCP client, post a demand in words, follow it to a settlement on the devnet 36927.
POST /v1/register — Get a free key (tfr_free_…): its own counters on POST /v1/demands, /gw/rpc and /gw/mcp instead of the per-IP visitor budget.
GET /v1/tenant/me — Your tenant: who you are, your keys, the next step, what you can build, and your own traffic over 1D / 7D / 30D / 90D.
GET /v1/tenant/vault — Your tenant's vault (_VAULT_AUTO_v1_): every tenant has one from its first key, as an off-chain record of the one ledger; where it is, what it holds per currenc
GET /v1/tenant/verify — Is this coord key live, and whose? For a service of the layer that is handed a coord key (the order book on 116 takes one coord tenant key as its principal: _KE
POST /v1/tenant/verify — The same check, then the order book's meter lines for the key's tenant (_BOOK_METER_v1_): one taifoon.meter.v1 line per product, channel and window of reads and
GET /v1/tenant/keys — Your tenant’s keys and the recent changes to them: who created, renamed, rotated or revoked a key or changed what it may do, and when.
POST /v1/tenant/keys — Manage your tenant’s keys: create one more key with a label, set what a key may call, spend and be called from, roll or revoke one, or claim a key you hold into
GET /v1/products — An alias of the catalogue in GET /v1/access (package), the same source, plus `layer`: the coordination layer as one product with three faces (Stream & proofs, C
GET /v1/products/:product — One product of the Taifoon package (taifoon.rpc, taifoon.gpu, taifoon.tee; rpc, gpu, tee also work) with its units, prices and how to buy, resell and contribute
GET /v1/access — API access, one page of truth: the products a key rents (RPC, proofs, decoded events, the coordination API, grades), each with its calls, its price per 1,000 in
GET /v1/access/quote — The quote for a purchase on any pay chain: ?usdc=1…500 for a balance, or ?plan=builder-99 | team-199 | protocol-299 for a monthly plan, with ?chainId= 8453 (Bas
POST /v1/access/topup — Top up the key: credit its balance with one transfer of a pay chain’s dollar token
POST /v1/access/subscribe — Subscribe in one call: no key + {"create_key":true} → the free key (shown once) and the payment terms of the balance top-up for it (x402 accepts on every networ
GET /v1/access/plan — The monthly plans: what each includes (an allowance of metered use worth more than its price, and a higher rate), its price for 30 days, and the chains it is pa
POST /v1/access/plan — Claim a monthly plan for the key with one payment of exactly its price on a pay chain: 30 days from the payment, or from the end of the running period of the sa
POST /v1/access/claim — Credit a payment that was sent and not credited, by its transaction, for 7 days after its block
GET /v1/access/receipts — Every payment your tenant’s keys were credited for: a balance, a monthly plan, grades or GPU credit, each with its amount, token, chain, transaction and the key
POST /v1/access/debit — Take an amount out of what the key holds, once per reference: how a service that meters on its own (the GPU lanes) is paid from the one balance with the buyer’s
GET /v1/owners — Who owns what Taifoon serves: the personas (operator, chain owner, protocol owner, agentic marketplace owner, community builder), the default packages every new
GET /v1/owners/:id — One owner record with its seat and the claims pending on it (who claims, with what kind of proof).
POST /v1/owners/:id/claim — Claim the seat of a protocol or chain you own, with one proof: an EIP-191 signature from an address its contracts name as owner or admin, a DNS TXT record, or a
POST /v1/owners/:id/claim/decision — The Taifoon Conclave DAO decides a pending ownership claim: approve moves the seat to the claimant and sets the shares (owner, partner, Taifoon, in bps); reject
POST /v1/access/meter — Post energy into the one ledger on a key’s behalf: units of work under a source (IN: read, stream, compute, lane
GET /v1/access/agreements — What the key accepted (TSUL-1.1, TAT, TEL, VAULT-GRANT, CLA at a version, for a product, how), what it inherits from its reseller (the acceptances of every unre
POST /v1/access/agreements — Accept a document of the layer for a product: one record per key ref × document × version × product, stored under the key's ref (never the key), sent to the pip
GET /v1/access/agreements/documents — The governing documents of the layer with no key (lang/cue/agreements.cue public_read): TSUL-1.1, TAT, TEL, VAULT-GRANT and CLA, each with its id, version, titl
GET /v1/access/key — The standing of your key: its label, permissions (scopes, origins, addresses), budgets (caps and what it metered today and this month), balance (GRID first), it
GET /v1/access/reseller — The reseller program: the child tenants this reseller minted (POST /v1/tenant/keys { action: "child", markup_bps }), each child’s metered calls, what the resell
POST /v1/access/reseller/children — Mint one per-builder child key under your reseller key (_RESELLER_CHILD_KEYS_v1_, 2026-10-22): the key is shown once and stored hashed like every other key
GET /v1/access/reseller/children — Your child keys, each with its cap, what it spent and what is left, and their usage rolled up by key and by channel from the meter lines (a store that did not a
DELETE /v1/access/reseller/children/:key_id — Revoke one child key at once: its key row is marked revoked (refused on the next call), and every payment it would make is refused from now on everywhere (the s
POST /v1/access/reseller/vaults — Enrol one vault for a client of yours (_RESELLER_VAULTS_v1_, owner 2026-10-22: a reseller programme gets vault permissions): a new client tenant (no keys yet) a
GET /v1/access/reseller/vaults — The vaults you enrolled for your clients, each with its client tenant, label, lifecycle state and stage, and your program's max (_RESELLER_VAULTS_v1_)
POST /v1/access/reseller/promos — Mint one promo / rebate key (_PROMO_KEYS_v1_, owner 2026-10-22: "start having the promo / rebate keys"): a code you hand out; a tenant that redeems it gets a re
GET /v1/access/reseller/promos — The promos attributed to you: kind, value, redemptions, expiry, who minted and who funds each (_PROMO_KEYS_v1_)
POST /v1/promo/redeem — Redeem a promo code (_PROMO_KEYS_v1_): a rebate promo (the only kind: zero dollars from Taifoon, a reseller's own markup funds it) gives you rebate_bps of the l
GET /v1/access/role — Who you are to the layer, or to one resource: your role (admin
GET /v1/access/products — What is for sale as resource access (_MARKET_ACCESS_v1_, lang/cue/access.cue): each product’s access id (topic:<topic>
GET /v1/inference/community — _ONE_GPU_SELLER_v1_ (lang/cue/inference.cue inference.community): the community GPU sellers on the one inference route
POST /v1/access/buy — Buy access to a resource: { product } (or { resource })
GET /v1/access/grants — Your grants: every access agreement your tenant bought, live or past, with the access id each entitles you to
GET /v1/hosting/resources — What you run on Taifoon hosting: your cells and hosted agents from the control plane, scoped to your own accounts
GET /v1/hosting/resources/:id/stream — Server-Sent Events: the status of one cell or agent you own every 5 s, for at most 2 minutes, then `end` (reconnect).
GET /v1/access/usage — What your key used, per product family, over ?window=1d|7d|30d|month: calls, GRID and USDC metered, GRID debited, errors, rate-limited and refused calls; its en
GET /v1/access/enclave — A dedicated enclave (taifoon.tee enclave_hour): the quote and the offer
POST /v1/access/enclave — Request a dedicated enclave: the first hour is held from the key’s balance and the provisioner deploys the allowlisted compose under Taifoon’s Phala workspace,
GET /v1/access/enclave/queue — The provisioner’s queue: every enclave that is not terminal, or failed with a CVM still on Phala.
POST /v1/access/enclave/heartbeat — The provisioner says it is alive, its mode (live or dry run) and what it read back out of Phala (rate, credit, runway, billing read).
GET /v1/access/enclave/:id — One enclave of your key: its state, the endpoint once it is accepted, the acceptance (quote verified, compose attested, the proof link), the hours paid, its usa
POST /v1/access/enclave/:id/hour — Take hour n of a running enclave from its buyer’s balance before it starts, once, and write it to the usage ledger with its legs.
POST /v1/tenant/try — Run one sandbox action of your tenant’s build tiles (dry-run demand, catalog counts, devnet pool plan, devnet RPC read, provable block, grade credits, GPU terms
POST /v1/outlets/virtuals-acp/sale — Record one Virtuals ACP job the Taifoon seller completed as a usage of the usage ledger: the buyer debited the gross budget, what the venue took at the source a
GET /v1/resale/sales/:id — One resale sale of a class wall: what the buyer paid, the terms, the delivery’s Jev grade and the seller’s listing as it stands now (_RESALE_SALE_READ_v1_).
GET /v1/resale/sales — The resale sales whose seller share is still owed, oldest first (?since=<ISO, at most 7 days back>&limit=).
GET /v1/deliveries/stats — Delivery evidence, public view: per paid product, how many paid answers were recorded and how many passed the product’s content rule, per day over 14 days.
GET /v1/assurance/markets — Every public two-sided assurance line: FOR backs a seller to deliver a job, AGAINST and COVER pay out if it fails
GET /v1/assurance/book — One seller’s assurance books: its record in the market, the price a position gets now, both sides estimated, open rounds with depth, past resolutions with the J
GET /v1/assurance/round — One job’s assurance round: its positions, the live price, whether positions are open.
GET /v1/assurance/networks — Every network the assurance suite is live on, one row each: the V4 line, the market, the Safe owner, health, settlements, Jev grades, cases and genome coverage,
GET /v1/assurance/health — Every served assurance line, checked live: the market answers, owner() is the network’s Safe, its state (paused?), rounds and the last round.
POST /v1/assurance/plan — The unsigned transactions to back a seller (FOR), challenge it (AGAINST), buy cover, withdraw, claim, open, resolve, void or sweep a round, simulated, for your
GET /v1/cover/quote — Cover a job you bought elsewhere: a quote signed by the layer’s attestors on a job you funded on Virtuals ACP (v3 or memo), BitAgent or another ERC-8183 market,
POST /v1/cover/buy — The exact unsigned transactions to buy a quoted cover from your own wallet: an approval of exactly the premium when the allowance is short, then buyCover
GET /v1/cover/policy/:id — One cover policy read from the chain: its status, claim window, the ending the attestors signed once the job ended, and the transaction that settles it (anyone
GET /v1/cover/policies — Every cover policy a buyer bought on a line, with its status now.
POST /v1/judge/ref — Ask TypeSafe/Jev one question about an item with your own TypeSafe key — or, without a key, get Taifoon’s grade of it.
POST /v1/hire/assemble — Have the judge assemble the whole path to hiring an agent for a task — a shareable record.
POST /v1/hire/suggest — Auto-suggest the inputs of a hire from live data — skills, budget, terms — with an optional calibrated Jev pass.
GET /v1/hire/lifecycle/:jobId — The whole lifecycle of a job, traced and verifiable — every phase from listing to settlement, against the chain.
POST /v1/hire/path/:id/attach — Attach the on-chain job to an assembled hire path, so the lifecycle trace carries the judge’s guidance.
GET /v1/onboarding/journey — Where you are on the one onboarding flow (account → need → match → run → watch → cockpit): your tenant, your demands with every step the loop wrote, and the one
POST /v1/onboarding/journey — The flow’s need → match → run for your tenant: a dry run answers the class, the sellers the loop ranks for it and the terms from POST /v1/pools/quote; without d
GET /v1/onboarding/funnel — How far outside tenants got on the onboarding flow: registered → first call → first demand → settled → paid, stuck per stage, Taifoon’s own tenants apart
GET /v1/onboarding/flows — Ready-to-run hire flows resurfaced from the harvest — the onboarding surface.
GET /v1/onboarding/batch — The first onboarding batch: the agents that answered on the wire, in their own protocol.
POST /v1/onboarding/refresh — Rebuild the onboarding flows from the live harvest, jobs feed and registry (what the delivery loop calls).
GET /v1/onboard/worklist — The agents that are almost hireable, for anyone to help over the line: the first check of the one hireable definition each fails, or hireable but not listed, or
POST /v1/onboard/spec/check — Check an agent against the one agent spec (_AGENT_SPEC_v1_, coord lang/cue/agent-spec.cue): every reference point OK, FIX or MISSING with the fix words and who
GET /v1/onboard/graph — The onboarding graph (_ONBOARD_GRAPH_v1_, coord lang/cue/onboard-graph.cue): every reference point an agent is checked on, the gate it answers to, the check tha
POST /v1/onboard/diagnose — Diagnose an agent on the onboarding graph: runs the spec check (POST /v1/onboard/spec/check) on a card, a registered agent or an AgentSpec, paints every referen
POST /v1/onboard/help — One helper action on one agent, credited to the helper: probe it now, count a copied message to its operator, confirm a listing, confirm a first offer.
GET /v1/onboard/help — The caller’s credit as a helper, every attributed transition, or the helper transitions counted per day.
POST /v1/hire/pad — The Jev pad: every field of a phase as a typed multiple-choice question over live data, answered by ONE calibrated call.
GET /v1/judge/ready — Jobs resurfaced for a calibrated grade — sellers with a well-calibrated record first.
GET /v1/grid/review — Paid deliveries worth reviewing — the work behind the reviewers’ 20%.
POST /v1/grid/review — Report a review: the delivery you re-derived from chain through your own RPC.
GET /v1/judge/study — DET against Jev on settled jobs: the ending the chain settled versus the calibrated grade from the pre-verdict trail.
POST /v1/settle — The unsigned settlement of one paid call — a judge call, a call to another agent, or a grid resource call — on the coordination layer.
GET /v1/fees/quote — The layer’s fee on one job settled through it, priced from live gas (_JOB_FEE_v1_): the larger of the routing bps and the layer’s own gas on the job at the quot
GET /v1/fees — What settling through the layer has earned: the fee on each job that named the Taifoon JudgeAdapter as its evaluator, read from the chain.
GET /v1/settle — Settlements recorded on the coordination layer, newest first — from every write path (runner, relayer, evaluator leg, site).
POST /v1/settle/evaluate — The evaluator leg: the job’s evaluator ends a job on chain from the recorded decision — the verdict a grade decided (complete | reject), or, on a job held on ne
POST /v1/settle/decided — Name the Jev decision a job ended on: a lane that completed or rejected on Jev’s automatic decision writes its settle row with that decision, proven from the ch
POST /v1/settle/ended — Record a V4 job that ended with nobody deciding: the devnet keeper’s claimAutoComplete, finalizeReject or settleStaleDispute, proven from the chain, on the job’
GET /v1/settle/operator — The operator steps: held needs_review jobs waiting for, or ended by, an operator’s recorded decision — Jev’s decision and the operator’s side by side.
GET /v1/settle/discover — The settlement watcher: settle rows discovered from the chain with nobody posting — every live V4 line (Base, Arbitrum, the devnet lines) and every x402 network
GET /v1/settle/operator/:id — One operator step by job id, or one operator decision by its id (opdec-<16 hex>).
POST /v1/settle/operator/:id/relabel — Correct who decided a kept operator record, append-only: the record and its anchor never change; the correction is added beside it, citing the record, and is it
GET /v1/settle/:id — One recorded settlement, by job id (or the old runner’s <at>-<kind> id).
GET /v1/hiring/stages — The stages of a hire, defined once in the whitepaper’s words and shared with every component (console, MCP, n8n, SDK).
GET /v1/stream — Every workflow of the layer on one server-sent event stream: the root every 10 s, the judge’s decisions, the devnet contract actions, the job market, the pools,
GET /v1/judge/credits — Your grades: the three free grades, bought grades, the burst cap, and the price of a block of three (15 GRID at the oracle peg, paid in USDC)
POST /v1/judge/credits — Buy blocks of three grades: the unsigned USDC transfer to sign (dUSDC on the devnet today).
GET /v1/judge/credits/key — No key yet? Pay first: the unsigned USDC transfer on Base that buys blocks of three grades, and the message the paying wallet signs to claim a key.
POST /v1/judge/credits/key — Claim a relayer key for a paid transaction on Base — one key per transaction, only by the wallet that paid.
GET /v1/judge/credits/grid — Pay for grades with settled GRID points: a wallet’s GRID balance, the price in GRID, the caps, and the message to sign.
POST /v1/contribute — Contribute to the coordination layer: a transitions file, a λ machine, a decoder, a schema, a protocol manifest, a module, or an agent.
POST /v1/contribute/:id/status — Move a contribution: validated, live, or rejected (the validation job’s report rides with it).
POST /v1/flows — Publish a flow: ordered steps, each a class with its input from the need or an earlier step’s output, an optional seller, how it is graded and how it settles.
GET /v1/flows — The flows, ranked by settled runs with unrelated buyers.
POST /v1/studio/agent — Ask the studio agent: it reads, measures and debugs through the layer’s own operations (filtered by your role) and proposes any change as a taifoon command for
POST /v1/designer — Design an agent from a sentence: the classes the words name (the house model may add classes the words also name; its proposal is guarded against the facts), ea
POST /v1/designer/try — Try a designed flow: keep it as the caller’s draft (not listed, never credited) and run it once on the devnet direct lane.
POST /v1/demands/:id/grade — Ask Jev for the grade of an open-class demand (a class with no code check).
GET /v1/judge/sampler — The Jev sampler: every Nth settled job per chain × lane × class graded by Jev under RUBRIC_v2 on the facts code establishes, recorded through the decision ledge
GET /v1/judge/cases — The case catalogue: every settled job whose ending or grade somebody decided — the Jev arbiter’s rulings, the endings code or Jev decided, the Jev sampler’s gra
GET /v1/economy — The economy per network (Base, Arbitrum, Arc, Robinhood, Monad, Solana; the devnet apart as test money): callers whose job there was graded (Taifoon’s own apart
POST /v1/systemone — The System One standard on coord: the same request and answer TypeSafe and Venice serve (POST /v1/systemone), one host for every provider in lang/cue/systemone.
POST /v1/decisions — Venice's name for the System One API (POST /api/v1/decisions there): the same handler as POST /v1/systemone, so a client written for either host reaches coord b
GET /v1/judge/decisions — Every decision the judge made for this layer — pad picks, skill rankings, assembles, grades, study batteries — each with a recomputable digest and its transacti
GET /v1/judge/decisions/:id — One recorded judge decision with its anchors resolved and the calldata a reader recomputes.
GET /v1/judge/record/networks — Where a Jev grade may be recorded on chain, and what a record costs there now: one row per network with its chain id, the two logs (JevAnswerLog, JevDecisionLog
POST /v1/judge/decisions/:id/record — Put an already-recorded judge decision and its answer record on one more network: { network } is the name or chain id of a live network, or a list (GET /v1/judg
POST /v1/judge/decisions/:id/base — Alias of POST /v1/judge/decisions/:id/record with network "base": put an already-recorded judge decision and its answer record on Base (JevDecisionLog + JevAnsw
GET /v1/judge/answers — Every answer Jev gave this layer — each question, value, the full distribution, model, latency and the credential that paid — recorded as a jev.answer.v1 body w
POST /v1/judge/answers/record — Record Jev answers the layer did not fetch (an n8n TypeSafe node, the registry, a runner): stored, digested and, when `record` names a network, anchored on its
GET /v1/judge/answers/:digest — One recorded Jev answer: the canonical body, its recomputed digest, and the JevAnswered transaction.
GET /v1/genome/live — Every live Taifoon contract on every chain, read into genome observations: V4 hooks, fee-forwarding adapters, pools, assurance markets and outcome sources, the
GET /v1/genome/actions — The layer’s own contract actions on the devnet — hook funds/submits/completes, verdicts, x402 captures, stamps, judge decisions, ERC-8004 feedback — read as gen
GET /v1/judge/evaluator — Taifoon as the evaluator of a job: the JudgeAdapter a buyer names as evaluator and the V4 hook per network (Base, Arbitrum One, Arc, Robinhood Chain, Monad, the
POST /v1/judge/v5/end — End a V4 assurance-hook job through JudgeAdapterV5: queue the anchor (the Jev recorder writes the verdict into the decision log), then, once mined, the post wit
GET /v1/judge/keys — Your Jev seat: the session the Jev unit holds for your tenant, certified by the Jev evaluator's Taifoon vault key, and how a venue verifies a grade signed under
POST /v1/judge/keys — Ask for your own Jev seat, or drop it: { action: create | revoke }
POST /v1/judge/score — score(job): grade any job of the lambda catalogue under RUBRIC_v2 — an agent job on an ERC-8183 venue reads its evidence pack; a cross-chain order or a stream-s
GET /v1/judge/demos — Every place this layer uses TypeSafe’s Jev, driven through the API and landed on the devnet as its own transaction.
POST /v1/judge/study — Run the DET-vs-Jev study on calibrated jobs from the whole harvest and record it.
GET /v1/judge/traces — Many jobs’ ERC-8183 trails in one call, prepared: a finished job’s trail is read once and kept.
GET /v1/judge/queue — The jobs a grader is needed for: paid and delivered with no ruling, paid and delivered then rejected, funded and past the deadline with no ending — ranked by wh
GET /v1/grid/join — What a resource can join the Grid as, what each kind pays per healthy probe, and the one-request join.
POST /v1/grid/join — Bring a resource to the Grid in one request: the oracle probes it every hour and pays GRID for measured work.
POST /v1/grid/heartbeat — A taifoon-node's signed heartbeat, every 5 minutes: what the box offers now (capacity per kind), its payout election, and the usage receipts of the work it ran.
GET /v1/grid/work — The work coord placed on a node: outlet jobs and Taifoon buyers' work arrive here, never through the contributor's own outlet accounts.
GET /v1/grid/economics — What the Grid earns: the live rate per kind, and the attribution of revenue to every node behind Taifoon (the one provider at every outlet).
GET /v1/grid/pools — Resource pools: several operators’ resources working as one, with the pool’s fee (at most 30%, locked at join).
GET /v1/grid/settlement — My GRID: a wallet’s measured ledger, what was settled on Taifoon mainnet, what is pending, and its balance.
GET /v1/grid/wanted — Where the Grid is short: chains and kinds ranked by demand, with the bootstrap budget and the settlement rule.
GET /v1/grid/hire — Hire measured resources from the Grid — a quote with the usable providers and the measurement as evidence.
POST /v1/grid/hire — Record a Grid hire and, when both sides have wallets, plan its settlement on the assurance hook.
POST /v1/judge/compose — RUBRIC_v2 — the judge as a pipeline: code proves the facts, Jev answers four atomic questions, code composes the verdict spec-led (complete: spec_met ≥ 0.85 and
GET /v1/market/candles — The class market.candles: OHLCV bars of BTC, ETH, SOL or the CME micro futures NQ, ES, YM (15s, 1m, 5m, 1h) from the Taifoon venue tape, past windows only, with
GET /v1/trading/record — The class trading.record: a trader’s realized record recomputed by code from its fills (the Taifoon venue by attribution, paper; Hyperliquid by address), agains
GET /v1/trading/metrics — Calls, payers and revenue of the two paid trading routes (market/candles, trading/record), outside vs Taifoon’s own by the paying wallet.
GET /v1/mech — The coordination layer as a mech: post a request on chain (a grade, a V5 proof, an agent readiness or match), the layer’s worker delivers the result hash + URI
POST /v1/mech/plan — The task document and the unsigned approve + request calls for a coordination mech request
GET /v1/mech/requests — Every coordination mech request, newest first, folded from its events on chain.
GET /v1/mech/requests/:chain/:requestId — One coordination mech request: its state, the task, every event with its transaction, the result pointer, and how to refund it when it is refundable.
GET /v1/mech/results/:chain/:requestId — The result document a mech delivery points at, byte for byte: keccak256 of the body equals the resultHash on chain.
GET /v1/virtuals/sellers — Virtuals sellers on chain and in Virtuals’ own agent registries, joined by wallet: the memo-ACP sellers on Base and the ACP v3 sellers on Base, Arc and Robinhoo
GET /v1/olas/mechs — The Olas Mech marketplace on every chain it runs on (Gnosis, Base, Polygon, OP Mainnet, Robinhood Chain) in one read: every mech with its chain, how it is paid,
GET /v1/agentverse/agents — Fetch.ai Agentverse agents from its own public search: address, hosting type, protocols, interactions (_AGENTVERSE_LANE_v1_).
GET /v1/agentverse/agents/:address — One Fetch.ai agent as a hirer needs it: its own Almanac record and the request models its protocols declare.
POST /v1/x402/class/:class — The resale wall of one class: an admitted outside seller answers your input, code checks the answer before you are charged, Jev grades it after, and the seller
GET /v1/x402/class/:class — The resale wall of one class, probed with GET: the x402 challenge (PAYMENT-REQUIRED) without a body, or the answer with the input as query parameters and a paym
GET /v1/x402/bazaar — The x402 Bazaar for discovery: resources paid through the CDP facilitator, each a payable row with its prices and readiness; nothing is paid (_X402_BAZAAR_v1_).
GET /v1/mcp/registry — The official MCP registry for discovery: servers with the endpoint they published, whether it is free to call, a live probe, and ERC-8004 cross-links (_MCP_REGI
GET /v1/mcp/registry/server — One MCP registry server as a hirer needs it: its own record, the open endpoint, a live probe, the classes it works, ERC-8004 cross-links.
GET /v1/gw/resources — The resources the drop-in gateways serve: point a stock MCP client at the resource’s gateway URL instead of its own endpoint, and every call is forwarded unchan
GET /v1/gw/steps — The recorded gateway calls, newest first per resource: each one λ step of the lease machine.
GET /v1/gw/steps/:id — One recorded gateway call (taifoon.step.v1): the λ path, the digests of the request and the answer, and the step digest recomputed.
GET /v1/gw/metrics — The gateway counters, the feed /v1/metrics reads for calls through the gateway: in total, per resource, per JSON-RPC method, per ending state and per day (off-c
POST /v1/gw/steps — Record one probe the layer made itself as a λ step (_AUTOCONNECT_v1_): a warmbed rotation read (rpc), a cross-chain quote (route), an A2A card, a uAgent record,
GET /v1/metrics — How much went through the coordination layer on one day, in one read: calls per route and key class, handshakes by protocol, gateway λ steps by kind, hires sett
GET /v1/metrics/series — The /v1/metrics headline per UTC day for charts, Taifoon’s own vs customers, oldest first (_COORD_METRICS_v1_).
GET /v1/troubleshoot/top — What the community hits: the refusal codes outside callers met most often on /v1 over the last 7 UTC days, from the access log's refusal counters
GET /v1/network — The network, live: what the hourly auto-connect run found — the seller chooseSeller picks per job class and whether it answered a handshake-level call through t
POST /v1/network — Publish the network snapshot (the hourly auto-connect run).
POST /v1/demands — Post what a buyer agent needs, not whom to hire: in words ({ need }) or as a job of a class the auto-match loop runs (mcp.digest, a2a.json_normalize, stats.desc
GET /v1/demands — Demands, newest first, each with every step the auto-match loop wrote on it (_DEMAND_INTAKE_v1_).
GET /v1/demands/:id — One demand and its path: matched → hired → graded → settling → settled, or unmatched / failed with why (_DEMAND_INTAKE_v1_).
POST /v1/demands/:id — The auto-match loop records the next step of a demand (open → claimed → matched → hired → graded → settling → settled; unmatched / failed end it).
GET /v1/agentkit — Coinbase AgentKit workers registered with the layer: the release, its action providers, the actions each serves, a live probe (_AGENTKIT_LANE_v1_).
GET /v1/a2a/registry — The A2A Registry (a2aregistry.org) for discovery: agents with the URL their card publishes, the A2A dialect, whether it is free to call, the registry’s own heal
GET /v1/hashproof/credentials — HashProof, an ERC-8004 agent on Celo, for discovery: the ERC-8004 agents that publish its MCP endpoint, and credentials in its CredentialRegistry on Celo, read
GET /v1/nevermined/catalog — Nevermined’s agent services catalogue for discovery: every service, its protocol, price, network and health
GET /v1/skyfire/directory — Skyfire’s service directory for discovery: every service, its type, price and seller
GET /v1/a2a/registry/agent — One A2A Registry agent as a hirer needs it: its own record, whether it is open, its dialect, a live card probe, the classes it works, ERC-8004 cross-links.
GET /v1/judge/evidence/olas/:requestId — The evidence pack for one Olas Mech marketplace request on Base — the public prompt, tool, mech, fee and response.
GET /v1/judge/evidence/:chain/:jobId — The evidence Jev reads about one job the observatory keys — an ERC-8183 / memo-ACP job, an extra deployment’s job, or an assurance-hook job by its 32-byte id (t
GET /v1/judge/trace/:chain/:jobId — The on-chain judge result, live: every ERC-8183 event of a job with its transaction and explorer link, the deterministic ending, and Jev’s three-field answer be
POST /v1/judge/grade — Grade up to 4 items with ONE calibrated call — each item’s full distribution kept.
POST /v1/judge/batch — Record a batch-judge outcome for the coordination layer (relayer key required).
GET /v1/desk/chains — The Chain Desk's chains (_DESK_API_v1_): every chain the desk serves with its family (evm, tron, substrate), CAIP-2 id, finality rule, sources and health, and w
GET /v1/desk/deposit/:chain/:tx — One transaction as a deposit: CREDIT, WAIT or REJECT with the reason, the common deposit records (taifoon.deposit.v1) and the evidence; fail closed (unreadable
GET /v1/desk/deposits/:chain/:address — The deposits to an address over a block window, as common deposit records with their level (EVM and Tron tokens up to 2,000 blocks a call).
GET /v1/desk/withdrawal/:chain/preflight — May a withdrawal go out now: SEND or HOLD with the reason and the best node (the rotation's nodes asked their head now)
GET /v1/desk/withdrawal/:chain/:tx/receipt — A sent withdrawal: DELIVERED once it succeeded in a final block, else NOT_YET (terminal when it reverted), with the proof link.
GET /v1/desk/finality/stream — The desk_finality lane of /v1/stream on its own connection (the same events, named as before)
GET /v1/desk/deposits/stream — The desk_deposits lane of /v1/stream on its own connection (the same events, named as before)
GET /v1/desk/lambdas — The deposit lambda registry: the built-in lambdas (evm, tron, substrate) and the third-party manifests (data only), each with its family, chains, finality, hash
GET /v1/desk/proof/transfer/:chain/:tx — Membership proof of one EVM transaction (_DESK_PROOFS_v1_): it is in a final block under the superroot, who signed it, and exactly which ERC-20 transfers it mov
GET /v1/desk/proof/transfers/:chain/:address — Completeness proof over final blocks (_DESK_PROOFS_v1_): every ERC-20 transfer to (in) or from (out) an address in a range, and a proof there is no other; NONE
GET /v1/desk/proof/account/:chain/:address — State proof of an account at a final block (_DESK_PROOFS_v1_): its nonce and native balance, and one ERC-20 balance by its slot; an address with no account is p
GET /v1/desk/metrics — The Chain Desk's state per chain in the Prometheus text format (_DESK_METRICS_v1_), to scrape into an exchange's own monitoring; ?format=json for JSON.
POST /v1/sma/ask — Show Me Around ++ the helpdesk (_SMA_HELPDESK_v1_, lang/cue/sma-helpdesk.cue): one question about one product → a case
GET /v1/sma/graph — The product's knowledge graph as the helpdesk holds it (?product=<id>, ?scope=public|product|tenant, ?weakest=1 for the ranked unknowns): nodes { id, kind, scop
POST /v1/sma/learn — Close the loop on a case: answer it (words, by an expert, an agent or a member), grade it (Jev, the buyer or the admin), or tune a loop of the tenant inside its
POST /v1/sma/nominate — Enlist an expert of the tenant's product: { expert key:<24hex>, payee (an address, or the expert's key ref until it claims one), chains, share_bps ≤ 7000, cap p
POST /v1/enterprise/listings/sync — sync one listing to the publisher (upsert by the enterprise's listing id); the answer is the publisher's receipt (ext enterprise-listings)