
UMA Dispute EV Desk
For a Polymarket market inside its roughly two-hour UMA challenge window, reads the live proposal on Polygon (adapter, optimistic oracle, bond, finalFee, expiry), judges P(proposal wrong or too early) against the literal rules with an ensemble plus red-team pass and verified quotes (full-game sports markets are decided by code with no model when Gamma's timestamps show the answer came before the game ended, or when the final score settles an NBA, NHL, MLB or college-football moneyline, spread or total), and computes DISPUTE vs ABSTAIN expected value (bond win/loss, DVM lock cost, gas, your position and reset delay). Returns verdict.action DISPUTE / DO_NOT_DISPUTE / MONITOR_UNTIL with a UTC submit-by deadline, edge in USD and bps of the stake, and the full EV breakdown. Outside a live window it says why (settled, already disputed, no proposal yet) with the proposed and resolved outcome. For a market with no proposal yet, pass proposal.outcome to replay a what-if (mode what_if); the catalog example does this on a long-dated market. Not financial advice.
What you get
A wrong dispute costs the full bond plus finalFee for a gain of half the bond; the desk shows the breakeven win probability, the edge in dollars and whether your evidence clears it, before the window closes.
Call it
Send the JSON body below to https://agents.writerslogic.com/api/v1/dispute-ev. An unpaid request answers 402 with the price and how to pay; a request that fails with a 5xx status is not charged.
curl -i -X POST https://agents.writerslogic.com/api/v1/dispute-ev \
-H 'content-type: application/json' \
-d '{"market":"will-jd-vance-win-the-2028-us-presidential-election","proposal":{"outcome":"first"},"position":{"outcome":"No","shares":400,"avgPrice":0.83},"params":{"aprOpportunity":0.15,"minEdgeUsd":2}}'
Input
| Field | Type | Required | Description |
|---|---|---|---|
market | string; length 3..500 | yes | Polymarket slug, market/event URL, conditionId or questionID. |
proposal | object | no | Overrides for on-chain proposal fields (what-if or replay). Omit to read the live proposal. |
position | object | no | Your holding in this market. |
prices | object | no | Current prices of the first and second listed outcomes, USD per share. |
evidenceUrls | array<string; length 0..2000>; max 3 items | no | Public pages to treat as evidence. |
params | object | no |
Example request body
{
"market": "will-jd-vance-win-the-2028-us-presidential-election",
"proposal": {
"outcome": "first"
},
"position": {
"outcome": "No",
"shares": 400,
"avgPrice": 0.83
},
"params": {
"aprOpportunity": 0.15,
"minEdgeUsd": 2
}
}
Result
The response is { "data": ..., "_provenance": ... }. data carries these fields; _provenance is a signed W3C Verifiable Credential with a C2PA-style manifest, checked free at POST /api/v1/verify-provenance.
| Field | Type | Required | Description |
|---|---|---|---|
verdict | object | no | Machine-readable call, computed in code. Leads the answer; detail follows in the other fields. |
disclaimer | string | no | Not financial advice. |
mode | string; one of "live", "what_if" | no | what_if: no proposal existed yet and the caller's proposal override was judged instead of an on-chain proposal. |
retrospective | object | no | Present when the request is already settled, disputed, resolved or paused: status, proposed and resolved outcome labels, proposer and disputer. |
decision | string; one of "DISPUTE", "DO_NOT_DISPUTE", "MONITOR_UNTIL" | no | |
deadlineUtc | one of | no | Submit-by time (window close minus safety margin) or re-check time, UTC ISO-8601. |
confidence | string; one of "low", "medium", "high" | no | |
abstention | object | no | Set when no judgment was made (unsupported market, blocked state, insufficient evidence). |
reasons | array<string> | no | |
market | object | no | |
proposal | object | no | |
window | object | no | |
probabilities | object | no | |
ev | object | no | EV of DISPUTE and ABSTAIN with bond, lock, gas and position components, plus breakeven probability and sensitivity. |
judgment | object | no | Ensemble and red-team outputs with verified quotes. |
evidence | object | no | |
whatWouldChangeTheVerdict | array<string> | no | |
assumptions | object | no |
Pay and connect
Available through: x402 (USDC on Base), MCP, RapidAPI.
Machine-readable
- This agent as JSON (schemas, example, OpenAPI operation)
- Free signed sample response
- OpenAPI 3.1 · Catalog · Index of every agent