Predge, 31 October 2026. Prepared on 23 October from data read on 22 October 2026, 21:20 to 23:40 UTC; the vote result and the state after it were read on 30 October 2026, 23:10 to 23:40 UTC. All times UTC.
Market: "Russia-Ukraine peace talks by October 31, 2026?" (Polymarket market 4118937, condition id 0x1d78389c…cf5192). Yes needs an in-person diplomatic meeting between official representatives of Russia and Ukraine (indirect meetings through authorised mediators count) aimed at a ceasefire, peace agreement or other substantive de-escalation, by 31 October 11:59 PM ET (03:59 UTC on 1 November), publicly acknowledged by either government or reported by a consensus of credible media. Talks limited to humanitarian issues, calls and remote meetings do not count.
Status on 30 October: not resolved. A Yes proposal on 21 October was disputed, re-proposed and disputed again within four minutes, and the outcome went to UMA vote round 10375. On 26 October the vote returned "too early", UMA's answer for a question that cannot be settled yet. That does not resolve the market: the adapter reset the question and asked for a new proposal. At 23:27 UTC on 30 October nobody had proposed again, and Yes was at 0.009 in the last CLOB sample (22:30).
Timeline
| Time (UTC) | What happened on chain | Source |
|---|---|---|
| 2 Sep (block 93,092,916) | Question initialized on Polymarket's UMA CTF adapter. Reward 5 USDC.e, bond 500 USDC.e | Polygon tx 0xf96e47fe…0666 |
| 21 Oct 23:33:05 | Proposal: Yes, proposer 0x6c16…48bfa | 0x24b0d730…2cf0 |
| 21 Oct 23:33:15 | First dispute, 10 seconds later, disputer 0x4c64…c531. Question reset, new request in the same tx | 0x104dfa4e…587c |
| 21 Oct 23:36:05 | Proposal: Yes again, same proposer | 0x98781089…2095 |
| 21 Oct 23:36:53 | Second dispute, 48 seconds later, from a different disputer 0xbcb1…fa37. The outcome now goes to a UMA vote | 0x127e282b…aa74 |
| 22 Oct 00:10:47 | First disputed request added to UMA VotingV2 on Ethereum, round 10375 (settles the first proposal's and dispute's bonds) | Ethereum tx 0x45190cf5…0342 |
| 22 Oct 00:15:35 | Second disputed request added to VotingV2, round 10375. This vote decides what happens to the question | Ethereum tx 0xbc2ec592…d859 |
| 23 Oct 01:37:05 | Bulletin board, question creator: quotes the in-person rule and says the 20-21 October meetings a US special envoy held separately with Ukrainian officials in Oslo and with Russian officials in St. Petersburg do not qualify, because representatives of both countries must be present at the same meeting | Polygon tx 0xa10dc38b…4ee4 |
| 26 Oct 00:00:00 | Round 10375 ends (getRoundEndTime(10375)), 96.4 hours after the second dispute | eth_call |
| 26 Oct 00:00:23 | Both requests resolved on VotingV2, round 10375, with price -2^255 (the minimum int256). Under UMA's yes/no rules that value means "too early": the request came before the question could be answered | Ethereum tx 0x6cbc5494…550e, block 26,273,138 |
| 26 Oct 00:41:26 | QuestionReset on the adapter. "Too early" does not resolve the market; the adapter sends a new price request to the oracle (same 5 USDC.e reward, 500 USDC.e bond, 250 USDC.e final fee) | Polygon tx 0x406ec830…0ef7, block 96,179,943 |
| 30 Oct 23:27:15 | The new request is still in state Requested (getState = 1 on the oracle): no proposal yet | eth_call at block 96,464,919 |
From first proposal to the second dispute took 3 minutes 48 seconds. From the second dispute to the reset took 97.1 hours, and the question ended up back where it was before 21 October: open, waiting for a proposal.
Price and size
- Yes on the CLOB (10-minute samples): 0.0495 at 23:30 on 21 Oct, 0.1445 at 23:40 after the proposals, a high of 0.172 at 02:50 on 22 Oct, then 0.0635 at 20:00 on 22 Oct.
- Around the vote: 0.034 at 23:00 on 25 Oct, 0.0345 at 00:30 and 00:40 on 26 Oct, 0.0375 at 00:50. The reset barely moved the price; the market had stopped believing the proposal days before.
- After: 0.03 at 00:00 on 28 Oct, 0.0115 at 00:00 on 30 Oct, 0.009 at 22:30 on 30 Oct.
- Open interest 108,350 USDC on 30 Oct (data-api). Lifetime volume 535,301 USDC on 30 Oct (Gamma).
- UMA terms: 500 USDC.e bond (Gamma
umaBond), 250 USDC.e final fee and 5 USDC.e reward (RequestPrice events of the second request and of the new request).
What settlement logic should assume
None of this is a view on Yes or No.
- A proposal is a claim, not a result. Someone put up a 500 USDC.e bond saying Yes more than ten days before the deadline, while the market priced Yes near 0.05. A proposal can arrive before the end date; it settles only if it survives its window.
- A dispute in seconds is a signal, not an answer. Both proposals were challenged within a minute. Fast disputes say someone is watching this question; they do not say who is right.
- A vote does not always end the question. Here the vote returned "too early", and the market went back to waiting for a proposal. An agent that treated "vote finished" as "market settled" would have been wrong on 26 October and still be wrong today.
- After the second dispute, plan for days. The vote round ended 96.4 hours after the second dispute. Across Polymarket disputes from 1 January to 2 October 2026, the median from a second dispute to on-chain resolution was 88.5 hours. A "too early" vote adds the time to a new proposal and its 2-hour window on top.
- Read the chain, not only the venue's status field. At 23:10 on 30 October, nearly five days after the reset, Gamma still reported
umaResolutionStatus: "disputed". On chain the question had a fresh request and no proposal. - Do not move collateral on the spike. Yes went from 0.05 to 0.17 on a disputed proposal and came back. An agent that read the proposal as news would have bought the top of a claim the vote later called too early.
Context: from 1 January to 2 October 2026, 853 of 2,543 settled disputed Polymarket markets (33.5%) settled differently from the disputed proposal. That is a base rate, not a forecast for this market.
What the signed record returned on 22 and 30 October
GET https://api.predge.io/v1/settlement-risk/4118937 (free, no key). Read at Polygon block 96,004,564 (22 Oct 23:36:57), while the vote was open, it returned:
uma_state: "disputed",dispute_count: 2,open_dispute: true,sent_to_uma_vote: true,resolved_on_chain: false- both dispute txs, each with
disputed_proposal: "Yes" risk_level: "caution", recommendation quoting the 88.5-hour mediansegment_dispute_rate: 333 of 28,502 politics markets in 2026 were disputed at least once (1.17%)
Read again at Polygon block 96,464,464 (30 Oct 23:15:52), the same URL describes the new request after the reset:
uma_state: "requested",current_proposal: null,resolved_on_chain: false,dispute_count: 0(the two disputes belong to the earlier request; they are in the 22 October snapshot)- the 23 October bulletin-board update, with the sha256 of its raw text (
13e0acd3…abc8) risk_level: "ok", recommendation: no proposal, dispute or recent bulletin-board update on chain
The 22 October snapshot record-4118937-2026-10-22.json (body sha256 5a39a9a6fd6b140dc992d26e2cf01cc6563dac3b13fd18ad1c5347d90466f80e) passes all 15 checks of verify_record.py, and the 30 October snapshot record-4118937-2026-10-30.json (body sha256 ef0ce45ba152aa3312e42e4b3129e79f1b7b660e6b6782bdbd81b2db6e1a6cfb) passes all 16, including the ed25519 signature over the record and over the whole HTTP body. Both are signed with key 3b6551a6439b9bda, our current key after the rotation of the old one.
How to verify:
pip install cryptography curl -sD headers.txt -o record.json https://api.predge.io/v1/settlement-risk/4118937 curl -sO https://data.predge.io/verify_record.py python3 verify_record.py record.json --body-signature "$(grep -i '^x-predge-body-signature' headers.txt | cut -d' ' -f2- | tr -d '\r')"
Or paste a snapshot into https://data.predge.io/verify.
Next week
"Will Trump say "Two Percent" during his Midterm Rally in Lubbock, Texas?" (Polymarket 6279816). A No proposal was disputed at 00:43:38 on 28 October and a Yes proposal at 04:21:53; both requests are in UMA vote round 10378, which ends 1 November 00:00 UTC. At 22:00:04 on 28 October the question creator posted on the bulletin board that the disputed "49.2%" in the rally stream qualifies for Yes. Open interest 198,006 USDC on 30 October.
Sources
- Polygon: Managed Optimistic Oracle V2
0x2c0367a9db231ddebd88a94b4f6461a6e47c58b1(ProposePrice, DisputePrice, RequestPrice,getState,getRequest), UMA CTF adapter0x65070be91477460d8a7aeeb94ef92fe056c2f2a7(QuestionInitialized, QuestionReset, AncillaryDataUpdated,getQuestion), UMA question id0x684dd6cbe6987a947829cf0d3034e6fc00b9289d015983a38331a568ee6c4516. Public RPC: polygon.gateway.tenderly.co. - Ethereum: UMA VotingV2
0x004395edb43efca9885cedad51ec9faf93bd34ac, RequestAdded in blocks 26,244,478 (childBlockNumber:95946818) and 26,244,502 (childBlockNumber:95946963), round 10375;getRoundEndTime(10375)= 26 Oct 00:00 UTC; RequestResolved for both requests (round 10375, request indexes 5523 and 5522, price-57896044618658097711785492504343953926634992332820282019728792003956564819968) in tx0x6cbc5494cfc8223173a88fad1d2dc9f19f59d8a7b333880e4a8527d9ec61550e. - Polygon reset: QuestionReset for the UMA question id above in tx
0x406ec83086576291476d96a66f6ce8fdc11f7aee72f9bb8084a0d63d2d580ef7(block 96,179,943, 26 Oct 00:41:26); new request timestamp 1792975286. - Gamma: https://gamma-api.polymarket.com/markets/4118937
- Open interest: https://data-api.polymarket.com/oi?market=0x1d78389ca8fbb953ab8ed8d1fecb5160ac4c3a2b0185fed3c248f4d2e5cf5192
- CLOB: https://clob.polymarket.com/prices-history?market=5309649266945812129851890880962872795416540419035271387845607454704924462954&startTs=1792612800&endTs=1793400000&fidelity=10
- 2026 context figures (853 of 2,543; 88.5 h): Predge scan of Polymarket's UMA adapter logs on Polygon, 1 Jan to 2 Oct 2026. The same figures are in the
contextobject of every record. - Market page: https://polymarket.com/market/russia-ukraine-peace-talks-by-october-31-2026
Files
- record-4118937-2026-10-22.json, signed record read 22 Oct 23:36 UTC while the vote was open, with its response headers
- record-4118937-2026-10-30.json, signed record read 30 Oct 23:15 UTC after the reset, with its response headers
- verify_record.py, the verifier; or paste a record into data.predge.io/verify
- Live record: api.predge.io/v1/settlement-risk/4118937 (free, no key)
- Previous issue: #1, the Tesla Roadster 0-60 market
Not advice and not a view on any market. Predge reads public chain data and signs a verifiable record of what it read.