⚠ INTERNAL — Operator UX mock · Design preview of V2 development path · demo-wired ≠ production-live · back to dev guide
Polygon · pUSD 10
📓 Developer Guide 📋 Reason Codes 📈 Shadow Mode
JD John Doe · Admin

OracleWatcher

intel.oraclewatcher
Intelligence live General live frozen

OracleWatcher streams the UMA Optimistic Oracle on-chain, detecting assertion proposals, dispute filings, DVM debate escalations, and final vote outco

What it does

OracleWatcher streams the UMA Optimistic Oracle on-chain, detecting assertion proposals, dispute filings, DVM debate escalations, and final vote outcomes for every Polymarket condition ID. It emits an ObservationReport on every state change. OracleWatcher is strictly read-only — it never submits or signs anything. Output is the primary feed for oracleriskmonitor, which uses it to gate positions during contested resolutions.

Pipeline placement

runs after: Polymarket market creation / resolution-question registration OracleWatcher runs before: oracleriskmonitor, risk layer

Applies to: All live Polymarket markets whose resolution source is UMA Optimistic Oracle

Why it matters

If this failsConsequence
Proposal missed before 2-hour challenge window closesPosition held through unchallenged incorrect resolution; full collateral loss on the wrong outcome.
Dispute state not detectedoracleriskmonitor is unaware that a market is in a 24–72-hour DVM debate; strategies continue trading as if resolution is certain.
DVM vote outcome not propagatedSettlement logic based on outdated oracle state; payout mismatch or duplicate claim.
Stale UMA state cached during RPC outageOld proposal treated as current; oracleriskmonitor computes wrong time-to-resolution, potentially permitting over-leveraged entry.

Inputs

Polymarket inputs

InputSourceRequiredUse
Market condition IDs and associated assertion IDsGamma API / internal market registryrequiredMap UMA assertion IDs back to Polymarket condition IDs in ObservationReport payloads.
UMA Optimistic Oracle on-chain events (ProposePrice, DisputePrice, Settle)onchain (Polygon RPC + event log subscription)requiredDetect assertion lifecycle state changes in real time.
Oracle WebSocket market stream for assertion ID mappingws_marketoptionalSupplement on-chain event logs with low-latency assertion state updates.

Internal inputs

InputSourceRequiredUse
Watched condition ID listconfig / StrategyRegistryrequiredFilter UMA events to only condition IDs with open positions or pending strategies.
KillSwitch active flagKillSwitchrequiredContinue watching on-chain but suppress ObservationReport emissions when KillSwitch is active.

Authority

What this bot is permitted to do

Read-only

State

Readiness

General live

Status

live

Class

Signal Service

Default mode

general_live

Developer owner

Polytraders core — Intelligence pod

Capital impact

Indirect

Reason codes emitted

CodeSeverityMeaningAction
ORACLEWATCHER_CHALLENGE_WINDOW_CLOSINGWARNLess than challenge_window_alert_s remain before the 2-hour UMA challenge deadline closes.Include in ObservationReport warnings; oracleriskmonitor triggers exposure review.
ORACLEWATCHER_DISPUTE_FILEDWARNA dispute has been filed on a Polymarket proposal; market enters DVM path (24–72 h).Emit ObservationReport with oracle_state=CHALLENGED; oracleriskmonitor restricts new entries.
ORACLEWATCHER_DVM_VOTE_OPENWARNDVM vote phase opened; resolution will be decided by UMA token holders (~48 h).Emit ObservationReport with oracle_state=DVM_VOTE; time_to_deadline_s≈172800.
ORACLEWATCHER_SETTLEDINFOUMA oracle has finalised and settled the assertion; resolution is on-chain.Emit ObservationReport with oracle_state=SETTLED; downstream settlement proceeds.
KILL_SWITCH_ACTIVEHARD_REJECTKillSwitch active; ObservationReport emissions suppressed.Continue watching on-chain but suppress emissions.
STALE_DATAWARNRPC provider unresponsive for > 2× poll_interval_s; oracle state may be stale.Halt ObservationReport emissions until RPC recovers; alert on-call.
MARKET_CLOSEDEXPLAINUMA event detected for a condition_id that is already closed in the internal registry.Skip emission; log for audit trail only.
ORACLEWATCHER_UNKNOWN_ASSERTIONWARNAssertion ID from on-chain event could not be resolved to a Polymarket condition_id.Log with assertion_id; do not emit ObservationReport; retry on next block.

Used by

Reverse index — strategies that currently reference intel.oraclewatcher. If you change this bot's authority or reason codes, these strategies must re-pass shadow.

StrategyStateActivity
AI Frontier — release-day takerfrozenlast triggered 18m ago

Showing 1 of 1 · demo-wired ≠ production-live

Why this matters

Intelligence bots does NOT propose, veto, sign, or execute any trade. Understanding the authority boundary prevents misuse and makes promotion-gate reviews faster and more reliable. View raw spec JSON →
Polytraders Operator UX Mock · INTERNAL · demo-wired ≠ production-live · the plan · reason codes · shadow-mode pipeline
⚙ Page Configuration
Current page settings
Loading configuration…