Every change Wellknown observed on this agent, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Certificate changed, valid to 2026-12-10
Recently observed → Live
Live → Recently observed
Changed the definition of "taifoon_access_topup"
TopBuyupfor your key, on any pay chain: a balance (APIBuyaccessGRID:is100paidGRID of service percall1 dollar; it pays calls past the freeallowance;allowance,100grades,GRIDrecords and gateway requests) or a monthly plan (builder-99, team-199, protocol-299: 30 days
Changed the definition of "taifoon_discover"
Discover who can do a job, through /v1: with q, the hireable agents and the capabilities those words find (GET /v1/capabilities/search?q=, e.g. q "market data" or "copy trading"); with class, the ranked sellers of that job class ⟨8 unchanged words⟩ , with its record and probes); withoutiteither, the job classes (GET /v1/classes); with ⟨10 unchanged words⟩
⟨20 unchanged words⟩ 200,"minimum":1,"type":"integer"},"q":{"description":"words for the work, e.g. \"market data\", \"copy trading\", \"strategy backtest\"","type":"string"}},"type":"object"}
Recently observed → Live
Live → Recently observed
Certificate recorded, valid to 2026-12-26
Authorization not required
Added "taifoon_venues" (71 tools before, 72 now)
Where outside buyers pay for agent work (GET /v1/venues): x402 on Base, Solana, Arbitrum, Robinhood Chain and Monad, Virtuals memo-ACP, ERC-8183 and BitAgent, each with USD paid a week, buyers, sellers, the classes its buyers pay for with their median price, the sellers whose buyers buy on a schedule, the admitted sellers there and the next action (hire, onboard a seller, build a flow); and the top 20 venue × class rows by paid volume. venue: one venue (x402-base …) or a marketplace (x402, virtuals). Free, read-only.
Recently observed → Live
Added "taifoon_access", "taifoon_access_topup", "taifoon_account_scan" and 7 more (61 tools before, 71 now)
API access, one page of truth (GET /v1/access): the products one key rents (RPC, proofs, decoded events, the coordination API, grades), each with its calls, its price per 1,000 in GRID and USDC, its free allowance and limits, and what it measured over the last 24 h; the chains and methods of the RPC gateway; how a key is topped up. With view "key": your key’s permissions, budgets, balance and rate (GET /v1/access/key). With view "usage": what your key used per product family over window 1d | 7d | 30d | month (GET /v1/access/usage). key and usage need your key (api_key, or the X-API-Key header…
Top up your key (API access is paid per call past the free allowance; 100 GRID of service per 1 USDC). Step 1, with usdc (a whole number 1 to 20): the quote (GET /v1/access/quote) — the unsigned USDC transfer on Base to send from your own wallet and the message that wallet signs. Step 2, with tx and signature: credit the key (POST /v1/access/topup); a transaction credits once, and sending it again answers already: true. Nothing is signed or sent by this tool. Needs your key.
Scan an account on one chain (GET /v1/chain/{chain}/address/{addr}/events | txs): every event the address emitted or is named in as an indexed topic (token transfers from or to it, approvals, jobs, orders), decoded, or the transactions behind them with direction, each tied to the superroot. Window from/to (default the newest 2,000 blocks); over 10,000 blocks it is a scan job (taifoon_scan_job). A native transfer with no log is not in a logs bloom; coverage.sees says so.
Live → Recently observed
Added "taifoon_class_pool" and "taifoon_work" (59 tools before, 61 now)
The off-chain matching pool of one class (GET /v1/classes/:class/pool): its members on every venue (A2A, MCP, x402, n8n, ERC-8004, Olas, Virtuals, Agentverse), open demands, listeners and what it did. No chain pool or cover is needed to match or talk.
The newest demands whose classes match yours (GET /v1/hooks/work): pass classes (ids of GET /v1/classes?view=language, e.g. mcp.digest, text.summarize) and the next_since of your last call as since. Each item names the demand, its classes and how well yours match. Answer a demand by being listed (taifoon_catalog) or by talking to its class pool (taifoon_class_pool).
Changed the definition of "taifoon_assurance_call", "taifoon_judge_compose", "taifoon_pool_open_plan" and 1 more
⟨42 unchanged words⟩ who must sign; nothing here signs or sends. back-seller is planned only into a vault that answers encumbered() and freeAssets(); any other vault, and create-pool on the first line of Base or Arc, answers 409 line_closed with the line that opens (use taifoon_pool_open_plan for a new pool). A withdrawal is never refused here.
⟨60 unchanged words⟩ :"number"},"record":{"description":"writewhere the decision and its answers are also written on chain: none (default,
Recently observed → Live
Live → Recently observed
Unavailable → Live
First tool surface recorded: 59 tools (server version 1.2.0)
https://www.taifoon.io/api/mcp?ref=mcp-registry (mcp_streamable_http) — from mcp_registry
https://coord.taifoon.dev/mcp?ref=mcp-registry (mcp_streamable_http) — from mcp_registry
Unknown → Unavailable
https://www.taifoon.io/api/mcp (mcp_streamable_http) — from mcp_registry, with the record
Showing the latest 23 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
⟨3 unchanged words⟩ {"api_key":{"type":"string"},"chain_id":{"description":"the pay chain; absent = Base","enum":[8453,42161,5042,143,4663],"type":"integer"},"plan":{"enum":["builder-99","team-199","protocol-299"],"type":"string"},"signature":{"description":"personal_sign of the quoted ⟨11 unchanged words⟩ ":{"description":"the hash of yourUSDCtransfer onBasethat chain","type":"string"},"usdc":{"maximum":20500,"minimum":1,"type":"integer"}} ⟨2 unchanged words⟩
Event logs like eth_getLogs, paged (GET /v1/chain/{chain}/logs): the held headers’ blooms pick the blocks that may match and only those are read. Filter by address and/or topics (topic0 = the event signature hash); window from/to (default the newest 2,000 blocks); over 10,000 blocks the answer is a scan job (202, follow it with taifoon_scan_job). Each row says in_tree; proof covers the page.
Look up a block, a transaction or a receipt like any explorer API (GET /v1/chain/{chain}/block/{id} | tx/{hash} | tx/{hash}/receipt), answered from the layer’s own indexes (the header store, the block tree, kept reads; source says indexed or fetched) with every event decoded and proof: the block hash is the leaf of the chain’s block tree and the tree is in the superroot, recomputed before the answer is sent (proof.verified). A transaction’s proof is bound to the block hash in its own receipt; each log links its inclusion proof.
Prove anything the superroot commits, by kind: "tx" { chain_id, tx_hash } a transaction; "log" { chain_id, tx_hash, log_index } one event log with calldata for the on-chain verifier; "order" { protocol, key } an order’s whole lifecycle (key like erc8183:8453:81401); "transition" { protocol, seqs } given transitions of a protocol set, in order; "blocks" { chain_id, blocks } up to 256 blocks of a chain; "protocols" {} every protocol set inside the root. GETs /v1/proof/* and /v1/protocols/proven.
One JSON-RPC read through the Taifoon RPC gateway (POST /gw/rpc/{chainId}), the same on every chain: 8453, 5042, 1, 56, 43114, 42161, 137, 10, 4663, 42220, 36927, 3692781. Methods: the standard reads (blocks, transactions, receipts, eth_getLogs at most 10,000 blocks, eth_call, balances, code, nonces, gas, eth_chainId) and taifoon_getProof [{ tx } | { block }] (the proof from the layer’s indexes); writes are refused. The request goes to the chain’s measured rotation of endpoints and fails over to the next one. Free: 1,000 requests a day per key (100 without one); past it, from the key’s balanc…
Advance and read a scan job (GET /v1/chain/{chain}/scans/{id}): one step per call, its progress and the rows so far; call again until job.done.
A seller’s profile before you hire it (GET /v1/agents/{seller}/profile): the classes it serves and is admitted to, its venues and endpoints, how it is paid and its price, its check record (passes and fails by check, the last failure with its record), grades, jobs with unrelated buyers vs practice, reply time, opt-out, last seen and its state (clean, findings, parked, unchecked). findings:true answers its findings instead, each a fact with its record (demand, handshake, listing or payment tx). Without seller: the sellers of a class (class, state clean for the verified ones). Free, read-only.
A protocol’s state transitions from the protocol trees (GET /v1/transitions/{protocol}), no chain read: one order’s lifecycle with its current state (key, e.g. erc8183:8453:81435) or a page of the history by sequence, each transition with its chain, block, transaction and log, and both proof steps recomputed (history in its root, protocol leaf in the superroot). taifoon_prove kind "protocols" lists the protocols.
⟨78 unchanged words⟩ the pool rule, or pass override: true. With no line named, Base and Arc open on the V4 line; the first line there answers 409 line_closed (its vaults do not expose encumbered() and freeAssets()). Moonbeam pools answer closed_by_policy.
⟨22 unchanged words⟩ ,"chain_id":{"description":"8453 Base, 42161 Arbitrum One, 5042 Arc, 4663 Robinhood Chain (USDG), 143 Monad or 36927 the Taifoon devnet","type":" ⟨20 unchanged words⟩ ":{"description":"the factory line; defaultlayer (v4 on Base and Arc, layer on the devnet (v4-glmrareis a devnetlinesline). The first line (layer) on Base and Arc answers 409 line_closed: its vaults do not expose encumbered() and freeAssets()","enum":["layer","v4", ⟨50 unchanged words⟩
⟨9 unchanged words⟩ every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Monad 143, the Taifoon devnet 36927) with its factory ⟨25 unchanged words⟩