requestHash binds to those exact bytes.
What gets recognized
Myriad runs two trading models — an AMM and a hybrid on-chain order book — and the classifier knows both payload shapes. For order-book orders it decodes the venue’s 1e18-scaled prices into cents, computes shares and collateral notional, checks the 1-cent tick grid and time-in-force rules, and resolves the numeric market id against the live market registry. The judge reasons over:
BUY 1,000 shares of outcome 0 (Yes) in market #1264 @ 6.0¢ ≈ 60 USD1 max cost (FOK) — resolved: this is the “Yes” outcome of “Bitcoin ATH before December 31 2026?” (order-book market, state: open). Market currently prices this outcome at 5.5¢.That resolution step is what catches the classic prediction-market failure: an agent whose thesis says “back the near-certain favorite” while its order quietly buys the cheap opposite outcome. The judge sees the real outcome and the live price gap — the side-inversion has nowhere to hide. It also catches the venue-specific tells: an FOK “market order” from a bot that promised maker-only flow, or a frontend fee quietly routed to the agent’s own wallet. If a market can’t be resolved, the verdict leans ESCALATE rather than trusting the agent’s own description: fail closed, never allow on assumption.
Use it from your bot
Wrap the order you were already going to place:venue is optional — Myriad’s quote and signed-order shapes are auto-detected — and freeform action descriptions still work (mode: "semantic"). AMM trades are verified the same way: pass the /markets/quote body (market_id, outcome_id, action, value) before requesting calldata.
Use it from Claude or ChatGPT
Add the hosted connector (https://harness.chance.cc/api/mcp, see Connectors) and give your agent one standing instruction:
Before placing any Myriad Markets trade, callAgents with Myriad execution tools — including Myriad’s own CLI and MCP server — then get gated automatically; agents without them still give you provable pre-trade checks in chat.verify_intentwith my rules as the intent and the exact API payload (the quote body or the signed order submission) as the action, withvenue: "myriad". Only proceed on ALLOW; on BLOCK or ESCALATE, stop and tell me why.
How the harness knows Myriad Markets
The judge works from a versioned snapshot of Myriad’s own docs — the Protocol API reference, order-book order placement and EIP-712 signing, price scale and tick rules, time-in-force semantics, AMM quoting, positions and NegRisk events, market lifecycle and resolution, contract addresses — plus a curated brief of the venue’s footguns (1e18 price scale, Yes/No outcome semantics, FOK/FAK taker behavior, frontend-fee siphoning, centralized resolution, perpetual markets that never resolve). Static knowledge is never fetched at verdict time; the only live call is the market-registry lookup that resolves the payload’s market id to its title, outcome, and current price, and what it resolves is recorded in the verdict’s hash-chained transcript. Every documentation page the judge consults is chained with its content hash — the receipt proves exactly which knowledge, at which version, informed the decision. See Architecture.What the receipt adds for Myriad Markets
On top of the standard proof bundle (transcript root, judge signature, onchain anchor), venue-aware verdicts carryvenue: "myriad", the actionFamily, the venue actionType, mode: "structured", the knowledge-snapshot version — and the resolved market identity (title, outcome, live price and market state at verdict time), all inside the hash-chained transcript.
Roadmap: escrowed execution — the same contract, but an ALLOW triggers order placement by a Chance-held signer and a BLOCK physically never reaches one. The payload-first contract above is forward-compatible with it.
