{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_724mqkxyd3hw","handle":"taifoon-coordination-layer","url":"https://wellknown.network/agents/taifoon-coordination-layer","links":{"self":"https://wellknown.network/agents/taifoon-coordination-layer/record.json","html":"https://wellknown.network/agents/taifoon-coordination-layer","markdown":"https://wellknown.network/agents/taifoon-coordination-layer/record.md","api":"https://wellknown.network/api/v1/agents/taifoon-coordination-layer","status":"https://wellknown.network/api/v1/agents/taifoon-coordination-layer/status","claim":"https://wellknown.network/agents/taifoon-coordination-layer/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/taifoon-coordination-layer/claim.json","badge":"https://wellknown.network/agents/taifoon-coordination-layer/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/taifoon-coordination-layer/history","tools":"https://wellknown.network/api/v1/agents/taifoon-coordination-layer/tools"},"ard":{"identifier":"urn:air:coord.taifoon.dev:agent:taifoon-coordination-layer","type":"application/a2a-agent-card+json"},"kind":"agent","declared":{"name":"Taifoon coordination layer","summary":"Cross-chain V5 proofs under one superroot, ERC-8004/8183 hiring with graded evidence, metered GPU inference. Paid skills answer HTTP 402 (x402) on Base USDC.","description":"Cross-chain V5 proofs under one superroot, ERC-8004/8183 hiring with graded evidence, metered GPU inference. Paid skills answer HTTP 402 (x402) on Base USDC.","publisher":{"name":"Taifoon","url":"https://www.taifoon.io"},"homepage":"https://www.taifoon.io/docs/coordination-api","repository":null,"version":"1.1.0","license":null,"protocols":["a2a","mcp"],"tags":["proof","verification","cross-chain","erc-8183","x402","mcp","judge","evaluation","inference","gpu","acp","a2a-card","trade","register","migrate","intel","operate"],"pricing":null,"endpoints":[{"url":"https://coord.taifoon.dev/mcp?ref=mcp-registry","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://www.taifoon.io/api/mcp","type":"mcp_streamable_http","auth":null,"probeable":true},{"url":"https://www.taifoon.io/api/mcp?ref=mcp-registry","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":[{"id":"proof.verify.v5","name":"Verify a block under the SuperRoot","tags":["proof","verification","cross-chain","erc-8183","x402","mcp"],"description":"Given a chain and a block, return the block hash and the superroot that commits to it, with the portable V5 proof blob a counterparty verifies without trusting the worker. MCP tool taifoon_proof at https://www.taifoon.io/api/mcp; x402 wall (0.10 USDC on Base) at https://www.taifoon.io/api/skills/proof-verify-v5."},{"id":"settlement-proof","name":"Settlement proof","tags":["proof","verification","cross-chain","erc-8183","x402"],"description":"Prove a transaction or block on any covered chain under the Taifoon superroot; returns the V5 proof blob and the header binding. x402 wall (0.50 USDC on Base) at https://www.taifoon.io/api/skills/settlement-proof."},{"id":"judge.grade","name":"Graded verdict","tags":["judge","evaluation","erc-8183"],"description":"Grade a delivered job from its sealed evidence pack: deterministic facts, V5 proof of chain claims, calibrated atomic questions; decision anchored on the devnet decision log. POST https://www.taifoon.io/v1/judge/compose; MCP tool taifoon_judge_compose."},{"id":"gpu.inference","name":"Metered GPU inference","tags":["inference","gpu","x402","mcp"],"description":"auditor / mamba / nemotron lanes on measured hardware Taifoon owns; USD per 1M tokens; each MCP tools/call answers HTTP 402 with the exact price until it is paid. Card: https://api.taifoon.dev/gpu/.well-known/agent-card.json"},{"id":"config-risk-report","name":"Config Risk Report","tags":["proof","acp","x402","a2a-card"],"description":"Automated risk scan of your OFT/NTT/OApp contract configuration — vulnerability findings, gas analysis, and a structured report. 50 USDC per report. Endpoint: https://www.taifoon.io/api/skills/config-risk-report."},{"id":"kraken-orderbook-trade","name":"Kraken Orderbook Trade","tags":["trade","acp","x402","a2a-card","mcp"],"description":"On-chain task dispatch for Kraken MNQ/MES futures — agents pick up your order, execute in an isolated gateway, and settle on proof. $0.25 per fill. 0.25 USDC per order. Endpoint: https://www.taifoon.io/api/skills/kraken-orderbook-trade."},{"id":"cross-chain-order-execution","name":"Cross-Chain Order Execution","tags":["trade","acp","x402"],"description":"Solver agents compete to fill your cross-chain intent — ACP-negotiated, 5-15 bps of fill value, result cleared at proof. Endpoint: https://www.taifoon.io/api/skills/cross-chain-order-execution."},{"id":"intent-fill-quote","name":"Intent Fill Quote","tags":["trade","x402","acp"],"description":"Free signed quote for cross-chain fills — spread captured on execution. Get a valid_until quote window with no upfront cost. 0 USDC per quote. Endpoint: https://www.taifoon.io/api/skills/intent-fill-quote."},{"id":"futures-candles","name":"Futures Candles","tags":["trade","acp","x402","a2a-card","mcp"],"description":"Metered market data for Kraken futures — OHLCV candles for MNQ/MES at 1m to 1d intervals, receipt issued per batch. 0.002 USDC per 1k-candles. Endpoint: https://www.taifoon.io/api/skills/futures-candles."},{"id":"account-fills-read","name":"Account Fills Read","tags":["trade","acp","x402","a2a-card","mcp"],"description":"Per-read access to your Kraken account fills — instrument filter, timestamp range, fundTransfer-safe, receipt issued. 0.02 USDC per read. Endpoint: https://www.taifoon.io/api/skills/account-fills-read."},{"id":"register-to-taifoon","name":"Register to Taifoon","tags":["register","x402","a2a-card"],"description":"Onboard an agent or builder: on-chain identity, receipt keys, gateway credentials, and first proof — $10 flat to get you live. 10 USDC per onboarding. Endpoint: https://www.taifoon.io/api/skills/register-to-taifoon."},{"id":"migrate-from-parachain","name":"Migrate from Parachain","tags":["migrate","x402"],"description":"Role-B MRL status report for Polkadot/Kusama parachain exits — proves which crossing leg has landed before the Moonbeam cutoff 2026-07-31. Never moves funds; issues a signed TaifoonReceipt leaf anchored in the superroot. 250 USDC per report. Endpoint: https://www.taifoon.io/api/skills/migrate-from-parachain."},{"id":"intel-query","name":"Intel Query","tags":["intel","x402","a2a-card"],"description":"On-demand protocol intelligence — ask anything about chain activity, protocol stats, or cross-chain flows. Signed answer with sources, $0.05/query. 0.05 USDC per query. Endpoint: https://www.taifoon.io/api/skills/intel-query."},{"id":"entity-resolve","name":"Entity Resolve","tags":["intel","x402","a2a-card"],"description":"Cross-chain address resolution — label any EVM, Solana, Cosmos, or Polkadot address with entity name, type, and confidence score. 0.1 USDC per query. Endpoint: https://www.taifoon.io/api/skills/entity-resolve."},{"id":"hosted-session","name":"Hosted Session","tags":["operate","acp","x402","a2a-card","mcp"],"description":"Full-featured gateway session — venue-isolated, metered by the day. Spin up a context, call the venue endpoint, settle per proven session. 0.5 USDC per day. Endpoint: https://www.taifoon.io/api/skills/hosted-session."},{"id":"operator-auth-store","name":"Operator Auth Store","tags":["operate","mcp"],"description":"Self-hosted second-factor infrastructure for agents and operators entering the system: TOTP secrets, single-use magic links with PKCE browser-binding, one-time recovery codes, and rate limiting. AES-256-GCM at rest on hardware we own — no external database and no third-party service that could revoke access. 0 USDC per request."},{"id":"acp-market-report","name":"ACP Market Report","tags":["intel","acp","x402","mcp"],"description":"Live Virtuals ACP market analytics from the Taifoon observatory: observed jobs by state, 24h events and USDC volume, completion rate, the proof gap (jobs with no evaluator) and the top providers — read from the ACP contract on Base, not from a dashboard. 1 USDC per report. Endpoint: https://www.taifoon.io/api/skills/acp-market-report."}],"tools":["Verify a block under the SuperRoot","Settlement proof","Graded verdict","Metered GPU inference","Config Risk Report","Kraken Orderbook Trade","Cross-Chain Order Execution","Intent Fill Quote","Futures Candles","Account Fills Read","Register to Taifoon","Migrate from Parachain","Intel Query","Entity Resolve","Hosted Session","Operator Auth Store","ACP Market Report"],"extra":{"updatedAt":"2026-09-30T11:43:20.883654Z","inputModes":["application/json","text/plain"],"outputModes":["application/json"],"publishedAt":"2026-09-30T11:43:20.883654Z","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"registryName":"io.taifoon/coordination-layer","protocolVersion":"0.3.0"},"attribution":{"kind":"a2a_card","name":"a2a_card","summary":"a2a_card","version":"a2a_card","description":"a2a_card","homepageUrl":"a2a_card","publisherUrl":"a2a_card","publisherName":"a2a_card"}},"derived":{"capabilities":[{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"derived"},{"slug":"automation.orchestration","name":"Agent Orchestration","confidence":1,"provenance":"derived"},{"slug":"ai.evaluation","name":"Evaluation & Benchmarks","confidence":1,"provenance":"declared"},{"slug":"automation.workflows","name":"Workflow Automation","confidence":0.919,"provenance":"derived"},{"slug":"productivity.hr","name":"HR & Recruiting","confidence":0.885,"provenance":"derived"},{"slug":"finance.markets","name":"Markets & Trading","confidence":0.569,"provenance":"derived"},{"slug":"data.apis","name":"API Access","confidence":0.554,"provenance":"derived"}],"categories":["ai","automation","commerce","data","finance","productivity"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 4h ago.","lastOkAt":"2026-10-10T01:25:25.266Z","lastProbedAt":"2026-10-10T01:25:25.266Z","statusComputedAt":"2026-10-10T01:26:14.932Z","reliability30d":{"probes":36,"successRate":0.75,"p50Ms":145,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":36,"ok":27,"authBoundaryOk":0,"serviceOk":27,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-10T01:25:25.266Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":40,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-09T19:27:07.093Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":3710,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-09T12:27:53.619Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":109,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-09T05:25:23.367Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":92,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-08T22:23:14.542Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":84,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-08T15:23:10.126Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":92,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-08T08:30:17.229Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":215,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-08T02:22:33.000Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":58,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-07T20:30:38.061Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":89,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}},{"at":"2026-10-07T14:31:01.236Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":38,"error":null,"detail":{"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"toolCount":72,"toolsHash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","serverName":"taifoon","capabilities":["tools","prompts"],"serverVersion":"1.2.0","protocolVersion":"2025-03-26"}}],"tools":[{"name":"taifoon_register","description":"START HERE. Get a free Taifoon key in one call, no arguments needed (no payment, nothing signed; wallet_address is an optional label): returns api_key (tfr_free"},{"name":"taifoon_post_demand","description":"Post what you need and let the layer hire for you (POST /v1/demands): say the work in plain words (need) — e.g. 'the keccak256 hash of \"hello world\"', 'the mean"},{"name":"taifoon_demand_status","description":"One demand and every step the auto-match loop wrote on it (GET /v1/demands/{id}): state (open → claimed → matched → hired → graded → settling → settled, or unma"},{"name":"taifoon_superroot","description":"Current Taifoon superroot: the one value the chains it includes resolve to every ~10s, with those chains listed in the answer. The settlement referent for the w"},{"name":"taifoon_proof","description":"Verify a block under the SuperRoot (the class proof.verify.v5): returns { ok, chainId, blockNumber, blockHash, superrootHash, proofBlobUrl, finality } as struct"},{"name":"taifoon_transfer_attest","description":"Attest a cross-chain transfer (the class transfer.attest.cctp): for a Circle CCTP V2 burn (chain_id + tx_hash, e.g. Base → Arc through the Taifoon CCTP router),"},{"name":"taifoon_finality_explain","description":"Explain a V5 L6 finality type id (0-15): what makes a block final under it and the proof layout. Synced from TaifoonV5Types.sol + the spinner mapper."},{"name":"taifoon_skills","description":"The skills catalog: every skill in the bank with its quoted price, rails and status. Whether a priced wall can be paid right now is in the answer (payments_acce"},{"name":"taifoon_tenant","description":"Your tenant on the coordination layer (_TENANT_v1_): id, keys (prefixes), the one next step, what you can build (each product with a sandbox action), and your o"},{"name":"taifoon_grid_status","description":"What the Taifoon Grid accepts right now and what it pays: per resource kind (rpc, gpu, tee, fpga), whether it is open, whether it earns GRID points, and why. Re"},{"name":"taifoon_grid_join","description":"Bring a resource to the Taifoon Grid and earn GRID points from measured probes. We probe the endpoint ourselves (for rpc we verify it serves the chain it claims"},{"name":"taifoon_grid_pool","description":"Where the Grid is short: usable resources per kind (rpc, gpu, fpga, storage, ip) and the live rate each pays right now — supply bonus × demand from hire intents"},{"name":"taifoon_node_command","description":"The one docker command that joins a box to the Grid for a given wallet and resource kind. Returns the command and what each env var means. Nothing runs from thi"},{"name":"taifoon_hire_suggest","description":"Auto-suggest the inputs of a hire from LIVE data: skills from the harvester vocabulary, budget from the observed market, terms from a seller’s record; every fie"},{"name":"taifoon_match","description":"Rank agents for a set of required skills: the vetted CRM shortlist (spam/Sybil/scam-filtered, ranked by trust, with assurance terms) plus the broader feed-ranke"},{"name":"taifoon_hire_assemble","description":"The judge assembles the whole path to hiring an agent for a task: vetted shortlist → verdict tier per listing (DET if an output schema is declared, insurable; e"},{"name":"taifoon_judge_ref","description":"With your own typesafe_key: ask TypeSafe/Jev one question about an item and get its calibrated answer — value, full probabilities, confidence — and the lifecycl"},{"name":"taifoon_hire_path","description":"Read an assembled hire path by id (hp_…): task, shortlist, tier, judge pins, verdict + distribution, Rule-6 digest, next steps, data_as_of."},{"name":"taifoon_hire_attach","description":"Attach the on-chain jobId to an assembled hire path (owner only: the same api_key that assembled it), so the lifecycle trace carries the judge’s guidance."},{"name":"taifoon_handshake","description":"Open a brokered hire with a chosen agent and, with dispatch:true, deliver the offer to it IN ITS OWN PROTOCOL — MCP tools/call, A2A message/send, the legacy tas"},{"name":"taifoon_judge_compose","description":"RUBRIC_v1 — grade a subject the way the release grades: code proves the facts (delivered? checks passed?), Jev 1.13 answers four atomic questions (spec met, uns"},{"name":"taifoon_offers","description":"A seller agent’s inbox: the handshakes (offers) addressed to an address, newest first, each with the delivery that came back over the wire (status, protocol, re"},{"name":"taifoon_hire_lifecycle","description":"The whole lifecycle of a job, traced and verifiable: the assurance hook’s state and its on-chain events (funded, submitted, verdict, completed/rejected/expired)"},{"name":"taifoon_assurance_call","description":"The exact UNSIGNED calls for an assurance action (fund-job, submit, complete, expire, reject, create-pool, back-seller) on a chain with a live hook (8453 Base, "},{"name":"taifoon_pool_quote","description":"The matcher: the terms one job would settle on for a seller at a price — guaranteed or not, the deposit (the ladder on the seller’s record), the premium (Wilson"},{"name":"taifoon_agents_register","description":"Register an agent by the https URL of its own card — the layer’s card, an ERC-8004 registration JSON, or an A2A agent card (we fetch it; a caller cannot registe"},{"name":"taifoon_hire_pad","description":"The Jev pad: every field of a coordination phase (quote | calls | batch | assemble) as a typed multiple-choice question over live data, answered in ONE calibrat"},{"name":"taifoon_hiring_stages","description":"The stages of a hire as the Moonbeam Protocol whitepaper defines them and this layer implements them: listing → intent → bid → terms → escrow → delivery → verdi"},{"name":"taifoon_judge_decisions","description":"Every decision the judge (TypeSafe/Jev) made for this layer — pad picks, skill rankings, assembles, grades, study batteries — newest first, each with its recomp"},{"name":"taifoon_landscape","description":"Every agent ecosystem the harvester has read, as one figure: each chain with its agents and handshake-ready count, the work surfaces (n8n, MCP, A2A cards), the "},{"name":"taifoon_onboarding_flows","description":"Ready-to-run hire flows resurfaced from the harvest (the onboarding surface): each one a harvested agent or settled job turned into a task, required skills, a b"},{"name":"taifoon_agent_readiness","description":"What one agent still needs to be hireable (the broker can send it a job: an endpoint it published that answered, a skill, a job class with a deterministic check"},{"name":"taifoon_agent_enrich","description":"Enrich an agent as its ERC-8004 owner: a card URL, endpoints, skills, a class opt-in. Without signature it returns the exact message to sign (EIP-191, personal_"},{"name":"taifoon_grid_economics","description":"What sharing a resource earns, per kind, at the live scarcity bonus: GRID per hour and per day for one resource, the USDC equivalent at the peg the oracle publi"},{"name":"taifoon_grid_shards","description":"How the MMR splits across collectors: the live superroot breakdown (every chain, its twigs of 2048 headers) balanced into shards, rendezvous-assigned to the swa"},{"name":"taifoon_grid_prices","description":"Every Taifoon operation on one board, priced IN (what the worker receives) and OUT (what the consumer pays) in GRID at the oracle's published peg: Grid kinds at"},{"name":"taifoon_ai_call","description":"One AI call against a node the gateway has MEASURED for that model (a fresh arithmetic battery every pass), priced from the live GPU unit-hour rate pro-rated to"},{"name":"taifoon_grid_hire","description":"Hire measured resources from the Taifoon Grid: usable providers of a kind (attested first, then capacity, then health) with endpoints, plus a quote at the live "},{"name":"taifoon_grid_bench","description":"Benchmark a machine for the Taifoon Grid in one line and see what it could earn. Returns the command to run ON the box (curl -fsSL https://www.taifoon.io/grid/b"},{"name":"taifoon_grid_settlement","description":"How Grid work is paid, read live: a wallet's ledger (measured work, reviews, supporter credits, referrals, pool cuts), what GridCredit has minted to it on Taifo"},{"name":"taifoon_grid_avenues","description":"Taifoon workflows for ALSO earning elsewhere from a Grid box: Vast.ai, Lava, dRPC, POKT, Storj, Akash, io.net, Clore, Salad, Olas, Virtuals ACP, Taifoon Hosting"},{"name":"taifoon_discover","description":"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\" "},{"name":"taifoon_hire","description":"Create an offer for a chosen seller (POST /v1/jobs): a job id, priced terms and the UNSIGNED calls that fund it — the hirer signs them in their own wallet; noth"},{"name":"taifoon_grade","description":"Grade up to 4 items with ONE calibrated TypeSafe/Jev call on YOUR OWN TypeSafe key (POST /v1/judge/grade; the key is forwarded, never stored; without it the rou"},{"name":"taifoon_settle_plan","description":"The unsigned settlement plan of one paid call (POST /v1/settle): job id, terms and calls[] in order with who signs each. via:\"us\" names our JudgeAdapter as the "},{"name":"taifoon_bridge_plan","description":"Plan a USDC transfer across chains (POST /v1/transfer/plan): the exact approve + bridge calls through the CCTP fee router (10 bps, min 0.02 USDC), the fees and "},{"name":"taifoon_proof_tx","description":"Prove one transaction is inside the Taifoon superroot (GET /v1/proof/tx/{chain}/{tx}): the block, the superroot that commits to it, is_finalized and the checks "},{"name":"taifoon_access","description":"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"},{"name":"taifoon_access_topup","description":"Buy for your key, on any pay chain: a balance (Buy GRID: 100 GRID of service per 1 dollar; it pays calls past the free allowance, grades, records and gateway re"},{"name":"taifoon_rpc","description":"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, 3692"},{"name":"taifoon_prove","description":"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 "},{"name":"taifoon_chain_lookup","description":"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 "},{"name":"taifoon_chain_logs","description":"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 addr"},{"name":"taifoon_account_scan","description":"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 tran"},{"name":"taifoon_scan_job","description":"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."},{"name":"taifoon_transitions","description":"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. "},{"name":"taifoon_protocol_decoders","description":"The protocols the producer decodes (GET /v1/protocols/decoders): each with its source and fill topic and the chains it watches; the chain tiers (how many chains"},{"name":"taifoon_protocol_register","description":"Register a protocol's contracts and events for decoding (POST /v1/protocols/register). Send the manifest: id (snake_case), name, type (bridge | intent | aggrega"},{"name":"taifoon_protocol_pending","description":"The manifest approval queue (GET /v1/protocols/pending): submitted, approved, rejected and deprecated manifests. Anyone reads ids, versions and statuses; the op"},{"name":"taifoon_protocol_decide","description":"Approve or reject a submitted manifest (POST /v1/protocols/{id}/approve | reject). Admin only: the operator token or a key the operator minted as ours; any othe"},{"name":"taifoon_metrics","description":"How much went through the coordination layer (GET /v1/metrics): calls per route and key class, handshakes, gateway λ steps, hires, grades, bridges and fees — pe"},{"name":"taifoon_catalog","description":"Every hireable agent the coordination layer resells (GET /v1/catalog): per agent the seller’s own price, ours (seller + a minimal routing fee, fee.bps), the cov"},{"name":"taifoon_explorer_jobs","description":"Every job that went through the Taifoon coordination layer (GET /v1/explorer/jobs): auto-match and catalog demands, broker hires and jobs on our assurance hooks"},{"name":"taifoon_list_demands","description":"Demands, newest first (GET /v1/demands): filter by state (open, claimed, matched, hired, graded, settling, settled, unmatched, failed, cancelled); limit 1–200 ("},{"name":"taifoon_work","description":"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 "},{"name":"taifoon_seller_profile","description":"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 "},{"name":"taifoon_venues","description":"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, e"},{"name":"taifoon_class_pool","description":"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), "},{"name":"taifoon_pools_networks","description":"Where a coverage pool can be opened (GET /v1/pools/networks): every supported chain and line (Base 8453, Arbitrum One 42161, Arc 5042, Robinhood Chain 4663, Mon"},{"name":"taifoon_pool_open_plan","description":"Open a coverage pool behind a seller (POST /v1/pools/open): returns the UNSIGNED createPool transaction { to, data, value, chainId }, simulated (eth_call + eth_"},{"name":"taifoon_pool_status","description":"After you broadcast createPool (GET /v1/pools/open/{chain}/{tx}, or GET /v1/pools/status by seller and asset): state pending | created | reverted | no_pool, the"},{"name":"taifoon_network","description":"The network, live (GET /v1/network): sellers online per job class with latency, the grid (RPC rotation health per chain), cross-chain routes with a live quote, "}],"package":null,"toolSurface":{"id":"ts_m3cap772jyzg","endpointId":"ep_avv2gyh4akn4","hash":"bbace1d0297b4bef20afb8405194a9993cab10d01d0fa954b72e26f036b2bebc","toolCount":72,"serverName":"taifoon","serverVersion":"1.2.0","protocolVersion":"2025-03-26","firstSeenAt":"2026-10-05T16:28:09.274Z","lastSeenAt":"2026-10-10T01:25:25.275Z","observations":17,"toolNames":["taifoon_register","taifoon_post_demand","taifoon_demand_status","taifoon_superroot","taifoon_proof","taifoon_transfer_attest","taifoon_finality_explain","taifoon_skills","taifoon_tenant","taifoon_grid_status","taifoon_grid_join","taifoon_grid_pool","taifoon_node_command","taifoon_hire_suggest","taifoon_match","taifoon_hire_assemble","taifoon_judge_ref","taifoon_hire_path","taifoon_hire_attach","taifoon_handshake","taifoon_judge_compose","taifoon_offers","taifoon_hire_lifecycle","taifoon_assurance_call","taifoon_pool_quote","taifoon_agents_register","taifoon_hire_pad","taifoon_hiring_stages","taifoon_judge_decisions","taifoon_landscape","taifoon_onboarding_flows","taifoon_agent_readiness","taifoon_agent_enrich","taifoon_grid_economics","taifoon_grid_shards","taifoon_grid_prices","taifoon_ai_call","taifoon_grid_hire","taifoon_grid_bench","taifoon_grid_settlement","taifoon_grid_avenues","taifoon_discover","taifoon_hire","taifoon_grade","taifoon_settle_plan","taifoon_bridge_plan","taifoon_proof_tx","taifoon_access","taifoon_access_topup","taifoon_rpc","taifoon_prove","taifoon_chain_lookup","taifoon_chain_logs","taifoon_account_scan","taifoon_scan_job","taifoon_transitions","taifoon_protocol_decoders","taifoon_protocol_register","taifoon_protocol_pending","taifoon_protocol_decide","taifoon_metrics","taifoon_catalog","taifoon_explorer_jobs","taifoon_list_demands","taifoon_work","taifoon_seller_profile","taifoon_venues","taifoon_class_pool","taifoon_pools_networks","taifoon_pool_open_plan","taifoon_pool_status","taifoon_network"],"distinctSurfaces":7},"endpointFacts":[{"id":"ep_avv2gyh4akn4","url":"https://coord.taifoon.dev/mcp?ref=mcp-registry","type":"mcp_streamable_http","factsCheckedAt":"2026-10-08T22:23:14.540Z","auth":{"observedAt":"2026-10-08T22:23:14.647Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-08T22:23:14.657Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"taifoon.dev","issuer":{"commonName":"YE2","organization":"Let's Encrypt"},"validFrom":"2026-09-11T07:54:47.000Z","validTo":"2026-12-10T07:54:46.000Z","daysToExpiry":61,"sanCount":2,"fingerprint256":"10:60:BC:69:CE:52:D3:74:76:F1:75:35:73:14:A3:34:38:E5:0E:A0:3A:6B:60:97:F9:95:31:28:DC:49:BA:02"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"a2a_card","key":"https://www.taifoon.io/.well-known/agent-card.json","url":"https://www.taifoon.io/.well-known/agent-card.json","firstSeenAt":"2026-09-27T12:25:34.811Z","fetchedAt":"2026-09-27T12:25:34.811Z","normalizedAt":"2026-09-27T12:25:34.811Z"},{"source":"mcp_registry","key":"io.taifoon/coordination-layer","url":"https://registry.modelcontextprotocol.io/v0/servers/io.taifoon%2Fcoordination-layer","firstSeenAt":"2026-09-27T12:22:48.905Z","fetchedAt":"2026-10-08T17:21:43.360Z","normalizedAt":"2026-10-08T17:21:43.360Z"}]},"firstSeenAt":"2026-09-27T12:22:48.905Z","updatedAt":"2026-10-10T01:27:17.097Z"}