{"ok":true,"tenant":"moonbeam","generated_at":"2026-10-05T09:33:18.000Z","age_s":239,"count":44,"counts":{"meets_rule":25,"one_step":19,"planned":44,"with_pool":25,"without_pool":19},"policy":{"pools":"the GLMR pools are not open during the pilot: no pool is created, backed or drawn by this plan","recording":"off by default","writes":"every call listed is unsigned and unsent; during the pilot the operator signs"},"items":[{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-4b33758d85","title":"Grade Seller 0x4b33758d85678ea86cd875af8caf318462268ba8","description":"Virtuals memo ACP seller. 2740 ruled paid jobs, 5 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"memo-acp","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x4b33758d85678ea86cd875af8caf318462268ba8","pool":"0x1986eb2f13c24aa58efe4e0d03b2418e4e4e2813"},"numbers":{"n":2740,"incorrect":5,"wilson_high":0.00426485786841298,"premium_pct":0.43,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-4b33758d85"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-4b33758d85","version":"d6978aa735c0","displayName":"Grade Seller 0x4b33758d85678ea86cd875af8caf318462268ba8","description":"Graded hire of 0x4b33758d85678ea86cd875af8caf318462268ba8 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x4b33758d85678ea86cd875af8caf318462268ba8/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x4b33758d85678ea86cd875af8caf318462268ba8\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x4b33758d85678ea86cd875af8caf318462268ba8\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-4b33758d85"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x1986eb2f13c24aa58efe4e0d03b2418e4e4e2813","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":2740,"incorrect":5,"wilson_low":0.0007796970114608734,"wilson_high":0.00426485786841298,"calibrated":true,"premium_pct":0.43,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x4b33758d85678ea86cd875af8caf318462268ba8 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x4b33758d85678ea86cd875af8caf318462268ba8 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0x4b33758d85678ea86cd875af8caf318462268ba8/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x4b33758d85678ea86cd875af8caf318462268ba8 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"2740 paid jobs ended with a ruling: 2735 correct, 5 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 2740, Wilson width 0.003 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 2740 ≥ 8, width 0.003 ≤ 0.35, failure 0.2% ≤ 20%, 563 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x1986EB2F13C24Aa58EFe4E0D03b2418E4e4E2813 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x1986EB2F13C24Aa58EFe4E0D03b2418E4e4E2813 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0x1986EB2F13C24Aa58EFe4E0D03b2418E4e4E2813 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x4b33758d85678ea86cd875af8caf318462268ba8","name":null,"source":"observatory seller record (2887 jobs on Base)"},{"role":"buyer","address":"0xc13c2462217f4a0b443a69362719bc4be0ebce27","name":null,"source":"7 jobs with this seller on Base"},{"role":"buyer","address":"0x16f4e24926411ac87a5151d14311b4d2e4b7ccb0","name":null,"source":"7 jobs with this seller on Base"},{"role":"buyer","address":"0x72f258d6d47d13e72e9f19f847761eb390dd8aee","name":null,"source":"7 jobs with this seller on Base"},{"role":"buyer","address":"0x4e2cf7967c28719d67a3640963eca8ee658f399e","name":null,"source":"7 jobs with this seller on Base"},{"role":"buyer","address":"0x7526600b9a063818bdf416a3056308d38d942868","name":null,"source":"7 jobs with this seller on Base"},{"role":"pool","address":"0x1986eb2f13c24aa58efe4e0d03b2418e4e4e2813","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x4b33758d85678ea86cd875af8caf318462268ba8/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x4b33758d85678ea86cd875af8caf318462268ba8"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals memo ACP events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":null},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x4b33758d85678ea86cd875af8caf318462268ba8","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x4b33758d85678ea86cd875af8caf318462268ba8"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-4e368c8d09","title":"Grade Trip plan seller","description":"BitAgent (ERC-8183) seller of Trip plan, Trip plan, Trip plan. 138 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"bitagent","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x4e368c8d099d68a6b87aa616e3db4940e0721d60","pool":"0xbcb28a0d217d848b220dded61d7e6c6e2b039bdb"},"numbers":{"n":138,"incorrect":0,"wilson_high":0.027082764465572957,"premium_pct":2.71,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-4e368c8d09"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-4e368c8d09","version":"5b382a8adac1","displayName":"Grade Trip plan seller","description":"Graded hire of 0x4e368c8d099d68a6b87aa616e3db4940e0721d60 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x4e368c8d099d68a6b87aa616e3db4940e0721d60/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x4e368c8d099d68a6b87aa616e3db4940e0721d60\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x4e368c8d099d68a6b87aa616e3db4940e0721d60\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-4e368c8d09"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xbcb28a0d217d848b220dded61d7e6c6e2b039bdb","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":138,"incorrect":0,"wilson_low":1.6877423686640273e-18,"wilson_high":0.027082764465572957,"calibrated":true,"premium_pct":2.71,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x4e368c8d099d68a6b87aa616e3db4940e0721d60 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x4e368c8d099d68a6b87aa616e3db4940e0721d60 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0x4e368c8d099d68a6b87aa616e3db4940e0721d60/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x4e368c8d099d68a6b87aa616e3db4940e0721d60 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"138 paid jobs ended with a ruling: 138 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 138, Wilson width 0.027 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 138 ≥ 8, width 0.027 ≤ 0.35, failure 0.0% ≤ 20%, 10 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xBcb28A0d217D848b220dDed61d7E6c6e2B039Bdb (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xBcb28A0d217D848b220dDed61d7E6c6e2B039Bdb holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0xBcb28A0d217D848b220dDed61d7E6c6e2B039Bdb has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x4e368c8d099d68a6b87aa616e3db4940e0721d60","name":null,"source":"observatory seller record (177 jobs on Base)"},{"role":"buyer","address":"0xc41c35cd98ed94b54a2adfcdf24a5574fdd0b5b8","name":null,"source":"23 jobs with this seller on Base"},{"role":"buyer","address":"0xb244cbf555a19bb22d5da74c78e48f43e1816ddc","name":null,"source":"21 jobs with this seller on Base"},{"role":"buyer","address":"0xf421ff09214d7375a9b8f8101a08c7eda2059e2c","name":null,"source":"21 jobs with this seller on Base"},{"role":"buyer","address":"0xe55264341f8ca910f3ea61e4f7c509f0ebe92a0c","name":null,"source":"19 jobs with this seller on Base"},{"role":"buyer","address":"0x17692dfc5f14164d552bf02773bdef67e7d1984e","name":null,"source":"19 jobs with this seller on Base"},{"role":"pool","address":"0xbcb28a0d217d848b220dded61d7e6c6e2b039bdb","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x4e368c8d099d68a6b87aa616e3db4940e0721d60/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x4e368c8d099d68a6b87aa616e3db4940e0721d60"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the BitAgent (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"trip_plan"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x4e368c8d099d68a6b87aa616e3db4940e0721d60","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x4e368c8d099d68a6b87aa616e3db4940e0721d60"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-7457b79912","title":"Grade Crypto news seller","description":"Virtuals ACP (ERC-8183) seller of Crypto news, Kol alpha, Token info. 117 ruled paid jobs, 8 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x7457b799121c9b8c51298d08f1c19f0186648c90","pool":"0xe9f09c431c51450013871bc0fa5ccebebd06f6fa"},"numbers":{"n":117,"incorrect":8,"wilson_high":0.12914242457717726,"premium_pct":12.91,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-7457b79912"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-7457b79912","version":"d9a2ee0a2206","displayName":"Grade Crypto news seller","description":"Graded hire of 0x7457b799121c9b8c51298d08f1c19f0186648c90 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x7457b799121c9b8c51298d08f1c19f0186648c90/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x7457b799121c9b8c51298d08f1c19f0186648c90\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x7457b799121c9b8c51298d08f1c19f0186648c90\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-7457b79912"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xe9f09c431c51450013871bc0fa5ccebebd06f6fa","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":117,"incorrect":8,"wilson_low":0.03505171056757551,"wilson_high":0.12914242457717726,"calibrated":true,"premium_pct":12.91,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x7457b799121c9b8c51298d08f1c19f0186648c90 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x7457b799121c9b8c51298d08f1c19f0186648c90 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0x7457b799121c9b8c51298d08f1c19f0186648c90/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x7457b799121c9b8c51298d08f1c19f0186648c90 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"117 paid jobs ended with a ruling: 109 correct, 8 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 117, Wilson width 0.094 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 117 ≥ 8, width 0.094 ≤ 0.35, failure 6.8% ≤ 20%, 29 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xe9F09C431c51450013871Bc0fa5cCEBEBD06F6fa (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xe9F09C431c51450013871Bc0fa5cCEBEBD06F6fa holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0xe9F09C431c51450013871Bc0fa5cCEBEBD06F6fa has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x7457b799121c9b8c51298d08f1c19f0186648c90","name":null,"source":"observatory seller record (6146 jobs on Base)"},{"role":"buyer","address":"0x12b5d81cdbe234de287cf45061f5e56f3ceb37dc","name":null,"source":"5969 jobs with this seller on Base"},{"role":"buyer","address":"0xe5484de53b74299f52eaed48fb39a0fd29e9295e","name":null,"source":"93 jobs with this seller on Base"},{"role":"buyer","address":"0xf9fb5dfcbbef68cb470db0153e94ba4817625ceb","name":null,"source":"19 jobs with this seller on Base"},{"role":"buyer","address":"0x2296ccd9db7d2d36a90b183327defa3cef0d17c6","name":null,"source":"7 jobs with this seller on Base"},{"role":"buyer","address":"0xc274243bdfb988f0fc0766f214d2ef66e0b8c6f4","name":null,"source":"6 jobs with this seller on Base"},{"role":"pool","address":"0xe9f09c431c51450013871bc0fa5ccebebd06f6fa","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x7457b799121c9b8c51298d08f1c19f0186648c90/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x7457b799121c9b8c51298d08f1c19f0186648c90"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"crypto_news"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x7457b799121c9b8c51298d08f1c19f0186648c90","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x7457b799121c9b8c51298d08f1c19f0186648c90"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-595e85dbf1","title":"Grade List trending topics seller","description":"BitAgent (ERC-8183) seller of List trending topics. 104 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"bitagent","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x595e85dbf16abb8ed7daf34bb5be1e55bb557901","pool":"0x526921d1a0e8bd91013fede226eb148c58ec6d90"},"numbers":{"n":104,"incorrect":0,"wilson_high":0.03562135437245191,"premium_pct":3.56,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-595e85dbf1"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-595e85dbf1","version":"bc1545dfe270","displayName":"Grade List trending topics seller","description":"Graded hire of 0x595e85dbf16abb8ed7daf34bb5be1e55bb557901 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x595e85dbf16abb8ed7daf34bb5be1e55bb557901/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x595e85dbf16abb8ed7daf34bb5be1e55bb557901\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"34090909000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x595e85dbf16abb8ed7daf34bb5be1e55bb557901\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"34090909000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-595e85dbf1"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x526921d1a0e8bd91013fede226eb148c58ec6d90","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":104,"incorrect":0,"wilson_low":0,"wilson_high":0.03562135437245191,"calibrated":true,"premium_pct":3.56,"price":"34090909000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x595e85dbf16abb8ed7daf34bb5be1e55bb557901 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x595e85dbf16abb8ed7daf34bb5be1e55bb557901 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0x595e85dbf16abb8ed7daf34bb5be1e55bb557901/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x595e85dbf16abb8ed7daf34bb5be1e55bb557901 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"104 paid jobs ended with a ruling: 104 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 104, Wilson width 0.036 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 104 ≥ 8, width 0.036 ≤ 0.35, failure 0.0% ≤ 20%, 10 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x526921D1a0e8BD91013fede226Eb148C58EC6d90 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x526921D1a0e8BD91013fede226Eb148C58EC6d90 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0x526921D1a0e8BD91013fede226Eb148C58EC6d90 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x595e85dbf16abb8ed7daf34bb5be1e55bb557901","name":null,"source":"observatory seller record (148 jobs on Base)"},{"role":"buyer","address":"0xf421ff09214d7375a9b8f8101a08c7eda2059e2c","name":null,"source":"20 jobs with this seller on Base"},{"role":"buyer","address":"0xb3c00b5ef2e50bb7a1f0ebddad7f556ab92faa68","name":null,"source":"19 jobs with this seller on Base"},{"role":"buyer","address":"0xe55264341f8ca910f3ea61e4f7c509f0ebe92a0c","name":null,"source":"18 jobs with this seller on Base"},{"role":"buyer","address":"0xe76f3881920fdaf02dd30a8fabf91aed843afd92","name":null,"source":"17 jobs with this seller on Base"},{"role":"buyer","address":"0xb244cbf555a19bb22d5da74c78e48f43e1816ddc","name":null,"source":"16 jobs with this seller on Base"},{"role":"pool","address":"0x526921d1a0e8bd91013fede226eb148c58ec6d90","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x595e85dbf16abb8ed7daf34bb5be1e55bb557901/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x595e85dbf16abb8ed7daf34bb5be1e55bb557901"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the BitAgent (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"list_trending_topics"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x595e85dbf16abb8ed7daf34bb5be1e55bb557901","chainId":8453,"tenant":"moonbeam","price":"34090909000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x595e85dbf16abb8ed7daf34bb5be1e55bb557901"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-59040a348c","title":"Grade Image and meme gen seller","description":"Virtuals ACP (ERC-8183) seller of Image and meme gen, AskAnythingAiYourInstantResearchAssistant. 99 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x59040a348cfa3f5e19bd2c9438965ad5b41c5635","pool":"0x4e527e612c8a638f940407939c2ec300d2295602"},"numbers":{"n":99,"incorrect":0,"wilson_high":0.03735321206782739,"premium_pct":3.74,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-59040a348c"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-59040a348c","version":"43ad2cde692b","displayName":"Grade Image and meme gen seller","description":"Graded hire of 0x59040a348cfa3f5e19bd2c9438965ad5b41c5635 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x59040a348cfa3f5e19bd2c9438965ad5b41c5635/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x59040a348cfa3f5e19bd2c9438965ad5b41c5635\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"17045455000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x59040a348cfa3f5e19bd2c9438965ad5b41c5635\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"17045455000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-59040a348c"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x4e527e612c8a638f940407939c2ec300d2295602","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":99,"incorrect":0,"wilson_low":0,"wilson_high":0.03735321206782739,"calibrated":true,"premium_pct":3.74,"price":"17045455000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x59040a348cfa3f5e19bd2c9438965ad5b41c5635 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x59040a348cfa3f5e19bd2c9438965ad5b41c5635 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192807,"source":"/v1/agents/8453/0x59040a348cfa3f5e19bd2c9438965ad5b41c5635/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x59040a348cfa3f5e19bd2c9438965ad5b41c5635 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"99 paid jobs ended with a ruling: 99 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 99, Wilson width 0.037 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 99 ≥ 8, width 0.037 ≤ 0.35, failure 0.0% ≤ 20%, 3 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x4E527E612c8a638f940407939C2EC300d2295602 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x4E527E612c8a638f940407939C2EC300d2295602 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0x4E527E612c8a638f940407939C2EC300d2295602 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x59040a348cfa3f5e19bd2c9438965ad5b41c5635","name":null,"source":"observatory seller record (107 jobs on Base)"},{"role":"buyer","address":"0x8a0dbbd57259147de681899f006b69cc174beeb2","name":null,"source":"104 jobs with this seller on Base"},{"role":"buyer","address":"0x5320793ac6cbb09fc279226555d0746de55d0874","name":null,"source":"2 jobs with this seller on Base"},{"role":"buyer","address":"0x5d5d09be16c2fd04bcba913f4e1659f9572b8e33","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0x4e527e612c8a638f940407939c2ec300d2295602","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x59040a348cfa3f5e19bd2c9438965ad5b41c5635/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x59040a348cfa3f5e19bd2c9438965ad5b41c5635"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"image_and_meme_gen"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x59040a348cfa3f5e19bd2c9438965ad5b41c5635","chainId":8453,"tenant":"moonbeam","price":"17045455000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x59040a348cfa3f5e19bd2c9438965ad5b41c5635"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-c9e8b04cef","title":"Grade Crypto price query seller","description":"BitAgent (ERC-8183) seller of Crypto price query, Crypto price query. 98 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"bitagent","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xc9e8b04cef1479661bbbe5080722567f910a7210","pool":"0xcefe1c14b2e0b498ccad5ecdecdad40872d402d1"},"numbers":{"n":98,"incorrect":0,"wilson_high":0.03771999012168061,"premium_pct":3.77,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-c9e8b04cef"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-c9e8b04cef","version":"b07d20e8a0bf","displayName":"Grade Crypto price query seller","description":"Graded hire of 0xc9e8b04cef1479661bbbe5080722567f910a7210 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xc9e8b04cef1479661bbbe5080722567f910a7210/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xc9e8b04cef1479661bbbe5080722567f910a7210\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xc9e8b04cef1479661bbbe5080722567f910a7210\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-c9e8b04cef"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xcefe1c14b2e0b498ccad5ecdecdad40872d402d1","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":98,"incorrect":0,"wilson_low":3.338579447198229e-18,"wilson_high":0.03771999012168061,"calibrated":true,"premium_pct":3.77,"price":"11363636000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xc9e8b04cef1479661bbbe5080722567f910a7210 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xc9e8b04cef1479661bbbe5080722567f910a7210 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0xc9e8b04cef1479661bbbe5080722567f910a7210/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xc9e8b04cef1479661bbbe5080722567f910a7210 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"98 paid jobs ended with a ruling: 98 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 98, Wilson width 0.038 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 98 ≥ 8, width 0.038 ≤ 0.35, failure 0.0% ≤ 20%, 10 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xCEFe1c14b2e0b498CCAd5ecDEcdad40872D402D1 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xCEFe1c14b2e0b498CCAd5ecDEcdad40872D402D1 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0xCEFe1c14b2e0b498CCAd5ecDEcdad40872D402D1 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xc9e8b04cef1479661bbbe5080722567f910a7210","name":null,"source":"observatory seller record (161 jobs on Base)"},{"role":"buyer","address":"0x2ec64efbe4a4163764a37347c5a4236779d28a48","name":null,"source":"23 jobs with this seller on Base"},{"role":"buyer","address":"0xf421ff09214d7375a9b8f8101a08c7eda2059e2c","name":null,"source":"22 jobs with this seller on Base"},{"role":"buyer","address":"0xe55264341f8ca910f3ea61e4f7c509f0ebe92a0c","name":null,"source":"21 jobs with this seller on Base"},{"role":"buyer","address":"0x181706e7793a45add05e5e86aa4d25aeccda94ff","name":null,"source":"15 jobs with this seller on Base"},{"role":"buyer","address":"0xb244cbf555a19bb22d5da74c78e48f43e1816ddc","name":null,"source":"14 jobs with this seller on Base"},{"role":"pool","address":"0xcefe1c14b2e0b498ccad5ecdecdad40872d402d1","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xc9e8b04cef1479661bbbe5080722567f910a7210/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xc9e8b04cef1479661bbbe5080722567f910a7210"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the BitAgent (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"crypto_price_query"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xc9e8b04cef1479661bbbe5080722567f910a7210","chainId":8453,"tenant":"moonbeam","price":"11363636000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xc9e8b04cef1479661bbbe5080722567f910a7210"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-1112889be8","title":"Grade US Stock Analyst Agent","description":"BitAgent (ERC-8183) seller of Equity research. 88 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"bitagent","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x1112889be806840a66419ea1e8d4dd21852993e5","pool":"0x18d4733d98e81cdbcb1e96aedb23dda6025bab08"},"numbers":{"n":88,"incorrect":0,"wilson_high":0.0418270666648922,"premium_pct":4.18,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-1112889be8"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-1112889be8","version":"abc688688fc9","displayName":"Grade US Stock Analyst Agent","description":"Graded hire of 0x1112889be806840a66419ea1e8d4dd21852993e5 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/59049/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x1112889be806840a66419ea1e8d4dd21852993e5\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"170454545000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x1112889be806840a66419ea1e8d4dd21852993e5\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"170454545000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-1112889be8"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x18d4733d98e81cdbcb1e96aedb23dda6025bab08","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":88,"incorrect":0,"wilson_low":0,"wilson_high":0.0418270666648922,"calibrated":true,"premium_pct":4.18,"price":"170454545000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["First delivery graded (facts + Jev): Hireable. No delivery has been graded yet, and nothing is sent to it on its own: a first graded delivery follows a buyer’s hire (POST /v1/handshake) and the grade asked for it (POST /v1/judge/compose)."],"next":{"step":"graded","who":"buyer","why":"Hireable. No delivery has been graded yet, and nothing is sent to it on its own: a first graded delivery follows a buyer’s hire (POST /v1/handshake) and the grade asked for it (POST /v1/judge/compose)."},"read_at":1791192807,"source":"/v1/agents/8453/59049/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"ok","title":"Identity on chain (ERC-8004 registration)","who":null,"why":"Registered on chain 8453; owner 0x1112889be806840a66419ea1e8d4dd21852993e5."},{"id":"card","n":2,"pilot":null,"status":"ok","title":"A registration card that can be read","who":null,"why":"The registration card was read at https://bitagent.s3.ap-southeast-1.amazonaws.com/0x1112889BE806840a66419ea1e8D4dd21852993E5/.well-known/agent-card.json."},{"id":"endpoint","n":3,"pilot":null,"status":"ok","title":"An endpoint the broker may call","who":null,"why":"Endpoint published at api.bitagent.io (a2a; in the card)."},{"id":"probe","n":4,"pilot":null,"status":"ok","title":"The endpoint answered the probe","who":null,"why":"Answered in a2a at 2026-10-05 02:58 UTC (harvester)."},{"id":"skills","n":5,"pilot":null,"status":"ok","title":"Skills, declared or derived","who":null,"why":"1 skill declared in its card."},{"id":"class","n":6,"pilot":null,"status":"ok","title":"A job class with a deterministic check","who":null,"why":"Class wire.reply: its deterministic check judges the reply before Jev is asked."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"Hireable. No delivery has been graded yet, and nothing is sent to it on its own: a first graded delivery follows a buyer’s hire (POST /v1/handshake) and the grade asked for it (POST /v1/judge/compose)."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"88 paid jobs ended with a ruling: 88 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 88, Wilson width 0.042 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 88 ≥ 8, width 0.042 ≤ 0.35, failure 0.0% ≤ 20%, 10 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x18D4733d98e81cdBCB1e96AEDb23Dda6025BAB08 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x18D4733d98e81cdBCB1e96AEDb23Dda6025BAB08 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0x18D4733d98e81cdBCB1e96AEDb23Dda6025BAB08 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"hireable"},"participants":[{"role":"seller","address":"0x1112889be806840a66419ea1e8d4dd21852993e5","name":"US Stock Analyst Agent","source":"observatory seller record (148 jobs on Base)"},{"role":"buyer","address":"0xf421ff09214d7375a9b8f8101a08c7eda2059e2c","name":null,"source":"21 jobs with this seller on Base"},{"role":"buyer","address":"0x2ec64efbe4a4163764a37347c5a4236779d28a48","name":null,"source":"16 jobs with this seller on Base"},{"role":"buyer","address":"0x181706e7793a45add05e5e86aa4d25aeccda94ff","name":null,"source":"16 jobs with this seller on Base"},{"role":"buyer","address":"0xc41c35cd98ed94b54a2adfcdf24a5574fdd0b5b8","name":null,"source":"15 jobs with this seller on Base"},{"role":"buyer","address":"0x17692dfc5f14164d552bf02773bdef67e7d1984e","name":null,"source":"15 jobs with this seller on Base"},{"role":"pool","address":"0x18d4733d98e81cdbcb1e96aedb23dda6025bab08","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/59049/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x1112889be806840a66419ea1e8d4dd21852993e5"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":"the endpoint on the seller’s card"},"det":{"catalogue":"ok","catalogue_why":null,"det":"a reply came back && it is not a protocol error or a tool isError && its result is non-empty && (the offer nonce is echoed, where the protocol carries it back)","det_source":"class wire.reply (GET /v1/classes)","id":"wire.reply","kind":"equity_research"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x1112889be806840a66419ea1e8d4dd21852993e5","chainId":8453,"tenant":"moonbeam","price":"170454545000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x1112889be806840a66419ea1e8d4dd21852993e5"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-f7fb7ff8c0","title":"Grade Tweet Writer Agent","description":"BitAgent (ERC-8183) seller of Tweet draft, Tweet draft, Tweet draft. 83 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"bitagent","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xf7fb7ff8c0cff4e49f66dfd46ae54fd2f1cee19f","pool":"0xeaaaca679f608189032b774339d96e6ef537ea95"},"numbers":{"n":83,"incorrect":0,"wilson_high":0.04423530964197384,"premium_pct":4.42,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-f7fb7ff8c0"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-f7fb7ff8c0","version":"6b853807eb28","displayName":"Grade Tweet Writer Agent","description":"Graded hire of 0xf7fb7ff8c0cff4e49f66dfd46ae54fd2f1cee19f on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/59048/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xf7fb7ff8c0cff4e49f66dfd46ae54fd2f1cee19f\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"22727273000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xf7fb7ff8c0cff4e49f66dfd46ae54fd2f1cee19f\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"22727273000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-f7fb7ff8c0"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xeaaaca679f608189032b774339d96e6ef537ea95","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":83,"incorrect":0,"wilson_low":3.315974891747544e-18,"wilson_high":0.04423530964197384,"calibrated":true,"premium_pct":4.42,"price":"22727273000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":[],"next":{"step":"funded","who":"pool","why":"Pool 0xeAAACa679F608189032b774339d96e6Ef537EA95 holds 0 GLMR free, less than the reference price."},"read_at":1791192808,"source":"/v1/agents/8453/59048/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"ok","title":"Identity on chain (ERC-8004 registration)","who":null,"why":"Registered on chain 8453; owner 0xf7fb7ff8c0cff4e49f66dfd46ae54fd2f1cee19f."},{"id":"card","n":2,"pilot":null,"status":"ok","title":"A registration card that can be read","who":null,"why":"The registration card was read at https://bitagent.s3.ap-southeast-1.amazonaws.com/0xf7fb7Ff8C0cfF4e49F66Dfd46Ae54FD2F1cEe19F/.well-known/agent-card.json."},{"id":"endpoint","n":3,"pilot":null,"status":"ok","title":"An endpoint the broker may call","who":null,"why":"Endpoint published at api.bitagent.io (a2a; in the card)."},{"id":"probe","n":4,"pilot":null,"status":"ok","title":"The endpoint answered the probe","who":null,"why":"Answered in a2a at 2026-10-05 02:58 UTC (harvester)."},{"id":"skills","n":5,"pilot":null,"status":"ok","title":"Skills, declared or derived","who":null,"why":"1 skill declared in its card."},{"id":"class","n":6,"pilot":null,"status":"ok","title":"A job class with a deterministic check","who":null,"why":"Class text.tweet, wire.reply: its deterministic check judges the reply before Jev is asked."},{"id":"graded","n":7,"pilot":null,"status":"ok","title":"First delivery graded (facts + Jev)","who":null,"why":"5 graded deliveries on record."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"83 paid jobs ended with a ruling: 83 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 83, Wilson width 0.044 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 83 ≥ 8, width 0.044 ≤ 0.35, failure 0.0% ≤ 20%, 10 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xeAAACa679F608189032b774339d96e6Ef537EA95 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xeAAACa679F608189032b774339d96e6Ef537EA95 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0xeAAACa679F608189032b774339d96e6Ef537EA95 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"hireable"},"participants":[{"role":"seller","address":"0xf7fb7ff8c0cff4e49f66dfd46ae54fd2f1cee19f","name":"Tweet Writer Agent","source":"observatory seller record (130 jobs on Base)"},{"role":"buyer","address":"0xf4a06f62ba8566e94a109ce60226470027f0a84b","name":null,"source":"21 jobs with this seller on Base"},{"role":"buyer","address":"0xe55264341f8ca910f3ea61e4f7c509f0ebe92a0c","name":null,"source":"19 jobs with this seller on Base"},{"role":"buyer","address":"0xb3c00b5ef2e50bb7a1f0ebddad7f556ab92faa68","name":null,"source":"15 jobs with this seller on Base"},{"role":"buyer","address":"0xe76f3881920fdaf02dd30a8fabf91aed843afd92","name":null,"source":"15 jobs with this seller on Base"},{"role":"buyer","address":"0xf421ff09214d7375a9b8f8101a08c7eda2059e2c","name":null,"source":"14 jobs with this seller on Base"},{"role":"pool","address":"0xeaaaca679f608189032b774339d96e6ef537ea95","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/59048/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xf7fb7ff8c0cff4e49f66dfd46ae54fd2f1cee19f"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":"the endpoint on the seller’s card"},"det":{"catalogue":"ok","catalogue_why":null,"det":"a reply came back and is not a protocol error && the agent’s own answer is at most the task’s limit in characters (within_length_limit) && every item quoted after \"Must include:\" is in it (required_items_present)","det_source":"class text.tweet (GET /v1/classes)","id":"text.tweet","kind":"tweet_draft"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xf7fb7ff8c0cff4e49f66dfd46ae54fd2f1cee19f","chainId":8453,"tenant":"moonbeam","price":"22727273000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xf7fb7ff8c0cff4e49f66dfd46ae54fd2f1cee19f"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-269d781534","title":"Grade Weather query seller","description":"BitAgent (ERC-8183) seller of Weather query, Weather query, Weather query. 78 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"bitagent","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x269d78153496b2c32b67780c65f2c008bab3c18b","pool":"0x235a5f7cbec4efe9d9540c6d7c8a6bf6078b0c5e"},"numbers":{"n":78,"incorrect":0,"wilson_high":0.04693780971219429,"premium_pct":4.69,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-269d781534"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-269d781534","version":"a72dc54cfa32","displayName":"Grade Weather query seller","description":"Graded hire of 0x269d78153496b2c32b67780c65f2c008bab3c18b on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x269d78153496b2c32b67780c65f2c008bab3c18b/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x269d78153496b2c32b67780c65f2c008bab3c18b\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"22727273000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x269d78153496b2c32b67780c65f2c008bab3c18b\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"22727273000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-269d781534"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x235a5f7cbec4efe9d9540c6d7c8a6bf6078b0c5e","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":78,"incorrect":0,"wilson_low":0,"wilson_high":0.04693780971219429,"calibrated":true,"premium_pct":4.69,"price":"22727273000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x269d78153496b2c32b67780c65f2c008bab3c18b owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x269d78153496b2c32b67780c65f2c008bab3c18b owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0x269d78153496b2c32b67780c65f2c008bab3c18b/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x269d78153496b2c32b67780c65f2c008bab3c18b owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"78 paid jobs ended with a ruling: 78 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 78, Wilson width 0.047 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 78 ≥ 8, width 0.047 ≤ 0.35, failure 0.0% ≤ 20%, 10 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x235A5F7cbEC4EFe9d9540C6d7c8a6BF6078B0c5E (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x235A5F7cbEC4EFe9d9540C6d7c8a6BF6078B0c5E holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0x235A5F7cbEC4EFe9d9540C6d7c8a6BF6078B0c5E has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x269d78153496b2c32b67780c65f2c008bab3c18b","name":null,"source":"observatory seller record (141 jobs on Base)"},{"role":"buyer","address":"0xf4a06f62ba8566e94a109ce60226470027f0a84b","name":null,"source":"18 jobs with this seller on Base"},{"role":"buyer","address":"0x181706e7793a45add05e5e86aa4d25aeccda94ff","name":null,"source":"18 jobs with this seller on Base"},{"role":"buyer","address":"0xf421ff09214d7375a9b8f8101a08c7eda2059e2c","name":null,"source":"16 jobs with this seller on Base"},{"role":"buyer","address":"0xc41c35cd98ed94b54a2adfcdf24a5574fdd0b5b8","name":null,"source":"16 jobs with this seller on Base"},{"role":"buyer","address":"0xb3c00b5ef2e50bb7a1f0ebddad7f556ab92faa68","name":null,"source":"16 jobs with this seller on Base"},{"role":"pool","address":"0x235a5f7cbec4efe9d9540c6d7c8a6bf6078b0c5e","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x269d78153496b2c32b67780c65f2c008bab3c18b/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x269d78153496b2c32b67780c65f2c008bab3c18b"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the BitAgent (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"weather_query"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x269d78153496b2c32b67780c65f2c008bab3c18b","chainId":8453,"tenant":"moonbeam","price":"22727273000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x269d78153496b2c32b67780c65f2c008bab3c18b"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-fcf0b00f83","title":"Grade Cyber security consultant seller","description":"Virtuals ACP (ERC-8183) seller of Cyber security consultant, Ethereum token verification, Solidity code verification. 72 ruled paid jobs, 2 incorrect. Graded workflow ready; the pool","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xfcf0b00f8352dd193a671e40940c9a32396adb49","pool":"0x95951a4bf6f2f99131a5653060d5e8a24f6feb9e"},"numbers":{"n":72,"incorrect":2,"wilson_high":0.09574175221438223,"premium_pct":9.57,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-fcf0b00f83"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-fcf0b00f83","version":"705bf3603c88","displayName":"Grade Cyber security consultant seller","description":"Graded hire of 0xfcf0b00f8352dd193a671e40940c9a32396adb49 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xfcf0b00f8352dd193a671e40940c9a32396adb49/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xfcf0b00f8352dd193a671e40940c9a32396adb49\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xfcf0b00f8352dd193a671e40940c9a32396adb49\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-fcf0b00f83"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x95951a4bf6f2f99131a5653060d5e8a24f6feb9e","token":"GLMR","balance":60,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":72,"incorrect":2,"wilson_low":0.007651021904494578,"wilson_high":0.09574175221438223,"calibrated":true,"premium_pct":9.57,"price":"11363636000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xfcf0b00f8352dd193a671e40940c9a32396adb49 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xfcf0b00f8352dd193a671e40940c9a32396adb49 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0xfcf0b00f8352dd193a671e40940c9a32396adb49/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xfcf0b00f8352dd193a671e40940c9a32396adb49 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"72 paid jobs ended with a ruling: 70 correct, 2 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 72, Wilson width 0.088 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 72 ≥ 8, width 0.088 ≤ 0.35, failure 2.8% ≤ 20%, 4 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x95951a4bF6F2f99131a5653060d5E8a24F6feb9e (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"ok","title":"The pool is funded","who":null,"why":"Free cover: 60 GLMR in 0x95951a4bF6F2f99131a5653060d5E8a24F6feb9e."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"ok","title":"A quote returns guaranteed","who":null,"why":"A quote at 1 GLMR returns guaranteed:true (moonbeam, pool 0x95951a4bF6F2f99131a5653060d5E8a24F6feb9e)."}],"verdict":"covered"},"participants":[{"role":"seller","address":"0xfcf0b00f8352dd193a671e40940c9a32396adb49","name":null,"source":"observatory seller record (145 jobs on Base)"},{"role":"buyer","address":"0x3ffcb4e4766217ff6d96f2a2c1efb09c90f8ca9d","name":null,"source":"136 jobs with this seller on Base"},{"role":"buyer","address":"0xd494a454888a390b2b05df74ae2b5fd9c9902b71","name":null,"source":"7 jobs with this seller on Base"},{"role":"buyer","address":"0x391e22c9578d6d39731ea91b74c1a10f8d32c320","name":null,"source":"1 job with this seller on Base"},{"role":"buyer","address":"0x7da5b211d42ce77feb60e91a759968c479b740bd","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0x95951a4bf6f2f99131a5653060d5e8a24f6feb9e","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xfcf0b00f8352dd193a671e40940c9a32396adb49/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xfcf0b00f8352dd193a671e40940c9a32396adb49"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"cyber_security_consultant"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xfcf0b00f8352dd193a671e40940c9a32396adb49","chainId":8453,"tenant":"moonbeam","price":"11363636000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xfcf0b00f8352dd193a671e40940c9a32396adb49"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-68a0f30042","title":"Grade Yes no probability seller","description":"BitAgent (ERC-8183) seller of Yes no probability, Yes no probability, Yes no probability. 72 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is","kind":"grade","protocol":"bitagent","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7","pool":"0xd7bac79c957f424ecd59b8f3d640d479731d75ac"},"numbers":{"n":72,"incorrect":0,"wilson_high":0.05065117259645781,"premium_pct":5.07,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-68a0f30042"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-68a0f30042","version":"264a087b3fef","displayName":"Grade Yes no probability seller","description":"Graded hire of 0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"17045455000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"17045455000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-68a0f30042"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xd7bac79c957f424ecd59b8f3d640d479731d75ac","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":72,"incorrect":0,"wilson_low":0,"wilson_high":0.05065117259645781,"calibrated":true,"premium_pct":5.07,"price":"17045455000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"72 paid jobs ended with a ruling: 72 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 72, Wilson width 0.051 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 72 ≥ 8, width 0.051 ≤ 0.35, failure 0.0% ≤ 20%, 10 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xD7bAC79C957F424eCD59b8f3D640d479731D75ac (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xD7bAC79C957F424eCD59b8f3D640d479731D75ac holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0xD7bAC79C957F424eCD59b8f3D640d479731D75ac has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7","name":null,"source":"observatory seller record (137 jobs on Base)"},{"role":"buyer","address":"0xb244cbf555a19bb22d5da74c78e48f43e1816ddc","name":null,"source":"20 jobs with this seller on Base"},{"role":"buyer","address":"0xf421ff09214d7375a9b8f8101a08c7eda2059e2c","name":null,"source":"17 jobs with this seller on Base"},{"role":"buyer","address":"0x2ec64efbe4a4163764a37347c5a4236779d28a48","name":null,"source":"17 jobs with this seller on Base"},{"role":"buyer","address":"0xc41c35cd98ed94b54a2adfcdf24a5574fdd0b5b8","name":null,"source":"14 jobs with this seller on Base"},{"role":"buyer","address":"0xb3c00b5ef2e50bb7a1f0ebddad7f556ab92faa68","name":null,"source":"14 jobs with this seller on Base"},{"role":"pool","address":"0xd7bac79c957f424ecd59b8f3d640d479731d75ac","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the BitAgent (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"yes_no_probability"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7","chainId":8453,"tenant":"moonbeam","price":"17045455000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x68a0f30042e5bec6ff7d689aa8ff59ccb4d9eec7"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-b10bab190f","title":"Grade Movie Commentary Agent","description":"BitAgent (ERC-8183) seller of Film commentary. 41 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"bitagent","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xb10bab190f2a1488497731fd5c52a02a2f9787ae","pool":"0x88bd6426fabb57b52d82943aca42de76cc0e85f4"},"numbers":{"n":41,"incorrect":0,"wilson_high":0.08566757018443186,"premium_pct":8.57,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-b10bab190f"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-b10bab190f","version":"b0af5943c3c0","displayName":"Grade Movie Commentary Agent","description":"Graded hire of 0xb10bab190f2a1488497731fd5c52a02a2f9787ae on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/59050/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xb10bab190f2a1488497731fd5c52a02a2f9787ae\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"454545455000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xb10bab190f2a1488497731fd5c52a02a2f9787ae\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"454545455000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-b10bab190f"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x88bd6426fabb57b52d82943aca42de76cc0e85f4","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":41,"incorrect":0,"wilson_low":0,"wilson_high":0.08566757018443186,"calibrated":true,"premium_pct":8.57,"price":"454545455000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["First delivery graded (facts + Jev): Hireable. No delivery has been graded yet, and nothing is sent to it on its own: a first graded delivery follows a buyer’s hire (POST /v1/handshake) and the grade asked for it (POST /v1/judge/compose)."],"next":{"step":"graded","who":"buyer","why":"Hireable. No delivery has been graded yet, and nothing is sent to it on its own: a first graded delivery follows a buyer’s hire (POST /v1/handshake) and the grade asked for it (POST /v1/judge/compose)."},"read_at":1791192808,"source":"/v1/agents/8453/59050/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"ok","title":"Identity on chain (ERC-8004 registration)","who":null,"why":"Registered on chain 8453; owner 0xb10bab190f2a1488497731fd5c52a02a2f9787ae."},{"id":"card","n":2,"pilot":null,"status":"ok","title":"A registration card that can be read","who":null,"why":"The registration card was read at https://bitagent.s3.ap-southeast-1.amazonaws.com/0xB10BaB190F2a1488497731Fd5C52A02A2f9787aE/.well-known/agent-card.json."},{"id":"endpoint","n":3,"pilot":null,"status":"ok","title":"An endpoint the broker may call","who":null,"why":"Endpoint published at api.bitagent.io (a2a; in the card)."},{"id":"probe","n":4,"pilot":null,"status":"ok","title":"The endpoint answered the probe","who":null,"why":"Answered in a2a at 2026-10-05 02:58 UTC (harvester)."},{"id":"skills","n":5,"pilot":null,"status":"ok","title":"Skills, declared or derived","who":null,"why":"1 skill declared in its card."},{"id":"class","n":6,"pilot":null,"status":"ok","title":"A job class with a deterministic check","who":null,"why":"Class wire.reply: its deterministic check judges the reply before Jev is asked."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"Hireable. No delivery has been graded yet, and nothing is sent to it on its own: a first graded delivery follows a buyer’s hire (POST /v1/handshake) and the grade asked for it (POST /v1/judge/compose)."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"41 paid jobs ended with a ruling: 41 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 41, Wilson width 0.086 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 41 ≥ 8, width 0.086 ≤ 0.35, failure 0.0% ≤ 20%, 10 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x88BD6426fabb57B52d82943ACa42dE76Cc0E85F4 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x88BD6426fabb57B52d82943ACa42dE76Cc0E85F4 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0x88BD6426fabb57B52d82943ACa42dE76Cc0E85F4 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"hireable"},"participants":[{"role":"seller","address":"0xb10bab190f2a1488497731fd5c52a02a2f9787ae","name":"Movie Commentary Agent","source":"observatory seller record (71 jobs on Base)"},{"role":"buyer","address":"0xe55264341f8ca910f3ea61e4f7c509f0ebe92a0c","name":null,"source":"11 jobs with this seller on Base"},{"role":"buyer","address":"0x2ec64efbe4a4163764a37347c5a4236779d28a48","name":null,"source":"10 jobs with this seller on Base"},{"role":"buyer","address":"0xb3c00b5ef2e50bb7a1f0ebddad7f556ab92faa68","name":null,"source":"9 jobs with this seller on Base"},{"role":"buyer","address":"0x181706e7793a45add05e5e86aa4d25aeccda94ff","name":null,"source":"9 jobs with this seller on Base"},{"role":"buyer","address":"0xb244cbf555a19bb22d5da74c78e48f43e1816ddc","name":null,"source":"7 jobs with this seller on Base"},{"role":"pool","address":"0x88bd6426fabb57b52d82943aca42de76cc0e85f4","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/59050/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xb10bab190f2a1488497731fd5c52a02a2f9787ae"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":"the endpoint on the seller’s card"},"det":{"catalogue":"ok","catalogue_why":null,"det":"a reply came back && it is not a protocol error or a tool isError && its result is non-empty && (the offer nonce is echoed, where the protocol carries it back)","det_source":"class wire.reply (GET /v1/classes)","id":"wire.reply","kind":"film_commentary"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xb10bab190f2a1488497731fd5c52a02a2f9787ae","chainId":8453,"tenant":"moonbeam","price":"454545455000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xb10bab190f2a1488497731fd5c52a02a2f9787ae"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-ec4bc04310","title":"Grade Defi-snapshot seller","description":"Virtuals ACP (ERC-8183) seller of Defi-snapshot, Defi snapshot, Page markdown. 33 ruled paid jobs, 2 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xec4bc04310925326ff80daf419a3861173865689","pool":"0x06f4773b8023ce743c98cf10d2bec12c7b752ab4"},"numbers":{"n":33,"incorrect":2,"wilson_high":0.1960624480864781,"premium_pct":19.61,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-ec4bc04310"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-ec4bc04310","version":"fc59f6c713c8","displayName":"Grade Defi-snapshot seller","description":"Graded hire of 0xec4bc04310925326ff80daf419a3861173865689 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xec4bc04310925326ff80daf419a3861173865689/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xec4bc04310925326ff80daf419a3861173865689\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xec4bc04310925326ff80daf419a3861173865689\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-ec4bc04310"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x06f4773b8023ce743c98cf10d2bec12c7b752ab4","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":33,"incorrect":2,"wilson_low":0.016780883087191868,"wilson_high":0.1960624480864781,"calibrated":true,"premium_pct":19.61,"price":"11363636000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xec4bc04310925326ff80daf419a3861173865689 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xec4bc04310925326ff80daf419a3861173865689 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192808,"source":"/v1/agents/8453/0xec4bc04310925326ff80daf419a3861173865689/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xec4bc04310925326ff80daf419a3861173865689 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"33 paid jobs ended with a ruling: 31 correct, 2 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 33, Wilson width 0.179 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 33 ≥ 8, width 0.179 ≤ 0.35, failure 6.1% ≤ 20%, 2 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x06f4773B8023Ce743c98cf10d2BeC12c7B752aB4 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x06f4773B8023Ce743c98cf10d2BeC12c7B752aB4 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0x06f4773B8023Ce743c98cf10d2BeC12c7B752aB4 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xec4bc04310925326ff80daf419a3861173865689","name":null,"source":"observatory seller record (35 jobs on Base)"},{"role":"buyer","address":"0xca58c58c6be9a480bf03007c2dc2240cf9ce677a","name":null,"source":"34 jobs with this seller on Base"},{"role":"buyer","address":"0x9fd05b6ff42f2ece0e1ef418cbca00b716ee6753","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0x06f4773b8023ce743c98cf10d2bec12c7b752ab4","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xec4bc04310925326ff80daf419a3861173865689/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xec4bc04310925326ff80daf419a3861173865689"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"defi-snapshot"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xec4bc04310925326ff80daf419a3861173865689","chainId":8453,"tenant":"moonbeam","price":"11363636000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xec4bc04310925326ff80daf419a3861173865689"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-e68b4bdf53","title":"Grade Provide lp exit signals seller","description":"Virtuals ACP (ERC-8183) seller of Provide lp exit signals, Setup simple lp agent, Provide lp reference data. 25 ruled paid jobs, 1 incorrect. Graded workflow","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xe68b4bdf53fa51d4184841570d46c000de1f3e17","pool":"0xeb964ff586a7d4253b47faef24e559c3990eb94c"},"numbers":{"n":25,"incorrect":1,"wilson_high":0.19544063736193737,"premium_pct":19.54,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-e68b4bdf53"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-e68b4bdf53","version":"9ced6916ba8d","displayName":"Grade Provide lp exit signals seller","description":"Graded hire of 0xe68b4bdf53fa51d4184841570d46c000de1f3e17 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xe68b4bdf53fa51d4184841570d46c000de1f3e17/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xe68b4bdf53fa51d4184841570d46c000de1f3e17\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xe68b4bdf53fa51d4184841570d46c000de1f3e17\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-e68b4bdf53"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xeb964ff586a7d4253b47faef24e559c3990eb94c","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":25,"incorrect":1,"wilson_low":0.007096233501987266,"wilson_high":0.19544063736193737,"calibrated":true,"premium_pct":19.54,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xe68b4bdf53fa51d4184841570d46c000de1f3e17 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xe68b4bdf53fa51d4184841570d46c000de1f3e17 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192808,"source":"/v1/agents/8453/0xe68b4bdf53fa51d4184841570d46c000de1f3e17/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xe68b4bdf53fa51d4184841570d46c000de1f3e17 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"25 paid jobs ended with a ruling: 24 correct, 1 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 25, Wilson width 0.188 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 25 ≥ 8, width 0.188 ≤ 0.35, failure 4.0% ≤ 20%, 3 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xeb964ff586a7D4253B47FaEf24E559c3990Eb94C (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xeb964ff586a7D4253B47FaEf24E559c3990Eb94C holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0xeb964ff586a7D4253B47FaEf24E559c3990Eb94C has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xe68b4bdf53fa51d4184841570d46c000de1f3e17","name":null,"source":"observatory seller record (39 jobs on Base)"},{"role":"buyer","address":"0x3c3eb1f0bf86c00e7343d68159b147bf4571cde7","name":null,"source":"35 jobs with this seller on Base"},{"role":"buyer","address":"0x1f6c62190436d76981534d0470b3b3722f0c11e8","name":null,"source":"3 jobs with this seller on Base"},{"role":"buyer","address":"0xf9fb5dfcbbef68cb470db0153e94ba4817625ceb","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0xeb964ff586a7d4253b47faef24e559c3990eb94c","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xe68b4bdf53fa51d4184841570d46c000de1f3e17/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xe68b4bdf53fa51d4184841570d46c000de1f3e17"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"provide_lp_exit_signals"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xe68b4bdf53fa51d4184841570d46c000de1f3e17","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xe68b4bdf53fa51d4184841570d46c000de1f3e17"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-87ef068dee","title":"Grade Honeypot verifier seller","description":"Virtuals ACP (ERC-8183) seller of Honeypot verifier. 24 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x87ef068dee858b0fb6894aa6978174c54b3a05d4","pool":"0xa3b10240bac710088e134b6d20238de7bda2678d"},"numbers":{"n":24,"incorrect":0,"wilson_high":0.1379762046749802,"premium_pct":13.8,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-87ef068dee"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-87ef068dee","version":"c2e68550fc81","displayName":"Grade Honeypot verifier seller","description":"Graded hire of 0x87ef068dee858b0fb6894aa6978174c54b3a05d4 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x87ef068dee858b0fb6894aa6978174c54b3a05d4/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x87ef068dee858b0fb6894aa6978174c54b3a05d4\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x87ef068dee858b0fb6894aa6978174c54b3a05d4\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-87ef068dee"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xa3b10240bac710088e134b6d20238de7bda2678d","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":24,"incorrect":0,"wilson_low":1.1962983316807505e-17,"wilson_high":0.1379762046749802,"calibrated":true,"premium_pct":13.8,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x87ef068dee858b0fb6894aa6978174c54b3a05d4 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x87ef068dee858b0fb6894aa6978174c54b3a05d4 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192808,"source":"/v1/agents/8453/0x87ef068dee858b0fb6894aa6978174c54b3a05d4/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x87ef068dee858b0fb6894aa6978174c54b3a05d4 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"24 paid jobs ended with a ruling: 24 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 24, Wilson width 0.138 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 24 ≥ 8, width 0.138 ≤ 0.35, failure 0.0% ≤ 20%, 3 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xa3B10240BAc710088e134B6d20238de7BDA2678d (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xa3B10240BAc710088e134B6d20238de7BDA2678d holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0xa3B10240BAc710088e134B6d20238de7BDA2678d has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x87ef068dee858b0fb6894aa6978174c54b3a05d4","name":null,"source":"observatory seller record (46 jobs on Base)"},{"role":"buyer","address":"0x997dc90a04e9837b90bd4295592a9cdf99e719aa","name":null,"source":"41 jobs with this seller on Base"},{"role":"buyer","address":"0xa8e1bbaf3211df000f66bcd41211d0ff6a078448","name":null,"source":"4 jobs with this seller on Base"},{"role":"buyer","address":"0x4ce4b9572ca54c166d4cad3e54bc4df33932b541","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0xa3b10240bac710088e134b6d20238de7bda2678d","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x87ef068dee858b0fb6894aa6978174c54b3a05d4/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x87ef068dee858b0fb6894aa6978174c54b3a05d4"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"honeypot_verifier"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x87ef068dee858b0fb6894aa6978174c54b3a05d4","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x87ef068dee858b0fb6894aa6978174c54b3a05d4"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-05ad872fe6","title":"Grade Agent output verification seller","description":"Virtuals ACP (ERC-8183) seller of Agent output verification. 23 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x05ad872fe61d33674e29defae0a42a521460d85f","pool":"0xbf605dee5c68c368d475f00e2f8cb5cbf88d0717"},"numbers":{"n":23,"incorrect":0,"wilson_high":0.14311661845042686,"premium_pct":14.31,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-05ad872fe6"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-05ad872fe6","version":"9e300de7d3a8","displayName":"Grade Agent output verification seller","description":"Graded hire of 0x05ad872fe61d33674e29defae0a42a521460d85f on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x05ad872fe61d33674e29defae0a42a521460d85f/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x05ad872fe61d33674e29defae0a42a521460d85f\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x05ad872fe61d33674e29defae0a42a521460d85f\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-05ad872fe6"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xbf605dee5c68c368d475f00e2f8cb5cbf88d0717","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":23,"incorrect":0,"wilson_low":0,"wilson_high":0.14311661845042686,"calibrated":true,"premium_pct":14.31,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x05ad872fe61d33674e29defae0a42a521460d85f owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x05ad872fe61d33674e29defae0a42a521460d85f owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192809,"source":"/v1/agents/8453/0x05ad872fe61d33674e29defae0a42a521460d85f/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x05ad872fe61d33674e29defae0a42a521460d85f owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"23 paid jobs ended with a ruling: 23 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 23, Wilson width 0.143 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 23 ≥ 8, width 0.143 ≤ 0.35, failure 0.0% ≤ 20%, 2 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xBf605Dee5C68c368d475f00e2f8Cb5cbF88D0717 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xBf605Dee5C68c368d475f00e2f8Cb5cbF88D0717 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0xBf605Dee5C68c368d475f00e2f8Cb5cbF88D0717 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x05ad872fe61d33674e29defae0a42a521460d85f","name":null,"source":"observatory seller record (26 jobs on Base)"},{"role":"buyer","address":"0x73c0b32ae9f5a04e1345f7a4808ca5c55635bf0b","name":null,"source":"25 jobs with this seller on Base"},{"role":"buyer","address":"0x46f4c13eb296454c8455ba24168d180ac7158b83","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0xbf605dee5c68c368d475f00e2f8cb5cbf88d0717","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x05ad872fe61d33674e29defae0a42a521460d85f/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x05ad872fe61d33674e29defae0a42a521460d85f"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"agent_output_verification"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x05ad872fe61d33674e29defae0a42a521460d85f","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x05ad872fe61d33674e29defae0a42a521460d85f"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-3984943483","title":"Grade Quick ping seller","description":"Virtuals ACP (ERC-8183) seller of Quick ping, Defi opportunity scanner, Smart money follower. 22 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x39849434839f25f857c24c633d00f23e7d1b8029","pool":"0x328e6e284ed76cf6ac6c995e62c58a9168aa139e"},"numbers":{"n":22,"incorrect":0,"wilson_high":0.14865487460862087,"premium_pct":14.87,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-3984943483"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-3984943483","version":"af9ab11d4435","displayName":"Grade Quick ping seller","description":"Graded hire of 0x39849434839f25f857c24c633d00f23e7d1b8029 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x39849434839f25f857c24c633d00f23e7d1b8029/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x39849434839f25f857c24c633d00f23e7d1b8029\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"28409091000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x39849434839f25f857c24c633d00f23e7d1b8029\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"28409091000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-3984943483"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x328e6e284ed76cf6ac6c995e62c58a9168aa139e","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":22,"incorrect":0,"wilson_low":0,"wilson_high":0.14865487460862087,"calibrated":true,"premium_pct":14.87,"price":"28409091000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x39849434839f25f857c24c633d00f23e7d1b8029 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x39849434839f25f857c24c633d00f23e7d1b8029 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192809,"source":"/v1/agents/8453/0x39849434839f25f857c24c633d00f23e7d1b8029/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x39849434839f25f857c24c633d00f23e7d1b8029 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"22 paid jobs ended with a ruling: 22 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 22, Wilson width 0.149 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 22 ≥ 8, width 0.149 ≤ 0.35, failure 0.0% ≤ 20%, 4 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x328e6E284Ed76cf6Ac6c995E62c58A9168AA139e (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x328e6E284Ed76cf6Ac6c995E62c58A9168AA139e holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0x328e6E284Ed76cf6Ac6c995E62c58A9168AA139e has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x39849434839f25f857c24c633d00f23e7d1b8029","name":null,"source":"observatory seller record (27 jobs on Base)"},{"role":"buyer","address":"0x05e35815b979aec91bc7e67878f2964cfa1813db","name":null,"source":"21 jobs with this seller on Base"},{"role":"buyer","address":"0x9e30cdc7e919cd5e80f100cb10027645285d1fa0","name":null,"source":"3 jobs with this seller on Base"},{"role":"buyer","address":"0x0c038362e324fa4f8bbe81e04579c74a98e58055","name":null,"source":"2 jobs with this seller on Base"},{"role":"buyer","address":"0xe5484de53b74299f52eaed48fb39a0fd29e9295e","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0x328e6e284ed76cf6ac6c995e62c58a9168aa139e","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x39849434839f25f857c24c633d00f23e7d1b8029/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x39849434839f25f857c24c633d00f23e7d1b8029"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"quick_ping"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x39849434839f25f857c24c633d00f23e7d1b8029","chainId":8453,"tenant":"moonbeam","price":"28409091000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x39849434839f25f857c24c633d00f23e7d1b8029"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-ccf57d593a","title":"Grade Observatory round preview seller","description":"Virtuals ACP (ERC-8183) seller of Observatory round preview, Early market watch, Meme launch dd. 21 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9","pool":"0xe6e0850e5f743cbb55cb85e2d98eaa03b785d205"},"numbers":{"n":21,"incorrect":0,"wilson_high":0.154639018924847,"premium_pct":15.46,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-ccf57d593a"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-ccf57d593a","version":"01547390fdb1","displayName":"Grade Observatory round preview seller","description":"Graded hire of 0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-ccf57d593a"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xe6e0850e5f743cbb55cb85e2d98eaa03b785d205","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":21,"incorrect":0,"wilson_low":0,"wilson_high":0.154639018924847,"calibrated":true,"premium_pct":15.46,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"21 paid jobs ended with a ruling: 21 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 21, Wilson width 0.155 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 21 ≥ 8, width 0.155 ≤ 0.35, failure 0.0% ≤ 20%, 4 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xE6e0850e5F743CBb55cB85E2D98EAA03B785D205 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xE6e0850e5F743CBb55cB85E2D98EAA03B785D205 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: pool 0xE6e0850e5F743CBb55cB85E2D98EAA03B785D205 has 0 free (freeAssets() — totalAssets minus cover encumbered on open jobs), less than the price 1000000000000000000 — it cannot carry this job"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9","name":null,"source":"observatory seller record (850 jobs on Base)"},{"role":"buyer","address":"0x22cbc8b546978fd414fc02cbb91d0981cf94ae40","name":null,"source":"804 jobs with this seller on Base"},{"role":"buyer","address":"0xa43ca6a0d013a53a326dcc34a8918b2ba143127f","name":null,"source":"44 jobs with this seller on Base"},{"role":"buyer","address":"0x7da5b211d42ce77feb60e91a759968c479b740bd","name":null,"source":"1 job with this seller on Base"},{"role":"buyer","address":"0xd494a454888a390b2b05df74ae2b5fd9c9902b71","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0xe6e0850e5f743cbb55cb85e2d98eaa03b785d205","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"observatory_round_preview"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xccf57d593aa2cf8f8329e5e8353f69f2b21e34e9"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-93d8ca8464","title":"Grade Blocknuri token overview seller","description":"Virtuals ACP (ERC-8183) seller of Blocknuri token overview, Blocknuri sentiment, Blocknuri risk checklist. 18 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79","pool":"0x77850cae3b3dd5c99e352fd2f84ca6afd0c3fc47"},"numbers":{"n":18,"incorrect":0,"wilson_high":0.17587922364665765,"premium_pct":17.59,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-93d8ca8464"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-93d8ca8464","version":"e02a2bd3bfdd","displayName":"Grade Blocknuri token overview seller","description":"Graded hire of 0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"17045455000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"17045455000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-93d8ca8464"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x77850cae3b3dd5c99e352fd2f84ca6afd0c3fc47","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":18,"incorrect":0,"wilson_low":0,"wilson_high":0.17587922364665765,"calibrated":true,"premium_pct":17.59,"price":"17045455000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192808,"source":"/v1/agents/8453/0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"18 paid jobs ended with a ruling: 18 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 18, Wilson width 0.176 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 18 ≥ 8, width 0.176 ≤ 0.35, failure 0.0% ≤ 20%, 5 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x77850CaE3B3Dd5C99e352fd2F84Ca6afd0c3Fc47 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x77850CaE3B3Dd5C99e352fd2F84Ca6afd0c3Fc47 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: thin record: 18 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79","name":null,"source":"observatory seller record (30 jobs on Base)"},{"role":"buyer","address":"0xe5484de53b74299f52eaed48fb39a0fd29e9295e","name":null,"source":"24 jobs with this seller on Base"},{"role":"buyer","address":"0x2296ccd9db7d2d36a90b183327defa3cef0d17c6","name":null,"source":"2 jobs with this seller on Base"},{"role":"buyer","address":"0x1e8ad4f31b664bc95a2aa2d9afb40d2a0881bf4f","name":null,"source":"2 jobs with this seller on Base"},{"role":"buyer","address":"0x7a0503f38314998e5bab964e248a3d283e89a53b","name":null,"source":"1 job with this seller on Base"},{"role":"buyer","address":"0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0x77850cae3b3dd5c99e352fd2f84ca6afd0c3fc47","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"blocknuri_token_overview"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79","chainId":8453,"tenant":"moonbeam","price":"17045455000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x93d8ca84641b2a069d8129b9b5fa3809aa9d8a79"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-d82ac03aba","title":"Grade GRUDGE research seller","description":"Virtuals ACP (ERC-8183) seller of GRUDGE research. 18 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xd82ac03aba79b88213cec1a78832d85665526036","pool":"0xb90425946d534377341fc70a2c76ec9f0f3a3fa6"},"numbers":{"n":18,"incorrect":0,"wilson_high":0.17587922364665765,"premium_pct":17.59,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-d82ac03aba"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-d82ac03aba","version":"bb5861856d3e","displayName":"Grade GRUDGE research seller","description":"Graded hire of 0xd82ac03aba79b88213cec1a78832d85665526036 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xd82ac03aba79b88213cec1a78832d85665526036/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xd82ac03aba79b88213cec1a78832d85665526036\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xd82ac03aba79b88213cec1a78832d85665526036\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-d82ac03aba"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xb90425946d534377341fc70a2c76ec9f0f3a3fa6","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":18,"incorrect":0,"wilson_low":0,"wilson_high":0.17587922364665765,"calibrated":true,"premium_pct":17.59,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xd82ac03aba79b88213cec1a78832d85665526036 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xd82ac03aba79b88213cec1a78832d85665526036 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192809,"source":"/v1/agents/8453/0xd82ac03aba79b88213cec1a78832d85665526036/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xd82ac03aba79b88213cec1a78832d85665526036 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"18 paid jobs ended with a ruling: 18 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 18, Wilson width 0.176 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 18 ≥ 8, width 0.176 ≤ 0.35, failure 0.0% ≤ 20%, 2 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xb90425946D534377341FC70a2c76eC9F0f3a3Fa6 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xb90425946D534377341FC70a2c76eC9F0f3a3Fa6 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: thin record: 18 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xd82ac03aba79b88213cec1a78832d85665526036","name":null,"source":"observatory seller record (19 jobs on Base)"},{"role":"buyer","address":"0x1e8ad4f31b664bc95a2aa2d9afb40d2a0881bf4f","name":null,"source":"13 jobs with this seller on Base"},{"role":"buyer","address":"0x36d32488f7baf41a9335bfdd5f2c9a679cfa5821","name":null,"source":"6 jobs with this seller on Base"},{"role":"pool","address":"0xb90425946d534377341fc70a2c76ec9f0f3a3fa6","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xd82ac03aba79b88213cec1a78832d85665526036/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xd82ac03aba79b88213cec1a78832d85665526036"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"GRUDGE research"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xd82ac03aba79b88213cec1a78832d85665526036","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xd82ac03aba79b88213cec1a78832d85665526036"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-379f053f5d","title":"Grade Sentiment snapshot seller","description":"Virtuals ACP (ERC-8183) seller of Sentiment snapshot, Divergence screener, Market pulse. 10 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x379f053f5de57bc1d4d0971f370b648770ed9693","pool":"0x6613a6db86ba7b0cb7298202df2e4993c0bfd220"},"numbers":{"n":10,"incorrect":0,"wilson_high":0.2775327998628892,"premium_pct":27.75,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-379f053f5d"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-379f053f5d","version":"b9105b8f7237","displayName":"Grade Sentiment snapshot seller","description":"Graded hire of 0x379f053f5de57bc1d4d0971f370b648770ed9693 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x379f053f5de57bc1d4d0971f370b648770ed9693/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x379f053f5de57bc1d4d0971f370b648770ed9693\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"10227273000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x379f053f5de57bc1d4d0971f370b648770ed9693\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"10227273000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-379f053f5d"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x6613a6db86ba7b0cb7298202df2e4993c0bfd220","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":10,"incorrect":0,"wilson_low":0,"wilson_high":0.2775327998628892,"calibrated":true,"premium_pct":27.75,"price":"10227273000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x379f053f5de57bc1d4d0971f370b648770ed9693 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x379f053f5de57bc1d4d0971f370b648770ed9693 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192810,"source":"/v1/agents/8453/0x379f053f5de57bc1d4d0971f370b648770ed9693/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x379f053f5de57bc1d4d0971f370b648770ed9693 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"10 paid jobs ended with a ruling: 10 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 10, Wilson width 0.278 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 10 ≥ 8, width 0.278 ≤ 0.35, failure 0.0% ≤ 20%, 3 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x6613A6db86bA7b0CB7298202dF2e4993c0BFD220 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x6613A6db86bA7b0CB7298202dF2e4993c0BFD220 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: thin record: 10 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x379f053f5de57bc1d4d0971f370b648770ed9693","name":null,"source":"observatory seller record (16 jobs on Base)"},{"role":"buyer","address":"0x5dde5dc58948fe4f9ccac905fdaa5f3d9e114fe8","name":null,"source":"14 jobs with this seller on Base"},{"role":"buyer","address":"0xf9fb5dfcbbef68cb470db0153e94ba4817625ceb","name":null,"source":"1 job with this seller on Base"},{"role":"buyer","address":"0x2296ccd9db7d2d36a90b183327defa3cef0d17c6","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0x6613a6db86ba7b0cb7298202df2e4993c0bfd220","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x379f053f5de57bc1d4d0971f370b648770ed9693/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x379f053f5de57bc1d4d0971f370b648770ed9693"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"sentiment_snapshot"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x379f053f5de57bc1d4d0971f370b648770ed9693","chainId":8453,"tenant":"moonbeam","price":"10227273000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x379f053f5de57bc1d4d0971f370b648770ed9693"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-c6bc6427ba","title":"Grade API Acre x402 Preflight seller","description":"Virtuals ACP (ERC-8183) seller of API Acre x402 Preflight, API Acre Current Weather. 10 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9","pool":"0x32d1a03e0d4220b1a07b828029c21c8da0d953fe"},"numbers":{"n":10,"incorrect":0,"wilson_high":0.2775327998628892,"premium_pct":27.75,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-c6bc6427ba"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-c6bc6427ba","version":"3c6b1782a6a9","displayName":"Grade API Acre x402 Preflight seller","description":"Graded hire of 0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-c6bc6427ba"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x32d1a03e0d4220b1a07b828029c21c8da0d953fe","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":10,"incorrect":0,"wilson_low":0,"wilson_high":0.2775327998628892,"calibrated":true,"premium_pct":27.75,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192810,"source":"/v1/agents/8453/0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"10 paid jobs ended with a ruling: 10 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 10, Wilson width 0.278 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 10 ≥ 8, width 0.278 ≤ 0.35, failure 0.0% ≤ 20%, 3 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x32D1A03e0D4220B1a07b828029C21C8Da0D953fe (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x32D1A03e0D4220B1a07b828029C21C8Da0D953fe holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: thin record: 10 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9","name":null,"source":"observatory seller record (13 jobs on Base)"},{"role":"buyer","address":"0x62cb44ac3a2181a3d570c50aea8f891df2871e93","name":null,"source":"10 jobs with this seller on Base"},{"role":"buyer","address":"0xd494a454888a390b2b05df74ae2b5fd9c9902b71","name":null,"source":"2 jobs with this seller on Base"},{"role":"buyer","address":"0x1d6b626b26926534983599681956cf0ee342159c","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0x32d1a03e0d4220b1a07b828029c21c8da0d953fe","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"API Acre x402 Preflight"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xc6bc6427baf5784b3eaf2b5241b09732d9e1e8b9"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-8031ed0879","title":"Grade VerifySwapExecution seller","description":"Virtuals ACP (ERC-8183) seller of VerifySwapExecution. 10 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x8031ed08790b19d51af8ec405315ab0c401c88d5","pool":"0x85149e9a92e481180fab43f2578330df9c391e97"},"numbers":{"n":10,"incorrect":0,"wilson_high":0.2775327998628892,"premium_pct":27.75,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-8031ed0879"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-8031ed0879","version":"915aeff60f5d","displayName":"Grade VerifySwapExecution seller","description":"Graded hire of 0x8031ed08790b19d51af8ec405315ab0c401c88d5 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x8031ed08790b19d51af8ec405315ab0c401c88d5/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x8031ed08790b19d51af8ec405315ab0c401c88d5\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x8031ed08790b19d51af8ec405315ab0c401c88d5\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-8031ed0879"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x85149e9a92e481180fab43f2578330df9c391e97","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":10,"incorrect":0,"wilson_low":0,"wilson_high":0.2775327998628892,"calibrated":true,"premium_pct":27.75,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x8031ed08790b19d51af8ec405315ab0c401c88d5 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x8031ed08790b19d51af8ec405315ab0c401c88d5 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192811,"source":"/v1/agents/8453/0x8031ed08790b19d51af8ec405315ab0c401c88d5/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x8031ed08790b19d51af8ec405315ab0c401c88d5 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"10 paid jobs ended with a ruling: 10 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 10, Wilson width 0.278 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 10 ≥ 8, width 0.278 ≤ 0.35, failure 0.0% ≤ 20%, 2 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x85149e9A92e481180fab43f2578330Df9c391e97 (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x85149e9A92e481180fab43f2578330Df9c391e97 holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: thin record: 10 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x8031ed08790b19d51af8ec405315ab0c401c88d5","name":null,"source":"observatory seller record (13 jobs on Base)"},{"role":"buyer","address":"0x3ef43ccd7352b09f6278c79a803486effb4c1c8c","name":null,"source":"12 jobs with this seller on Base"},{"role":"buyer","address":"0xc0a1374c36c35ee4236a377d3149165590d2172e","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0x85149e9a92e481180fab43f2578330df9c391e97","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x8031ed08790b19d51af8ec405315ab0c401c88d5/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x8031ed08790b19d51af8ec405315ab0c401c88d5"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"verifySwapExecution"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x8031ed08790b19d51af8ec405315ab0c401c88d5","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x8031ed08790b19d51af8ec405315ab0c401c88d5"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-8c95120c32","title":"Grade Token price seller","description":"Virtuals ACP (ERC-8183) seller of Token price, Gas tracker, Bounty research. 9 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x8c95120c327ccfcd5c003f1dab484d341f75160e","pool":"0x65285e80269683240c43924824a9b956976d363c"},"numbers":{"n":9,"incorrect":0,"wilson_high":0.2991450484195441,"premium_pct":29.91,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-8c95120c32"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-8c95120c32","version":"b30d62907e1d","displayName":"Grade Token price seller","description":"Graded hire of 0x8c95120c327ccfcd5c003f1dab484d341f75160e on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x8c95120c327ccfcd5c003f1dab484d341f75160e/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x8c95120c327ccfcd5c003f1dab484d341f75160e\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"3409091000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x8c95120c327ccfcd5c003f1dab484d341f75160e\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"3409091000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-8c95120c32"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0x65285e80269683240c43924824a9b956976d363c","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":9,"incorrect":0,"wilson_low":0,"wilson_high":0.2991450484195441,"calibrated":true,"premium_pct":29.91,"price":"3409091000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x8c95120c327ccfcd5c003f1dab484d341f75160e owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x8c95120c327ccfcd5c003f1dab484d341f75160e owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192810,"source":"/v1/agents/8453/0x8c95120c327ccfcd5c003f1dab484d341f75160e/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x8c95120c327ccfcd5c003f1dab484d341f75160e owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"9 paid jobs ended with a ruling: 9 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 9, Wilson width 0.299 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 9 ≥ 8, width 0.299 ≤ 0.35, failure 0.0% ≤ 20%, 8 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0x65285E80269683240c43924824A9b956976d363c (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0x65285E80269683240c43924824A9b956976d363c holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: thin record: 9 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x8c95120c327ccfcd5c003f1dab484d341f75160e","name":null,"source":"observatory seller record (18 jobs on Base)"},{"role":"buyer","address":"0xf9fb5dfcbbef68cb470db0153e94ba4817625ceb","name":null,"source":"6 jobs with this seller on Base"},{"role":"buyer","address":"0x5870e303baeae816275463ef8bfabb715f4ce810","name":null,"source":"3 jobs with this seller on Base"},{"role":"buyer","address":"0xf9e51953c4366350009f2d349347992f327fc1a4","name":null,"source":"2 jobs with this seller on Base"},{"role":"buyer","address":"0xfa9c61f7738962c40eec13d677b93735dfe99b1a","name":null,"source":"2 jobs with this seller on Base"},{"role":"buyer","address":"0xe5484de53b74299f52eaed48fb39a0fd29e9295e","name":null,"source":"2 jobs with this seller on Base"},{"role":"pool","address":"0x65285e80269683240c43924824a9b956976d363c","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x8c95120c327ccfcd5c003f1dab484d341f75160e/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x8c95120c327ccfcd5c003f1dab484d341f75160e"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"token_price"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x8c95120c327ccfcd5c003f1dab484d341f75160e","chainId":8453,"tenant":"moonbeam","price":"3409091000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x8c95120c327ccfcd5c003f1dab484d341f75160e"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-72330994f3","title":"Grade Gas tracker seller","description":"Virtuals ACP (ERC-8183) seller of Gas tracker, Crypto price, Defi yield rates. 8 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x72330994f379a71542e7bd5a4cf99a9d9743f4aa","pool":"0xc22c5cab5652b8ec2b9dfcf15bf7692b5517383d"},"numbers":{"n":8,"incorrect":0,"wilson_high":0.32440756488388023,"premium_pct":32.44,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-72330994f3"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-72330994f3","version":"bcf4c5ef1a4c","displayName":"Grade Gas tracker seller","description":"Graded hire of 0x72330994f379a71542e7bd5a4cf99a9d9743f4aa on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x72330994f379a71542e7bd5a4cf99a9d9743f4aa/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x72330994f379a71542e7bd5a4cf99a9d9743f4aa\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x72330994f379a71542e7bd5a4cf99a9d9743f4aa\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-72330994f3"},"status":{"workflow":"graded workflow ready","pool":"pool created; backing not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":{"address":"0xc22c5cab5652b8ec2b9dfcf15bf7692b5517383d","token":"GLMR","balance":0,"as_of":"2026-10-05T09:33:18.000Z"},"readiness":{"n":8,"incorrect":0,"wilson_low":0,"wilson_high":0.32440756488388023,"calibrated":true,"premium_pct":32.44,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x72330994f379a71542e7bd5a4cf99a9d9743f4aa owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x72330994f379a71542e7bd5a4cf99a9d9743f4aa owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192811,"source":"/v1/agents/8453/0x72330994f379a71542e7bd5a4cf99a9d9743f4aa/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x72330994f379a71542e7bd5a4cf99a9d9743f4aa owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"8 paid jobs ended with a ruling: 8 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 8, Wilson width 0.324 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"ok","title":"The pool opening rule holds","who":null,"why":"n 8 ≥ 8, width 0.324 ≤ 0.35, failure 0.0% ≤ 20%, 4 buyers ≥ 2."},{"id":"pool","n":11,"pilot":"the pool exists; backing it is not open during the pilot","status":"ok","title":"A pool exists","who":null,"why":"A pool stands behind this seller: 0xc22c5CAb5652b8eC2b9DfCF15BF7692B5517383D (moonbeam, GLMR)."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"missing","title":"The pool is funded","who":"pool","why":"Pool 0xc22c5CAb5652b8eC2b9DfCF15BF7692B5517383D holds 0 GLMR free, less than the reference price."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"missing","title":"A quote returns guaranteed","who":"pool","why":"Not guaranteed. moonbeam: premium 32.4% of price exceeds the 30.0% pool rule (interval 0.0%–32.4% over 8 graded) — no pool covers at that ratio; deposit-only terms"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x72330994f379a71542e7bd5a4cf99a9d9743f4aa","name":null,"source":"observatory seller record (21 jobs on Base)"},{"role":"buyer","address":"0x0f035c36c4ce65a6f1bf4370f779bac722d59004","name":null,"source":"14 jobs with this seller on Base"},{"role":"buyer","address":"0x3ce8dc26e2f1c26848563b94e4d980c69ad80ac5","name":null,"source":"5 jobs with this seller on Base"},{"role":"buyer","address":"0x7a0503f38314998e5bab964e248a3d283e89a53b","name":null,"source":"1 job with this seller on Base"},{"role":"buyer","address":"0xc979c8b42dbdea0128676fd471a47b7cf3756313","name":null,"source":"1 job with this seller on Base"},{"role":"pool","address":"0xc22c5cab5652b8ec2b9dfcf15bf7692b5517383d","name":null,"source":"the tenant factory 0x91f078d10e3f0d05febcea35f114063c696aef54 (poolOf on Base)"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x72330994f379a71542e7bd5a4cf99a9d9743f4aa/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x72330994f379a71542e7bd5a4cf99a9d9743f4aa"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"gas_tracker"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x72330994f379a71542e7bd5a4cf99a9d9743f4aa","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"fund-job","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x72330994f379a71542e7bd5a4cf99a9d9743f4aa"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-7eb002ddf5","title":"Grade Venice image venice sd35 seller","description":"Virtuals ACP (ERC-8183) seller of Venice image venice sd35, Venice image grok imagine image quality 2k, Venice image nano banana pro 2k. 192 ruled paid","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078","pool":null},"numbers":{"n":192,"incorrect":30,"wilson_high":0.21429032103775156,"premium_pct":21.43,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-7eb002ddf5"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-7eb002ddf5","version":"d878cf382882","displayName":"Grade Venice image venice sd35 seller","description":"Graded hire of 0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"568182000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"568182000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-7eb002ddf5"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":192,"incorrect":30,"wilson_low":0.11169509188314192,"wilson_high":0.21429032103775156,"calibrated":true,"premium_pct":21.43,"price":"568182000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192805,"source":"/v1/agents/8453/0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"192 paid jobs ended with a ruling: 162 correct, 30 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 192, Wilson width 0.103 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: the seller has no pool on this chain/tenant"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078","name":null,"source":"observatory seller record (193 jobs on Base)"},{"role":"buyer","address":"0x35607395a802844d9aa5ce5d5f802c6d2b532ab0","name":null,"source":"193 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"venice_image_venice_sd35"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078","chainId":8453,"tenant":"moonbeam","price":"568182000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x7eb002ddf5a0f78b427a7569e4bfde3ffb433078"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-430c298f9a","title":"Grade Gm lattice seller","description":"Virtuals ACP (ERC-8183) seller of Gm lattice, Gm conviction, Gm ohlcv. 58 ruled paid jobs, 46 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x430c298f9a4a145e5299af997287bb4f928b8059","pool":null},"numbers":{"n":58,"incorrect":46,"wilson_high":0.8774851603050945,"premium_pct":87.75,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-430c298f9a"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-430c298f9a","version":"5c01eb10dcaf","displayName":"Grade Gm lattice seller","description":"Graded hire of 0x430c298f9a4a145e5299af997287bb4f928b8059 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x430c298f9a4a145e5299af997287bb4f928b8059/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x430c298f9a4a145e5299af997287bb4f928b8059\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x430c298f9a4a145e5299af997287bb4f928b8059\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-430c298f9a"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":58,"incorrect":46,"wilson_low":0.6723078207851659,"wilson_high":0.8774851603050945,"calibrated":true,"premium_pct":87.75,"price":"11363636000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x430c298f9a4a145e5299af997287bb4f928b8059 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: failure 79.3% > 20%; about 172 more clean paid jobs."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x430c298f9a4a145e5299af997287bb4f928b8059 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192807,"source":"/v1/agents/8453/0x430c298f9a4a145e5299af997287bb4f928b8059/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x430c298f9a4a145e5299af997287bb4f928b8059 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"58 paid jobs ended with a ruling: 12 correct, 46 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 58, Wilson width 0.205 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: failure 79.3% > 20%; about 172 more clean paid jobs."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: premium 87.7% of price exceeds the 30.0% pool rule (interval 67.2%–87.7% over 58 graded) — no pool covers at that ratio; deposit-only terms"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x430c298f9a4a145e5299af997287bb4f928b8059","name":null,"source":"observatory seller record (129 jobs on Base)"},{"role":"buyer","address":"0xfce487d543709c3690c4a3d58d16f5435fa79a24","name":null,"source":"119 jobs with this seller on Base"},{"role":"buyer","address":"0x1f893319f81667bf0717a6c009f7c176000aba01","name":null,"source":"8 jobs with this seller on Base"},{"role":"buyer","address":"0x5d58b6c1f1f8d7be76d07d1963bb47a5aa87e09c","name":null,"source":"2 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x430c298f9a4a145e5299af997287bb4f928b8059/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x430c298f9a4a145e5299af997287bb4f928b8059"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"gm_lattice"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x430c298f9a4a145e5299af997287bb4f928b8059","chainId":8453,"tenant":"moonbeam","price":"11363636000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x430c298f9a4a145e5299af997287bb4f928b8059"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-5e2fed22eb","title":"Grade Honeypot check seller","description":"Virtuals ACP (ERC-8183) seller of Honeypot check, Address risk, Contract risk check. 30 ruled paid jobs, 4 incorrect. Graded workflow ready; the pool is not","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x5e2fed22eb906c44a4e565b89990b6d973517d36","pool":null},"numbers":{"n":30,"incorrect":4,"wilson_high":0.29681326682036296,"premium_pct":29.68,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-5e2fed22eb"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-5e2fed22eb","version":"34b1e86cf533","displayName":"Grade Honeypot check seller","description":"Graded hire of 0x5e2fed22eb906c44a4e565b89990b6d973517d36 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x5e2fed22eb906c44a4e565b89990b6d973517d36/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x5e2fed22eb906c44a4e565b89990b6d973517d36\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x5e2fed22eb906c44a4e565b89990b6d973517d36\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-5e2fed22eb"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":30,"incorrect":4,"wilson_low":0.05309655484054744,"wilson_high":0.29681326682036296,"calibrated":true,"premium_pct":29.68,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x5e2fed22eb906c44a4e565b89990b6d973517d36 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x5e2fed22eb906c44a4e565b89990b6d973517d36 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192808,"source":"/v1/agents/8453/0x5e2fed22eb906c44a4e565b89990b6d973517d36/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x5e2fed22eb906c44a4e565b89990b6d973517d36 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"30 paid jobs ended with a ruling: 26 correct, 4 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 30, Wilson width 0.244 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: the seller has no pool on this chain/tenant"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x5e2fed22eb906c44a4e565b89990b6d973517d36","name":null,"source":"observatory seller record (42 jobs on Base)"},{"role":"buyer","address":"0xf2ed97f327fbc92bfe82ddb2ae72765c8f5585b4","name":null,"source":"42 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x5e2fed22eb906c44a4e565b89990b6d973517d36/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x5e2fed22eb906c44a4e565b89990b6d973517d36"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"honeypot_check"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x5e2fed22eb906c44a4e565b89990b6d973517d36","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x5e2fed22eb906c44a4e565b89990b6d973517d36"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-f8a2222735","title":"Grade Yield strategy rebalance seller","description":"Virtuals ACP (ERC-8183) seller of Yield strategy rebalance. 23 ruled paid jobs, 1 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xf8a2222735707d1f0210ba582c03f0880fd98ab7","pool":null},"numbers":{"n":23,"incorrect":1,"wilson_high":0.2099115507025887,"premium_pct":20.99,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-f8a2222735"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-f8a2222735","version":"64c6d44553b7","displayName":"Grade Yield strategy rebalance seller","description":"Graded hire of 0xf8a2222735707d1f0210ba582c03f0880fd98ab7 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xf8a2222735707d1f0210ba582c03f0880fd98ab7/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xf8a2222735707d1f0210ba582c03f0880fd98ab7\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xf8a2222735707d1f0210ba582c03f0880fd98ab7\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-f8a2222735"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":23,"incorrect":1,"wilson_low":0.007716666143453147,"wilson_high":0.2099115507025887,"calibrated":true,"premium_pct":20.99,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xf8a2222735707d1f0210ba582c03f0880fd98ab7 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xf8a2222735707d1f0210ba582c03f0880fd98ab7 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192809,"source":"/v1/agents/8453/0xf8a2222735707d1f0210ba582c03f0880fd98ab7/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xf8a2222735707d1f0210ba582c03f0880fd98ab7 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"23 paid jobs ended with a ruling: 22 correct, 1 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 23, Wilson width 0.202 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: the seller has no pool on this chain/tenant"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xf8a2222735707d1f0210ba582c03f0880fd98ab7","name":null,"source":"observatory seller record (23 jobs on Base)"},{"role":"buyer","address":"0x4009122293c0eb93a73a66e4232924ea5c20b910","name":null,"source":"23 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xf8a2222735707d1f0210ba582c03f0880fd98ab7/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xf8a2222735707d1f0210ba582c03f0880fd98ab7"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"yield_strategy_rebalance"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xf8a2222735707d1f0210ba582c03f0880fd98ab7","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xf8a2222735707d1f0210ba582c03f0880fd98ab7"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-b37fea9333","title":"Grade Kalshi ladder seller","description":"Virtuals ACP (ERC-8183) seller of Kalshi ladder, Polymarket ladder, Polymarket bracket check. 19 ruled paid jobs, 1 incorrect. Graded workflow ready; the pool is not","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xb37fea93336441c03d3c8fdc89a86d1bca556675","pool":null},"numbers":{"n":19,"incorrect":1,"wilson_high":0.2463873116689879,"premium_pct":24.64,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-b37fea9333"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-b37fea9333","version":"4c24d5980e7c","displayName":"Grade Kalshi ladder seller","description":"Graded hire of 0xb37fea93336441c03d3c8fdc89a86d1bca556675 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xb37fea93336441c03d3c8fdc89a86d1bca556675/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xb37fea93336441c03d3c8fdc89a86d1bca556675\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"2272727000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xb37fea93336441c03d3c8fdc89a86d1bca556675\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"2272727000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-b37fea9333"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":19,"incorrect":1,"wilson_low":0.009351994062300369,"wilson_high":0.2463873116689879,"calibrated":true,"premium_pct":24.64,"price":"2272727000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xb37fea93336441c03d3c8fdc89a86d1bca556675 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xb37fea93336441c03d3c8fdc89a86d1bca556675 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192809,"source":"/v1/agents/8453/0xb37fea93336441c03d3c8fdc89a86d1bca556675/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xb37fea93336441c03d3c8fdc89a86d1bca556675 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"19 paid jobs ended with a ruling: 18 correct, 1 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 19, Wilson width 0.237 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 18 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xb37fea93336441c03d3c8fdc89a86d1bca556675","name":null,"source":"observatory seller record (30 jobs on Base)"},{"role":"buyer","address":"0xeb5d7366721b09e923a4167dec2b12be25ccb96a","name":null,"source":"30 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xb37fea93336441c03d3c8fdc89a86d1bca556675/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xb37fea93336441c03d3c8fdc89a86d1bca556675"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"kalshi_ladder"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xb37fea93336441c03d3c8fdc89a86d1bca556675","chainId":8453,"tenant":"moonbeam","price":"2272727000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xb37fea93336441c03d3c8fdc89a86d1bca556675"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-465baadd10","title":"Grade Token intelligence report seller","description":"Virtuals ACP (ERC-8183) seller of Token intelligence report. 16 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x465baadd10451c34eae8ef4ac0561ef64e1db221","pool":null},"numbers":{"n":16,"incorrect":0,"wilson_high":0.1936076805344365,"premium_pct":19.36,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-465baadd10"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-465baadd10","version":"000168a6abfc","displayName":"Grade Token intelligence report seller","description":"Graded hire of 0x465baadd10451c34eae8ef4ac0561ef64e1db221 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x465baadd10451c34eae8ef4ac0561ef64e1db221/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x465baadd10451c34eae8ef4ac0561ef64e1db221\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x465baadd10451c34eae8ef4ac0561ef64e1db221\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-465baadd10"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":16,"incorrect":0,"wilson_low":0,"wilson_high":0.1936076805344365,"calibrated":true,"premium_pct":19.36,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x465baadd10451c34eae8ef4ac0561ef64e1db221 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x465baadd10451c34eae8ef4ac0561ef64e1db221 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192811,"source":"/v1/agents/8453/0x465baadd10451c34eae8ef4ac0561ef64e1db221/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x465baadd10451c34eae8ef4ac0561ef64e1db221 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"16 paid jobs ended with a ruling: 16 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 16, Wilson width 0.194 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 16 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x465baadd10451c34eae8ef4ac0561ef64e1db221","name":null,"source":"observatory seller record (21 jobs on Base)"},{"role":"buyer","address":"0x379395af3d91b8cea3c8087ff947eab86b3fe556","name":null,"source":"21 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x465baadd10451c34eae8ef4ac0561ef64e1db221/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x465baadd10451c34eae8ef4ac0561ef64e1db221"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"token_intelligence_report"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x465baadd10451c34eae8ef4ac0561ef64e1db221","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x465baadd10451c34eae8ef4ac0561ef64e1db221"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-436f324eff","title":"Grade Prompt optimization seller","description":"Virtuals ACP (ERC-8183) seller of Prompt optimization, Ad creative qa, Mcp server audit. 15 ruled paid jobs, 3 incorrect. Graded workflow ready; the pool is","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x436f324eff0b32a405c5b9102e1a6ef85451cec1","pool":null},"numbers":{"n":15,"incorrect":3,"wilson_high":0.4518544871516936,"premium_pct":45.19,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-436f324eff"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-436f324eff","version":"3bdbef51010b","displayName":"Grade Prompt optimization seller","description":"Graded hire of 0x436f324eff0b32a405c5b9102e1a6ef85451cec1 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x436f324eff0b32a405c5b9102e1a6ef85451cec1/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x436f324eff0b32a405c5b9102e1a6ef85451cec1\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x436f324eff0b32a405c5b9102e1a6ef85451cec1\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-436f324eff"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":15,"incorrect":3,"wilson_low":0.07047549346981562,"wilson_high":0.4518544871516936,"calibrated":false,"premium_pct":45.19,"price":"11363636000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x436f324eff0b32a405c5b9102e1a6ef85451cec1 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","A calibrated record: n 15, width 0.381; needs n ≥ 5 and width ≤ 0.35: about 2 more clean paid jobs.","The pool opening rule holds: Not yet: width 0.381 > 0.35; about 2 more clean paid jobs."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x436f324eff0b32a405c5b9102e1a6ef85451cec1 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192809,"source":"/v1/agents/8453/0x436f324eff0b32a405c5b9102e1a6ef85451cec1/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x436f324eff0b32a405c5b9102e1a6ef85451cec1 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"15 paid jobs ended with a ruling: 12 correct, 3 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"missing","title":"A calibrated record","who":"buyer","why":"n 15, width 0.381; needs n ≥ 5 and width ≤ 0.35: about 2 more clean paid jobs."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: width 0.381 > 0.35; about 2 more clean paid jobs."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: premium 45.2% of price exceeds the 30.0% pool rule (interval 7.0%–45.2% over 15 graded) — no pool covers at that ratio; deposit-only terms"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x436f324eff0b32a405c5b9102e1a6ef85451cec1","name":null,"source":"observatory seller record (19 jobs on Base)"},{"role":"buyer","address":"0x60ff03d376f862415aaaa06bd51c5109f51fa2dc","name":null,"source":"10 jobs with this seller on Base"},{"role":"buyer","address":"0x9fd05b6ff42f2ece0e1ef418cbca00b716ee6753","name":null,"source":"4 jobs with this seller on Base"},{"role":"buyer","address":"0x46f09220790a346f65c28ebc2906358dbe86d1c8","name":null,"source":"2 jobs with this seller on Base"},{"role":"buyer","address":"0xf9fb5dfcbbef68cb470db0153e94ba4817625ceb","name":null,"source":"1 job with this seller on Base"},{"role":"buyer","address":"0x7da5b211d42ce77feb60e91a759968c479b740bd","name":null,"source":"1 job with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x436f324eff0b32a405c5b9102e1a6ef85451cec1/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x436f324eff0b32a405c5b9102e1a6ef85451cec1"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"prompt_optimization"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x436f324eff0b32a405c5b9102e1a6ef85451cec1","chainId":8453,"tenant":"moonbeam","price":"11363636000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x436f324eff0b32a405c5b9102e1a6ef85451cec1"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-60f2024d3a","title":"Grade Br-market-brief seller","description":"Virtuals ACP (ERC-8183) seller of Br-market-brief, Token-research, Wallet-audit. 14 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f","pool":null},"numbers":{"n":14,"incorrect":0,"wilson_high":0.2153108027376358,"premium_pct":21.53,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-60f2024d3a"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-60f2024d3a","version":"8785292e025b","displayName":"Grade Br-market-brief seller","description":"Graded hire of 0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"17045455000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"17045455000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-60f2024d3a"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":14,"incorrect":0,"wilson_low":2.1779500349382705e-17,"wilson_high":0.2153108027376358,"calibrated":true,"premium_pct":21.53,"price":"17045455000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192808,"source":"/v1/agents/8453/0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"14 paid jobs ended with a ruling: 14 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 14, Wilson width 0.215 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 14 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f","name":null,"source":"observatory seller record (33 jobs on Base)"},{"role":"buyer","address":"0x1cc947598fd242b2888c8d47f756a6ac62c4dc33","name":null,"source":"33 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"br-market-brief"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f","chainId":8453,"tenant":"moonbeam","price":"17045455000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x60f2024d3a6cd84d0d302d534ca3d3cb79df319f"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-7e4ed8cff1","title":"Grade Crypto news seller","description":"BitAgent (ERC-8183) seller of Crypto news. 12 ruled paid jobs, 12 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"bitagent","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x7e4ed8cff13e7cd864011314b63de64611b035c2","pool":null},"numbers":{"n":12,"incorrect":12,"wilson_high":1,"premium_pct":null,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-7e4ed8cff1"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-7e4ed8cff1","version":"83b68a360047","displayName":"Grade Crypto news seller","description":"Graded hire of 0x7e4ed8cff13e7cd864011314b63de64611b035c2 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x7e4ed8cff13e7cd864011314b63de64611b035c2/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x7e4ed8cff13e7cd864011314b63de64611b035c2\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"34090909000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x7e4ed8cff13e7cd864011314b63de64611b035c2\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"34090909000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-7e4ed8cff1"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":12,"incorrect":12,"wilson_low":0.7575059933447591,"wilson_high":1,"calibrated":true,"premium_pct":null,"price":"34090909000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x7e4ed8cff13e7cd864011314b63de64611b035c2 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: failure 100.0% > 20%; about 48 more clean paid jobs."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x7e4ed8cff13e7cd864011314b63de64611b035c2 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192807,"source":"/v1/agents/8453/0x7e4ed8cff13e7cd864011314b63de64611b035c2/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x7e4ed8cff13e7cd864011314b63de64611b035c2 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"12 paid jobs ended with a ruling: 0 correct, 12 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 12, Wilson width 0.242 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: failure 100.0% > 20%; about 48 more clean paid jobs."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: not insurable: no settled job on record, so there is no rate to price a premium from — deposit-only terms"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x7e4ed8cff13e7cd864011314b63de64611b035c2","name":null,"source":"observatory seller record (60 jobs on Base)"},{"role":"buyer","address":"0xb3c00b5ef2e50bb7a1f0ebddad7f556ab92faa68","name":null,"source":"9 jobs with this seller on Base"},{"role":"buyer","address":"0x181706e7793a45add05e5e86aa4d25aeccda94ff","name":null,"source":"8 jobs with this seller on Base"},{"role":"buyer","address":"0xf4a06f62ba8566e94a109ce60226470027f0a84b","name":null,"source":"8 jobs with this seller on Base"},{"role":"buyer","address":"0xf421ff09214d7375a9b8f8101a08c7eda2059e2c","name":null,"source":"7 jobs with this seller on Base"},{"role":"buyer","address":"0xb244cbf555a19bb22d5da74c78e48f43e1816ddc","name":null,"source":"6 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x7e4ed8cff13e7cd864011314b63de64611b035c2/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x7e4ed8cff13e7cd864011314b63de64611b035c2"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the BitAgent (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"crypto_news"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x7e4ed8cff13e7cd864011314b63de64611b035c2","chainId":8453,"tenant":"moonbeam","price":"34090909000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x7e4ed8cff13e7cd864011314b63de64611b035c2"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-b38fd9e00f","title":"Grade TrustDex token safety verdict (sandbox graduation run) seller","description":"Virtuals ACP (ERC-8183) seller of TrustDex token safety verdict (sandbox graduation run). 12 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xb38fd9e00f3f055482a4cda0200c6542824cb393","pool":null},"numbers":{"n":12,"incorrect":0,"wilson_high":0.24249400665524087,"premium_pct":24.25,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-b38fd9e00f"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-b38fd9e00f","version":"f52d37024112","displayName":"Grade TrustDex token safety verdict (sandbox graduation run) seller","description":"Graded hire of 0xb38fd9e00f3f055482a4cda0200c6542824cb393 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xb38fd9e00f3f055482a4cda0200c6542824cb393/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xb38fd9e00f3f055482a4cda0200c6542824cb393\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xb38fd9e00f3f055482a4cda0200c6542824cb393\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-b38fd9e00f"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":12,"incorrect":0,"wilson_low":2.1025014877572554e-17,"wilson_high":0.24249400665524087,"calibrated":true,"premium_pct":24.25,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xb38fd9e00f3f055482a4cda0200c6542824cb393 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xb38fd9e00f3f055482a4cda0200c6542824cb393 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192811,"source":"/v1/agents/8453/0xb38fd9e00f3f055482a4cda0200c6542824cb393/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xb38fd9e00f3f055482a4cda0200c6542824cb393 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"12 paid jobs ended with a ruling: 12 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 12, Wilson width 0.242 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 12 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xb38fd9e00f3f055482a4cda0200c6542824cb393","name":null,"source":"observatory seller record (14 jobs on Base)"},{"role":"buyer","address":"0x499957f19778649b06d090f64cbdd7fbd5b17d89","name":null,"source":"14 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xb38fd9e00f3f055482a4cda0200c6542824cb393/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xb38fd9e00f3f055482a4cda0200c6542824cb393"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"TrustDex token safety verdict (sandbox graduation run)"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xb38fd9e00f3f055482a4cda0200c6542824cb393","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xb38fd9e00f3f055482a4cda0200c6542824cb393"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-dbf2bb3494","title":"Grade Okx perp snapshot seller","description":"Virtuals ACP (ERC-8183) seller of Okx perp snapshot. 12 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xdbf2bb34949f574b1623db1be7a28fa436283294","pool":null},"numbers":{"n":12,"incorrect":0,"wilson_high":0.24249400665524087,"premium_pct":24.25,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-dbf2bb3494"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-dbf2bb3494","version":"5f0409af2369","displayName":"Grade Okx perp snapshot seller","description":"Graded hire of 0xdbf2bb34949f574b1623db1be7a28fa436283294 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xdbf2bb34949f574b1623db1be7a28fa436283294/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xdbf2bb34949f574b1623db1be7a28fa436283294\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xdbf2bb34949f574b1623db1be7a28fa436283294\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-dbf2bb3494"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":12,"incorrect":0,"wilson_low":2.1025014877572554e-17,"wilson_high":0.24249400665524087,"calibrated":true,"premium_pct":24.25,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xdbf2bb34949f574b1623db1be7a28fa436283294 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xdbf2bb34949f574b1623db1be7a28fa436283294 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192811,"source":"/v1/agents/8453/0xdbf2bb34949f574b1623db1be7a28fa436283294/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xdbf2bb34949f574b1623db1be7a28fa436283294 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"12 paid jobs ended with a ruling: 12 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 12, Wilson width 0.242 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 12 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xdbf2bb34949f574b1623db1be7a28fa436283294","name":null,"source":"observatory seller record (13 jobs on Base)"},{"role":"buyer","address":"0x51e0f80d650bb39bbdc2a408f9d2b507f711843a","name":null,"source":"13 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xdbf2bb34949f574b1623db1be7a28fa436283294/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xdbf2bb34949f574b1623db1be7a28fa436283294"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"okx_perp_snapshot"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xdbf2bb34949f574b1623db1be7a28fa436283294","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xdbf2bb34949f574b1623db1be7a28fa436283294"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-4cdb0d2fd8","title":"Grade Launch digest seller","description":"Virtuals ACP (ERC-8183) seller of Launch digest, Forecast calibration, Social evidence quality. 11 ruled paid jobs, 2 incorrect. Graded workflow ready; the pool is not","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b","pool":null},"numbers":{"n":11,"incorrect":2,"wilson_high":0.4769805619608442,"premium_pct":47.7,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-4cdb0d2fd8"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-4cdb0d2fd8","version":"431f1c01ad6f","displayName":"Grade Launch digest seller","description":"Graded hire of 0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-4cdb0d2fd8"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":11,"incorrect":2,"wilson_low":0.05136768974608512,"wilson_high":0.4769805619608442,"calibrated":false,"premium_pct":47.7,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","A calibrated record: n 11, width 0.426; needs n ≥ 5 and width ≤ 0.35: about 4 more clean paid jobs.","The pool opening rule holds: Not yet: width 0.426 > 0.35; about 4 more clean paid jobs."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192804,"source":"/v1/agents/8453/0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"11 paid jobs ended with a ruling: 9 correct, 2 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"missing","title":"A calibrated record","who":"buyer","why":"n 11, width 0.426; needs n ≥ 5 and width ≤ 0.35: about 4 more clean paid jobs."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: width 0.426 > 0.35; about 4 more clean paid jobs."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: premium 47.7% of price exceeds the 30.0% pool rule (interval 5.1%–47.7% over 11 graded) — no pool covers at that ratio; deposit-only terms"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b","name":null,"source":"observatory seller record (674 jobs on Base)"},{"role":"buyer","address":"0x22cbc8b546978fd414fc02cbb91d0981cf94ae40","name":null,"source":"641 jobs with this seller on Base"},{"role":"buyer","address":"0xa43ca6a0d013a53a326dcc34a8918b2ba143127f","name":null,"source":"30 jobs with this seller on Base"},{"role":"buyer","address":"0xd494a454888a390b2b05df74ae2b5fd9c9902b71","name":null,"source":"2 jobs with this seller on Base"},{"role":"buyer","address":"0xef25e2144f7ca887a9dc59e732c9e23e6a5847bb","name":null,"source":"1 job with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"launch_digest"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x4cdb0d2fd8755a7c3924b025cd953d665d023c2b"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-4a849c5677","title":"Grade Verifiable random event seller","description":"Virtuals ACP (ERC-8183) seller of Verifiable random event. 11 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x4a849c56777d434ece98d2b9d10eef14a6c4fe99","pool":null},"numbers":{"n":11,"incorrect":0,"wilson_high":0.2588329669680317,"premium_pct":25.88,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-4a849c5677"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-4a849c5677","version":"82ba37a479fe","displayName":"Grade Verifiable random event seller","description":"Graded hire of 0x4a849c56777d434ece98d2b9d10eef14a6c4fe99 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x4a849c56777d434ece98d2b9d10eef14a6c4fe99/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x4a849c56777d434ece98d2b9d10eef14a6c4fe99\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x4a849c56777d434ece98d2b9d10eef14a6c4fe99\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"11363636000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-4a849c5677"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":11,"incorrect":0,"wilson_low":0,"wilson_high":0.2588329669680317,"calibrated":true,"premium_pct":25.88,"price":"11363636000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x4a849c56777d434ece98d2b9d10eef14a6c4fe99 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x4a849c56777d434ece98d2b9d10eef14a6c4fe99 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192810,"source":"/v1/agents/8453/0x4a849c56777d434ece98d2b9d10eef14a6c4fe99/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x4a849c56777d434ece98d2b9d10eef14a6c4fe99 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"11 paid jobs ended with a ruling: 11 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 11, Wilson width 0.259 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 11 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x4a849c56777d434ece98d2b9d10eef14a6c4fe99","name":null,"source":"observatory seller record (13 jobs on Base)"},{"role":"buyer","address":"0xb9f8b4e0bda1c8b0ba05e9268de5f605cf86b8f1","name":null,"source":"13 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x4a849c56777d434ece98d2b9d10eef14a6c4fe99/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x4a849c56777d434ece98d2b9d10eef14a6c4fe99"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"verifiable_random_event"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x4a849c56777d434ece98d2b9d10eef14a6c4fe99","chainId":8453,"tenant":"moonbeam","price":"11363636000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x4a849c56777d434ece98d2b9d10eef14a6c4fe99"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-6eb71742ca","title":"Grade County-distress-signal seller","description":"Virtuals ACP (ERC-8183) seller of County-distress-signal. 10 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x6eb71742ca1bc46af274321fc15ce0215a027096","pool":null},"numbers":{"n":10,"incorrect":0,"wilson_high":0.2775327998628892,"premium_pct":27.75,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-6eb71742ca"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-6eb71742ca","version":"1e97e249d96d","displayName":"Grade County-distress-signal seller","description":"Graded hire of 0x6eb71742ca1bc46af274321fc15ce0215a027096 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x6eb71742ca1bc46af274321fc15ce0215a027096/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x6eb71742ca1bc46af274321fc15ce0215a027096\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x6eb71742ca1bc46af274321fc15ce0215a027096\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-6eb71742ca"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":10,"incorrect":0,"wilson_low":0,"wilson_high":0.2775327998628892,"calibrated":true,"premium_pct":27.75,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x6eb71742ca1bc46af274321fc15ce0215a027096 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x6eb71742ca1bc46af274321fc15ce0215a027096 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192808,"source":"/v1/agents/8453/0x6eb71742ca1bc46af274321fc15ce0215a027096/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x6eb71742ca1bc46af274321fc15ce0215a027096 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"10 paid jobs ended with a ruling: 10 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 10, Wilson width 0.278 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 10 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x6eb71742ca1bc46af274321fc15ce0215a027096","name":null,"source":"observatory seller record (30 jobs on Base)"},{"role":"buyer","address":"0x6d67ebd2d03eb4cd6d0bcc803b56fc93412825ba","name":null,"source":"30 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x6eb71742ca1bc46af274321fc15ce0215a027096/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x6eb71742ca1bc46af274321fc15ce0215a027096"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"county-distress-signal"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x6eb71742ca1bc46af274321fc15ce0215a027096","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x6eb71742ca1bc46af274321fc15ce0215a027096"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-08a6a2ddec","title":"Grade SafeRoute","description":"Virtuals ACP (ERC-8183) seller of Safe token swap quote. 10 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x08a6a2ddecdebdbfcb29d725042a6f3d74849e08","pool":null},"numbers":{"n":10,"incorrect":0,"wilson_high":0.2775327998628892,"premium_pct":27.75,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-08a6a2ddec"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-08a6a2ddec","version":"3f07dd007478","displayName":"Grade SafeRoute","description":"Graded hire of 0x08a6a2ddecdebdbfcb29d725042a6f3d74849e08 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/61527/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x08a6a2ddecdebdbfcb29d725042a6f3d74849e08\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x08a6a2ddecdebdbfcb29d725042a6f3d74849e08\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-08a6a2ddec"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":10,"incorrect":0,"wilson_low":0,"wilson_high":0.2775327998628892,"calibrated":true,"premium_pct":27.75,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["First delivery graded (facts + Jev): Hireable. No delivery has been graded yet, and nothing is sent to it on its own: a first graded delivery follows a buyer’s hire (POST /v1/handshake) and the grade asked for it (POST /v1/judge/compose).","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"graded","who":"buyer","why":"Hireable. No delivery has been graded yet, and nothing is sent to it on its own: a first graded delivery follows a buyer’s hire (POST /v1/handshake) and the grade asked for it (POST /v1/judge/compose)."},"read_at":1791192814,"source":"/v1/agents/8453/61527/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"ok","title":"Identity on chain (ERC-8004 registration)","who":null,"why":"Registered on chain 8453; owner 0x08a6a2ddecdebdbfcb29d725042a6f3d74849e08."},{"id":"card","n":2,"pilot":null,"status":"ok","title":"A registration card that can be read","who":null,"why":"The registration card was read at https://api.usesaferoute.com/.well-known/agent-registration.json."},{"id":"endpoint","n":3,"pilot":null,"status":"ok","title":"An endpoint the broker may call","who":null,"why":"Endpoint published at api.usesaferoute.com (a2a; in the card)."},{"id":"probe","n":4,"pilot":null,"status":"ok","title":"The endpoint answered the probe","who":null,"why":"Answered in a2a at 2026-10-05 06:12 UTC (harvester), at https://api.usesaferoute.com/a2a/v1: the published URL did not answer (the published endpoint is the agent card, which is read with GET; the handshake is POSTed to the card's url)."},{"id":"skills","n":5,"pilot":null,"status":"ok","title":"Skills, declared or derived","who":null,"why":"12 skills declared in its card."},{"id":"class","n":6,"pilot":null,"status":"ok","title":"A job class with a deterministic check","who":null,"why":"Class wire.reply: its deterministic check judges the reply before Jev is asked."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"Hireable. No delivery has been graded yet, and nothing is sent to it on its own: a first graded delivery follows a buyer’s hire (POST /v1/handshake) and the grade asked for it (POST /v1/judge/compose)."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"10 paid jobs ended with a ruling: 10 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 10, Wilson width 0.278 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 10 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"hireable"},"participants":[{"role":"seller","address":"0x08a6a2ddecdebdbfcb29d725042a6f3d74849e08","name":"SafeRoute","source":"observatory seller record (12 jobs on Base)"},{"role":"buyer","address":"0x391e22c9578d6d39731ea91b74c1a10f8d32c320","name":null,"source":"12 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/61527/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x08a6a2ddecdebdbfcb29d725042a6f3d74849e08"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":"the endpoint on the seller’s card"},"det":{"catalogue":"ok","catalogue_why":null,"det":"a reply came back && it is not a protocol error or a tool isError && its result is non-empty && (the offer nonce is echoed, where the protocol carries it back)","det_source":"class wire.reply (GET /v1/classes)","id":"wire.reply","kind":"safe_token_swap_quote"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x08a6a2ddecdebdbfcb29d725042a6f3d74849e08","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x08a6a2ddecdebdbfcb29d725042a6f3d74849e08"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-c39e8b6923","title":"Grade BaseContractRiskBrief seller","description":"Virtuals ACP (ERC-8183) seller of BaseContractRiskBrief. 10 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0xc39e8b692381e4a3669a4b3d44b77110d2147263","pool":null},"numbers":{"n":10,"incorrect":0,"wilson_high":0.2775327998628892,"premium_pct":27.75,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-c39e8b6923"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-c39e8b6923","version":"a8c3dcc42693","displayName":"Grade BaseContractRiskBrief seller","description":"Graded hire of 0xc39e8b692381e4a3669a4b3d44b77110d2147263 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0xc39e8b692381e4a3669a4b3d44b77110d2147263/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xc39e8b692381e4a3669a4b3d44b77110d2147263\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0xc39e8b692381e4a3669a4b3d44b77110d2147263\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-c39e8b6923"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":10,"incorrect":0,"wilson_low":0,"wilson_high":0.2775327998628892,"calibrated":true,"premium_pct":27.75,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0xc39e8b692381e4a3669a4b3d44b77110d2147263 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0xc39e8b692381e4a3669a4b3d44b77110d2147263 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192811,"source":"/v1/agents/8453/0xc39e8b692381e4a3669a4b3d44b77110d2147263/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0xc39e8b692381e4a3669a4b3d44b77110d2147263 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"10 paid jobs ended with a ruling: 10 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 10, Wilson width 0.278 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 10 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0xc39e8b692381e4a3669a4b3d44b77110d2147263","name":null,"source":"observatory seller record (10 jobs on Base)"},{"role":"buyer","address":"0x88b3a4e07c6d28f89b308f50798edaf62c80a096","name":null,"source":"10 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0xc39e8b692381e4a3669a4b3d44b77110d2147263/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0xc39e8b692381e4a3669a4b3d44b77110d2147263"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"BaseContractRiskBrief"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0xc39e8b692381e4a3669a4b3d44b77110d2147263","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0xc39e8b692381e4a3669a4b3d44b77110d2147263"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-472ff650af","title":"Grade Web to markdown seller","description":"Virtuals ACP (ERC-8183) seller of Web to markdown. 10 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x472ff650afb6e716c38af706e1785500a4477e49","pool":null},"numbers":{"n":10,"incorrect":0,"wilson_high":0.2775327998628892,"premium_pct":27.75,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-472ff650af"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-472ff650af","version":"660f85eaa475","displayName":"Grade Web to markdown seller","description":"Graded hire of 0x472ff650afb6e716c38af706e1785500a4477e49 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x472ff650afb6e716c38af706e1785500a4477e49/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x472ff650afb6e716c38af706e1785500a4477e49\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x472ff650afb6e716c38af706e1785500a4477e49\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"1136364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-472ff650af"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":10,"incorrect":0,"wilson_low":0,"wilson_high":0.2775327998628892,"calibrated":true,"premium_pct":27.75,"price":"1136364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x472ff650afb6e716c38af706e1785500a4477e49 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x472ff650afb6e716c38af706e1785500a4477e49 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192812,"source":"/v1/agents/8453/0x472ff650afb6e716c38af706e1785500a4477e49/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x472ff650afb6e716c38af706e1785500a4477e49 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"10 paid jobs ended with a ruling: 10 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 10, Wilson width 0.278 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 10 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x472ff650afb6e716c38af706e1785500a4477e49","name":null,"source":"observatory seller record (10 jobs on Base)"},{"role":"buyer","address":"0x8158a79a3e8430669e15d400591f7b8fc1724692","name":null,"source":"10 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x472ff650afb6e716c38af706e1785500a4477e49/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x472ff650afb6e716c38af706e1785500a4477e49"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"web_to_markdown"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x472ff650afb6e716c38af706e1785500a4477e49","chainId":8453,"tenant":"moonbeam","price":"1136364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x472ff650afb6e716c38af706e1785500a4477e49"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-7eae90d4aa","title":"Grade WalletDecode seller","description":"Virtuals ACP (ERC-8183) seller of WalletDecode. 9 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x7eae90d4aac511491694e2f1854db54f53d59e92","pool":null},"numbers":{"n":9,"incorrect":0,"wilson_high":0.2991450484195441,"premium_pct":29.91,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-7eae90d4aa"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-7eae90d4aa","version":"bf8ba8490608","displayName":"Grade WalletDecode seller","description":"Graded hire of 0x7eae90d4aac511491694e2f1854db54f53d59e92 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x7eae90d4aac511491694e2f1854db54f53d59e92/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x7eae90d4aac511491694e2f1854db54f53d59e92\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"113636364000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x7eae90d4aac511491694e2f1854db54f53d59e92\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"113636364000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-7eae90d4aa"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":9,"incorrect":0,"wilson_low":0,"wilson_high":0.2991450484195441,"calibrated":true,"premium_pct":29.91,"price":"113636364000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x7eae90d4aac511491694e2f1854db54f53d59e92 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x7eae90d4aac511491694e2f1854db54f53d59e92 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192810,"source":"/v1/agents/8453/0x7eae90d4aac511491694e2f1854db54f53d59e92/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x7eae90d4aac511491694e2f1854db54f53d59e92 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"9 paid jobs ended with a ruling: 9 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 9, Wilson width 0.299 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 9 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x7eae90d4aac511491694e2f1854db54f53d59e92","name":null,"source":"observatory seller record (17 jobs on Base)"},{"role":"buyer","address":"0x88d181346cd79c1631adf03a87d97e9d425bf9f8","name":null,"source":"17 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x7eae90d4aac511491694e2f1854db54f53d59e92/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x7eae90d4aac511491694e2f1854db54f53d59e92"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"walletDecode"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x7eae90d4aac511491694e2f1854db54f53d59e92","chainId":8453,"tenant":"moonbeam","price":"113636364000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x7eae90d4aac511491694e2f1854db54f53d59e92"},{"schema":"taifoon.workflow-plan.v1","card":{"id":"mb-grade-2cf1aad0f7","title":"Grade Risk snapshot seller","description":"Virtuals ACP (ERC-8183) seller of Risk snapshot, Delivery proof, Proof verify. 9 ruled paid jobs, 0 incorrect. Graded workflow ready; the pool is not open.","kind":"grade","protocol":"erc8183","chain":8453,"tenant":"moonbeam","steps":["discover","hire","offer","delivery","prepare","hardfail","jev","answers","verdict","settle","complete-gate","complete","held","receipt","record","quote"],"in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","subject":{"seller":"0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470","pool":null},"numbers":{"n":9,"incorrect":0,"wilson_high":0.2991450484195441,"premium_pct":29.91,"as_of":"2026-10-05T09:33:18.000Z"},"source":"/v1/workflows/mb-grade-2cf1aad0f7"},"entry":{"$schema":"https://www.taifoon.io/schemas/studio/workflow.v1.json","id":"mb-grade-2cf1aad0f7","version":"63b99a6bb766","displayName":"Grade Risk snapshot seller","description":"Graded hire of 0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470 on Base: offer, delivery, facts, grader, verdict, settle on the hook, quote.","tenant":"moonbeam","chain":8453,"contract":"https://www.taifoon.io/schemas/coordination/v1/","steps":[{"id":"Discover agent","block":"discover","in":null,"out":"https://www.taifoon.io/schemas/coordination/v1/agent.json","does":"read the seller’s own checklist: identity, card, endpoint, probe, skills, class, record","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"GET","url":"https://coord.taifoon.dev/v1/agents/8453/0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470/readiness?tenant=moonbeam","options":{}},"notesInFlow":true,"position":[0,300]}},{"id":"Hire intent","block":"hire","in":"https://www.taifoon.io/schemas/coordination/v1/agent.json","out":"https://www.taifoon.io/schemas/coordination/v1/hire.json","does":"the hire intent: task, candidate seller, endpoint/tool, buyer, price, chain (a HIRE in state Open)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.set","typeVersion":3.4,"parameters":{"assignments":{"assignments":[]},"options":{}},"notesInFlow":true,"position":[220,300]}},{"id":"Offer + deliver","block":"offer","in":"https://www.taifoon.io/schemas/coordination/v1/hire.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"POST /v1/handshake {dispatch:true}: the offer goes to the seller’s own endpoint; the reply is held with its keccak digest","effect":"dispatch","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"handshake","operation":"open"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[440,300]}},{"id":"Delivery","block":"delivery","in":"https://www.taifoon.io/schemas/coordination/v1/job.json","out":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","does":"stop unless a reply digest is held (no digest = nothing to settle)","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"const j = $json; if (!j.delivery?.digest) throw new Error('no reply digest: nothing to settle'); return [{ json: j }];"},"notesInFlow":true,"position":[660,300]}},{"id":"Code establishes the facts (a failed check ends the job)","block":"prepare","in":"https://www.taifoon.io/schemas/coordination/v1/delivery.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"POST /v1/judge/compose (prepare): the facts decide first; hard_fail ends here; else the exact text Jev reads + prepare_digest","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"prepare"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[880,300]}},{"id":"Hard fail?","block":"hardfail","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/facts.json","does":"branch: a hard fail goes straight to the verdict without asking Jev","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.hard_fail }}","rightValue":true,"operator":{"type":"boolean","operation":"true"}}]},"options":{}},"notesInFlow":true,"position":[1100,300]}},{"id":"Jev answers RUBRIC_v1, code composes the verdict","block":"jev","in":"https://www.taifoon.io/schemas/coordination/v1/facts.json","out":"https://www.taifoon.io/schemas/coordination/v1/answers.json","does":"TypeSafe ask on the prepared text: every RUBRIC_ASKED answer with its whole distribution","effect":"jev","signer":null,"moves_money":false,"n8n":{"type":"@taifoon/n8n-nodes-typesafe.taifoonTypeSafe","typeVersion":1,"parameters":{"operation":"ask","connection":"direct","failClosed":true},"notesInFlow":true,"credentials":{"taifoonTypeSafeApi":{"id":"tfntypesafe00002","name":"TypeSafe (taifoonTypeSafeApi)"}},"position":[1320,300]}},{"id":"Record the answers and the decision","block":"answers","in":"https://www.taifoon.io/schemas/coordination/v1/answers.json","out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"POST /v1/judge/compose (answers): recompose under THRESHOLDS_v1, record decision.v2, anchor on JevDecisionLog","effect":"record","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"judge","operation":"compose","composeSubject":"handshake","composeMode":"answers"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1540,300]}},{"id":"Verdict","block":"verdict","in":["https://www.taifoon.io/schemas/coordination/v1/verdict.json","https://www.taifoon.io/schemas/coordination/v1/facts.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","does":"the composed verdict (complete | reject | needs_review) with what settlement needs carried forward","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[1760,300]}},{"id":"Settle plan","block":"settle","in":"https://www.taifoon.io/schemas/coordination/v1/verdict.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"POST /v1/settle: the plan (jobId, price, premium, deposit, calls[] in order, who signs each); nothing is signed here","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"CUSTOM.taifoon","typeVersion":1,"parameters":{"resource":"settlement","operation":"settle","kind":"agent","chainId":8453,"tenant":"moonbeam"},"notesInFlow":true,"credentials":{"taifoonRelayerApi":{"id":"tfnrelayerkey001","name":"Taifoon Relayer Key (hire workflow)"}},"position":[1980,300]}},{"id":"Verdict says complete?","block":"complete-gate","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"branch on the composed verdict: complete → complete; otherwise hold (Submitted → Held)","effect":"gate","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.if","typeVersion":2.2,"parameters":{"conditions":{"conditions":[{"leftValue":"={{ $json.verdict }}","rightValue":"complete","operator":{"type":"string","operation":"equals"}}]},"options":{}},"notesInFlow":true,"position":[2200,300]}},{"id":"Buyer · complete + capture","block":"complete","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"complete(jobId) (+ capture): machine → Settled; the seller is paid, its deposit returned","effect":"write","signer":"buyer","moves_money":true,"n8n":{"type":"CUSTOM.taifoonDevnetSigner","typeVersion":1,"parameters":{"callsField":"calls","onlySigner":"buyer","onlyActions":"complete,capture","sendRequires":false,"wait":true},"notesInFlow":true,"credentials":{"taifoonDevnetKeyApi":{"id":"tfndevnetkey0001","name":"Taifoon Devnet Key (anvil #0)"}},"position":[2420,300]}},{"id":"Held for review","block":"held","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","does":"needs_review / reject: funded and sealed, nothing paid; the evaluator leg or the deadline decides","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: { ...$json, ending: 'held' } }];"},"notesInFlow":true,"position":[2640,300]}},{"id":"Receipt","block":"receipt","in":"https://www.taifoon.io/schemas/coordination/v1/settlement.json","out":"https://www.taifoon.io/schemas/coordination/v1/job.json","does":"the whole JOB: hire, delivery, facts, verdict, settlement — every transaction with its proof link","effect":"pure","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.code","typeVersion":2,"parameters":{"jsCode":"return [{ json: $json }];"},"notesInFlow":true,"position":[2860,300]}},{"id":"Seller record","block":"record","in":["https://www.taifoon.io/schemas/coordination/v1/job.json","https://www.taifoon.io/schemas/coordination/v1/trace.json","https://www.taifoon.io/schemas/coordination/v1/agent.json","https://www.taifoon.io/schemas/coordination/v1/verdict.json"],"out":"https://www.taifoon.io/schemas/coordination/v1/record.json","does":"the seller’s graded history: paid jobs that ended with a ruling, the Wilson interval, calibrated or thin","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"5681818000000000000\"}","options":{}},"notesInFlow":true,"position":[3080,300]}},{"id":"Price the next premium from the seller record (Wilson)","block":"quote","in":"https://www.taifoon.io/schemas/coordination/v1/record.json","out":"https://www.taifoon.io/schemas/coordination/v1/quote.json","does":"POST /v1/pools/quote: deposit ladder, premium = Wilson-high × P, which pool covers, whether it may auto-complete","effect":"read","signer":null,"moves_money":false,"n8n":{"type":"n8n-nodes-base.httpRequest","typeVersion":4.2,"parameters":{"method":"POST","url":"https://coord.taifoon.dev/v1/pools/quote","sendBody":true,"specifyBody":"json","jsonBody":"{\"seller\":\"0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470\",\"chainId\":8453,\"tenant\":\"moonbeam\",\"price\":\"5681818000000000000\"}","options":{}},"notesInFlow":true,"position":[3300,300]}}],"connections":null,"n8n":{"active":false,"settings":{"executionOrder":"v1"},"tags":[],"meta":{}},"source":"/v1/workflows/mb-grade-2cf1aad0f7"},"status":{"workflow":"graded workflow ready","pool":"pool not created; not open during the pilot","record":"record: none (on-chain recording is off by default)"},"pool":null,"readiness":{"n":9,"incorrect":0,"wilson_low":0,"wilson_high":0.2991450484195441,"calibrated":true,"premium_pct":29.91,"price":"5681818000000000000","as_of":"2026-10-05T09:33:18.000Z"},"checklist":{"missing":["Identity on chain (ERC-8004 registration): No ERC-8004 identity: 0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470 owns no agent on chain 8453. The layer dispatches to identities and registered cards only.","A registration card that can be read: A card is read from an ERC-8004 identity’s agentURI; there is no identity yet.","An endpoint the broker may call: No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable.","The endpoint answered the probe: Nothing to probe until an endpoint is published.","Skills, declared or derived: No skill is published, so no buyer can be matched to it.","A job class with a deterministic check: A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","First delivery graded (facts + Jev): A delivery can be graded once the agent is hireable.","The pool opening rule holds: Not yet: 1 distinct buyer < 2."],"next":{"step":"identity","who":"owner","why":"No ERC-8004 identity: 0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},"read_at":1791192812,"source":"/v1/agents/8453/0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470/readiness?tenant=moonbeam","steps":[{"id":"identity","n":1,"pilot":null,"status":"missing","title":"Identity on chain (ERC-8004 registration)","who":"owner","why":"No ERC-8004 identity: 0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470 owns no agent on chain 8453. The layer dispatches to identities and registered cards only."},{"id":"card","n":2,"pilot":null,"status":"blocked","title":"A registration card that can be read","who":"owner","why":"A card is read from an ERC-8004 identity’s agentURI; there is no identity yet."},{"id":"endpoint","n":3,"pilot":null,"status":"missing","title":"An endpoint the broker may call","who":"owner","why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},{"id":"probe","n":4,"pilot":null,"status":"blocked","title":"The endpoint answered the probe","who":"owner","why":"Nothing to probe until an endpoint is published."},{"id":"skills","n":5,"pilot":null,"status":"missing","title":"Skills, declared or derived","who":"owner","why":"No skill is published, so no buyer can be matched to it."},{"id":"class","n":6,"pilot":null,"status":"blocked","title":"A job class with a deterministic check","who":"owner","why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A."},{"id":"graded","n":7,"pilot":null,"status":"missing","title":"First delivery graded (facts + Jev)","who":"buyer","why":"A delivery can be graded once the agent is hireable."},{"id":"record","n":8,"pilot":null,"status":"ok","title":"A settled record","who":null,"why":"9 paid jobs ended with a ruling: 9 correct, 0 incorrect."},{"id":"calibrated","n":9,"pilot":null,"status":"ok","title":"A calibrated record","who":null,"why":"n 9, Wilson width 0.299 (≤ 0.35)."},{"id":"pool_eligible","n":10,"pilot":null,"status":"missing","title":"The pool opening rule holds","who":"buyer","why":"Not yet: 1 distinct buyer < 2."},{"id":"pool","n":11,"pilot":"pool not created: not open during the pilot","status":"blocked","title":"A pool exists","who":"pool","why":"No pool yet. Anyone may open one now, but a pool opened before the rule holds will not quote cover."},{"id":"funded","n":12,"pilot":"backing a pool is not open during the pilot","status":"blocked","title":"The pool is funded","who":"pool","why":"A pool must exist before it can be funded."},{"id":"assured","n":13,"pilot":"covered hires are not open during the pilot","status":"blocked","title":"A quote returns guaranteed","who":"buyer","why":"Not guaranteed. moonbeam: thin record: 9 settled (< 20) — the interval is wide because the evidence is short, not because the seller failed"}],"verdict":"not_hireable"},"participants":[{"role":"seller","address":"0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470","name":null,"source":"observatory seller record (10 jobs on Base)"},{"role":"buyer","address":"0x86eb43312e49c83ee3a6536432b57addfd5c513c","name":null,"source":"10 jobs with this seller on Base"},{"role":"grader","address":null,"name":"Jev by TypeSafe","source":"RUBRIC_v1, jev-1.13.0: your own TypeSafe key, or our grade (POST /v1/judge/compose)"},{"role":"operator","address":"0x7d2156d232db749802a292eef2c2d36a53b4ed75","name":"pilot operator","source":"signs every hook write during the pilot"}],"grading":{"discover":{"call":"GET /v1/agents/8453/0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470/readiness?tenant=moonbeam","record":"GET /v1/agents/who/0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470"},"offer":{"call":"POST /v1/handshake {dispatch:true}","endpoint":null,"why":"No endpoint is published: nothing can be probed or hired. The agent stays listed, marked not hireable."},"det":{"catalogue":"none","catalogue_why":"A class needs an endpoint that answered: wire.reply applies to every agent that answers MCP or A2A.","det":"the job’s ending read from its own events: completed and paid is correct; delivered then rejected, or paid and never delivered, is incorrect; expired after delivery is undecided (the grader’s case)","det_source":"the Virtuals ACP (ERC-8183) events of each job (GET /v1/judge/evidence/8453/{jobId})","id":null,"kind":"risk_snapshot"},"grade":{"call":"POST /v1/judge/compose","modes":["your own TypeSafe key (mode prepare → answers)","our grade (compose on the evidence pack)"],"rubric":"RUBRIC_v1"},"verdict":"complete | reject | needs_review under THRESHOLDS_v1; a hard fail rejects without a grader call","settle":{"hook":"0xc0578657eda85e0a246771aa1839ce79b54ee80d","token":"0xb3846fd356c2149ee8d30b0449088dc74e265459","signer":"the pilot operator","calls_sent":0},"record":{"mode":"none","allowed":["none","devnet","base"],"note":"on-chain recording of the grade is off by default; a run may turn it on"},"quote":{"call":"POST /v1/pools/quote","body":{"seller":"0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470","chainId":8453,"tenant":"moonbeam","price":"5681818000000000000"}}},"calls":[],"example_job":null,"calls_why":"The GLMR pools are not open.","calls_refused":{"ok":false,"error":"The GLMR pools are not open.","code":"pools_not_open","sdk_error":"PoolsNotOpenError","why":"Deposits, redemptions, new pools and funded jobs on Moonbeam’s Base hook and pools are not built on Base; on the devnet (36927) they are, as in the Moonbeam SDK (PoolsNotOpenError). Pool state, quotes and the guide stay readable.","refused":{"action":"create-pool","chainId":8453,"market":"moonbeam-acp:8453","address":"0x91f078d10e3f0d05febcea35f114063c696aef54","contract":"PoolFactory (proxy)"},"open_on":"the devnet 36927"},"plan_ref":"/v1/pools/plan?tenant=moonbeam&seller=0x2cf1aad0f7352b9f5f3c1b79f78810a834ada470"}],"get_key":{"free":true,"why":"a free key in one call (no payment, nothing signed): send it as X-API-Key for its own budget on /v1/demands, /gw/rpc, /gw/mcp and /v1/agents/register","http":{"method":"POST","url":"https://coord.taifoon.dev/v1/register","body":{},"optional":{"wallet_address":"0x… a label for your tenant; nothing is signed"}},"mcp":{"server":"https://coord.taifoon.dev/mcp","tool":"taifoon_register","arguments":{}},"cli":"npx @taifoon/cli login --free","quickstart":"https://coord.taifoon.dev/v1/quickstart"}}