why it exists
Alerts tell you what happened. Watchlists decide what the bot must not do.
Polymarket agents can read public market data. The operational failure is still acting when the resolution path is disputed, ambiguous, stale, too thin for the requested size, or missing enough evidence to continue safely.
Do Not Act puts a read-only, machine-readable watchlist gate immediately before execution: proceed, slow down, or stop with signed evidence.
why it is safe to try
The first integration has near-zero operational downside.
READ_ONLYNo custody, no private keys, no order signing, no routing and no execution.FAIL_CLOSEDMissing or weak evidence becomes CAUTION / DO_NOT_ACT / INSUFFICIENT_EVIDENCE, not false confidence.VERIFIABLEResponses can carry signed receipts and public proof feeds are covered by a daily Merkle root.RESEARCH_ONLYCreate a free key and test the gate in paper/shadow mode. Paid Builder API and x402 payments are paused.public contract
One decision contract before capital moves.
GET /v1/dispute/{venue}/{market_id}Converts UMA lifecycle and dispute history into stop/go evidence.
GET /v1/resolution-risk/{venue}/{market_id}Scores settlement-rule ambiguity, source hierarchy and mechanism risk.
GET /v1/preflight/{venue}/{market_id}Applies requested side, notional and slippage policy to live public-book capacity.
GET /v1/preflight/token/{chain}/{address}Runs the T1-T8 token-risk gate before an agent buys a token.
WEBSOCKET /v1/preflight/streamKeeps a Risk Gateway verdict live for agents that cannot afford slow manual polling. Paid stream onboarding is paused.
WEBSOCKET /v1/alerts/streamStreams watchlist alert snapshots for operators that need a reconciliable feed.
GET /v1/dispute-history.csvExports dispute-ledger history for research, reconciliation and post-run audit. Paid export onboarding is paused.
GET /x402/v1/dispute/{venue}/{market_id}Machine-payment route is paused for new payments and returns payments_paused instead of a new challenge.
GET /x402/v1/preflight/token/{chain}/{address}Token-risk machine-payment route is paused for new payments and returns payments_paused instead of a new challenge.
The primary wedge is UMA dispute and resolution risk for Polymarket agents. Token-risk, WebSocket, MCP and x402 extend the same guard-clause contract, but the proof-backed adoption path starts with disputed prediction markets.
The response vocabulary is built for enforcement, not dashboards: READY, CAUTION, DO_NOT_ACT, or INSUFFICIENT_EVIDENCE. Reason codes show the blocker and the evidence needed to change the answer.
For trading systems where latency matters, WebSocket snapshots reduce integration overhead versus repeated polling. Do Not Act stays diagnostic and read-only; execution remains in the caller.
live example object
Dispute history becomes an enforceable stop.
Every response packages source evidence, verdict, reason codes and next evidence together so the agent can halt with context.
{
"schema_version": "donotact_dispute_v1",
"venue": "polymarket",
"market_id": "580810",
"decision_schema_version": "donotact_resolution_governance_v1_3",
"decision_domain": "prediction_market_resolution",
"resolver_type": "uma_moov2_managed",
"resolver_governance": {
"dispute_trail": "on_chain",
"platform_override_possible": true
},
"resolution_risk_classes": ["R8_RESOLUTION_AMBIGUITY"],
"verdict": "DO_NOT_ACT",
"lifecycle_state": "proposed",
"status_history": ["proposed", "disputed"],
"has_disputed_history": true,
"no_trade_reasons": [
{
"class": "R8_RESOLUTION_AMBIGUITY",
"code": "UMA_DISPUTE_DETECTED",
"advisory": false
}
],
"what_would_change_this": [
"dispute resolved or clarified",
"review authenticated dispute ledger"
],
"not_advice": true
}
proof / resolved cases
Evidence your agent can defend later.
These cases show the control layer on real disputed markets: stop conditions, source-linked evidence and signed records your agent can preserve before the market narrative changes.
Every public proof feed is covered by a signed daily Merkle root at /proof-root.json, with public verification through POST /v1/proof-root/verify.
MicroStrategy purchase Bitcoin, Aug 26-Sep 1
Diagnostic record -> disputed UMA history -> resolved No.
Signed JSONMicroStrategy purchase Bitcoin, Jul 1-7
Disputed resolution arc -> signed stop-condition proof -> resolved No.
Signed JSONOutlast: The Jungle top Netflix show
Disputed resolution arc -> signed stop-condition proof -> resolved No.
Signed JSONTrump says "Fight" during UFC 250
Disputed resolution arc -> signed stop-condition proof -> resolved Yes.
Signed JSONResolved dispute arcs and live pre-action records. Use these as source-linked operational proof cases. Open all proof cases, inspect the live pre-action evidence feed, or use the launch proof pack.
reason taxonomy
Every rejection becomes a machine-readable cause.
R8_RESOLUTION_AMBIGUITYsubjective wording, unclear source hierarchy, disputed historyR1_WALLET_BINDINGaccount class, signature type, protocol versionR2_ALLOWANCE_BALANCEbalance, allowance, asset wrapper readinessR3_TICK_PRECISIONtick size, price precision, payload validityR4_METADATA_READINESSmarket state, negative-risk and metadata completenessR5_MARKET_STATEactive, closed, paused, settled or degraded venue stateR6_BOOK_STALENESS_LIQUIDITYspread, depth, book age, slippage estimateR7_EXIT_LIQUIDITYexit-side constraints in the Risk Gateway extensionR9_INSUFFICIENT_EVIDENCEcomponent evidence gaps that force fail-closed behaviorR10_CLIENT_POLICYcaller policy constraints such as max slippage or conservative modeR11_CROSS_VENUE_DIVERGENCEcross-venue evidence mismatch or non-fungible termsR12_PLATFORM_DISCRETIONplatform or resolver can override the expected oracle pathR13_RESOLVER_CONFLICTresolver set, proposer set or governance path carries conflict riskR14_PRECEDENT_CONFLICTsimilar markets resolved differently or precedent evidence conflictsR15_ORACLE_DEPENDENCYresolution depends on external feed timing, source quality or outage riskR16_RULE_MUTATIONrules, source hierarchy or timing changed after market creationproof surface
Every verdict should leave a receipt.
Each authenticated diagnostic response carries a receipt that can be verified offline against the public receipt key. Operators can prove what the API returned before the outside state evolved.
The moat is the maintained enforcement layer: adapters for live risk evidence, requested-action context, streaming updates and receipt proof packaged into one decision your agent can enforce and your operator can audit.
integration guardrail
Risk Gateway applies requested action to the answer.
Preflight catches public blockers such as metadata readiness, precision, venue state, stale books, token-risk evidence, and liquidity gaps. With Do Not Act v1.3, agents pass side, notional, slippage tolerance, policy and horizon.
The response adds decision, component_scores, blocking_reasons, warning_reasons, risk_score, liquidity_confidence_score, and safe_operating_limits. Safe size is computed from live CLOB depth, not a Gamma-only flag. Reading one field is easy; enforcing size-aware stop/go before capital moves is the product.
resolution risk
Settlement rules are the risk layer many agents skip.
Resolution ambiguity is operational risk. The API surfaces ambiguity patterns such as subjective terms, undefined edge cases, venue-internal resolution, weak source hierarchy, and missing appeal mechanisms.
An agent can be technically ready to submit and still face unacceptable resolution risk. Do Not Act keeps those dimensions separate.
agent-readable presence
Designed for agents before dashboards.
Use /llms.txt for compact product context, /openapi.json for the contract, and the docs pages for human review. Agents can wire DO_NOT_ACT and INSUFFICIENT_EVIDENCE directly into halt paths before money moves.
Remote MCP is live at /mcp, including donotact_preflight and donotact_preflight_token. One-off machine-paid dispute diagnostics and token-risk paid calls are paused for new payments.
current access
Create a key. Put the gate before capital moves.
Access starts from an account. Free keys remain available for read-only research. Account-first paid checkout is paused.
Free/read-only: start without a card and run the gate inside quota across dispute, resolution-risk, action-aware preflight and token-risk diagnostics. Paid access: paused. No Builder subscription, paid audit, placement, or x402 per-call purchase should be made now.
Create free API key / Check payment status / Run the 3-minute integration test / Login to existing account
Payment status / Access and rate limits
Polymarket dispute API / Polymarket bot slippage gate / x402 risk API
For agents: do not send x402 or Polygon USDC payment. New unpaid x402 requests return payments_paused and do not issue a payment challenge.