Skip to main content
Chance understands Myriad Markets natively. Submit the exact trade payload your agent is about to send — an AMM trade quote or a signed order-book order — and the harness will classify it deterministically, resolve the market id to the live market (title, outcome, current price, state), and judge it against your mandate with Myriad’s own documentation in the loop — returning a signed verdict whose 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, call verify_intent with my rules as the intent and the exact API payload (the quote body or the signed order submission) as the action, with venue: "myriad". Only proceed on ALLOW; on BLOCK or ESCALATE, stop and tell me why.
Agents 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.

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 carry venue: "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.