Do Not Act

Risk Gateway for prediction-market agents · REST, WebSocket, MCP and CDP/x402 · Polymarket live

STOP bad trades before your bot spends.

Drop one guard clause before trade(). Paste a market id and intended size: Do Not Act returns READY, CAUTION, DO_NOT_ACT, or INSUFFICIENT_EVIDENCE from live dispute, resolution and book-capacity evidence.

Test one live market - no signup

Try , , or change the size before running.

ready Paste market ID → see DO_NOT_ACT in seconds.

No card, no account, no private keys.

01Observe

UMA lifecycle and public book state.

02Decide

Turn dispute, ambiguity and evidence gaps into control states.

03Size

Compare requested notional to conservative public capacity.

04Stream

Keep verdict snapshots live over WebSocket.

05Prove

Preserve receipts, CDP/x402 Bazaar proof and logs.

why it exists

Raw feeds do not stop bad actions. Gates do.

Prediction-market agents already see price, depth and momentum. The failure is acting anyway when the market is disputed, the rule is ambiguous, the source hierarchy is weak, the book is stale, or the requested size no longer fits conservative public capacity.

Do Not Act puts a machine-readable gate immediately before the execution layer: proceed, slow down, or stop with evidence.

public contract

One decision contract before trade().

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.

WEBSOCKET /v1/preflight/stream

Keeps a paid Risk Gateway verdict live for agents that cannot afford slow manual polling.

WEBSOCKET /v1/alerts/stream

Streams watchlist alert snapshots for operators that need a reconciliable feed.

GET /v1/dispute-history.csv

Exports paid dispute-ledger history for research, reconciliation and post-run audit.

GET /x402/v1/dispute/{venue}/{market_id}

Lets agents buy one dispute diagnostic through standard CDP/x402 for 0.01 USDC, with tx-hash fallback for custom clients.

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",
  "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.

backtest · signed

MicroStrategy purchase Bitcoin, Aug 26-Sep 1

Diagnostic record -> disputed UMA history -> resolved No.

Signed JSON
backtest · signed

MicroStrategy purchase Bitcoin, Jul 1-7

Disputed resolution arc -> signed stop-condition proof -> resolved No.

Signed JSON
backtest · signed

Outlast: The Jungle top Netflix show

Disputed resolution arc -> signed stop-condition proof -> resolved No.

Signed JSON
backtest · signed

Trump says "Fight" during UFC 250

Disputed resolution arc -> signed stop-condition proof -> resolved Yes.

Signed JSON

Use these as source-linked operational proof cases. Open all proof cases, inspect the 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 history
R1_WALLET_BINDINGaccount class, signature type, protocol version
R2_ALLOWANCE_BALANCEbalance, allowance, asset wrapper readiness
R3_TICK_PRECISIONtick size, price precision, payload validity
R4_METADATA_READINESSmarket state, negative-risk and metadata completeness
R5_MARKET_STATEactive, closed, paused, settled or degraded venue state
R6_BOOK_STALENESS_LIQUIDITYspread, depth, book age, slippage estimate
R7_EXIT_LIQUIDITYexit-side constraints in the Risk Gateway extension
R9_INSUFFICIENT_EVIDENCEcomponent evidence gaps that force fail-closed behavior
R10_CLIENT_POLICYcaller policy constraints such as max slippage or conservative mode
R11_CROSS_VENUE_DIVERGENCEreserved for future cross-venue evidence mismatch

proof 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 market evolved.

The moat is the maintained enforcement layer: dispute lifecycle, ambiguity, public-book capacity, requested size and receipt proof packaged into one decision your agent can enforce and your operator can audit.

integration guardrail

Risk Gateway applies requested size to the answer.

Preflight catches public venue blockers such as metadata readiness, precision, venue state, stale books, and liquidity gaps. With Risk Gateway v1.2, 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.

Remote MCP is live at /mcp. One-off machine-paid dispute diagnostics are live at /x402/v1/dispute/{venue}/{market_id} and indexed by CDP Bazaar after standard x402 settlement.

current access

Create a key. Put the gate before capital moves.

Account-first checkout issues the API key automatically, links billing to the account, and keeps key recovery simple.

Free: start without a card and run the gate with 1,000 included risk checks across dispute, resolution-risk and preflight diagnostics. Builder Plan: 30 EUR/month to keep it running: watchlists, webhooks, live preflight stream, dispute-history CSV export, receipts, higher quota, account-managed keys and recurring monitoring.

Run the 3-minute integration test / Request placement review / Create account / Login to existing account

Pricing / Why paid access exists / Access and rate limits

For agents that pay per request, the canonical CDP/x402 route is 0.01 USDC per dispute diagnostic and is indexed in CDP Bazaar. The tx-hash bridge remains as a compatibility fallback.