OracleWatcher
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
Applies to: All live Polymarket markets whose resolution source is UMA Optimistic Oracle
Why it matters
| If this fails | Consequence |
|---|---|
| Proposal missed before 2-hour challenge window closes | Position held through unchallenged incorrect resolution; full collateral loss on the wrong outcome. |
| Dispute state not detected | oracleriskmonitor 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 propagated | Settlement logic based on outdated oracle state; payout mismatch or duplicate claim. |
| Stale UMA state cached during RPC outage | Old proposal treated as current; oracleriskmonitor computes wrong time-to-resolution, potentially permitting over-leveraged entry. |
Inputs
Polymarket inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Market condition IDs and associated assertion IDs | Gamma API / internal market registry | required | Map 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) | required | Detect assertion lifecycle state changes in real time. |
| Oracle WebSocket market stream for assertion ID mapping | ws_market | optional | Supplement on-chain event logs with low-latency assertion state updates. |
Internal inputs
| Input | Source | Required | Use |
|---|---|---|---|
| Watched condition ID list | config / StrategyRegistry | required | Filter UMA events to only condition IDs with open positions or pending strategies. |
| KillSwitch active flag | KillSwitch | required | Continue watching on-chain but suppress ObservationReport emissions when KillSwitch is active. |
Authority
What this bot is permitted to do
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
| Code | Severity | Meaning | Action |
|---|---|---|---|
| ORACLEWATCHER_CHALLENGE_WINDOW_CLOSING | WARN | Less than challenge_window_alert_s remain before the 2-hour UMA challenge deadline closes. | Include in ObservationReport warnings; oracleriskmonitor triggers exposure review. |
| ORACLEWATCHER_DISPUTE_FILED | WARN | A 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_OPEN | WARN | DVM 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_SETTLED | INFO | UMA oracle has finalised and settled the assertion; resolution is on-chain. | Emit ObservationReport with oracle_state=SETTLED; downstream settlement proceeds. |
| KILL_SWITCH_ACTIVE | HARD_REJECT | KillSwitch active; ObservationReport emissions suppressed. | Continue watching on-chain but suppress emissions. |
| STALE_DATA | WARN | RPC provider unresponsive for > 2× poll_interval_s; oracle state may be stale. | Halt ObservationReport emissions until RPC recovers; alert on-call. |
| MARKET_CLOSED | EXPLAIN | UMA event detected for a condition_id that is already closed in the internal registry. | Skip emission; log for audit trail only. |
| ORACLEWATCHER_UNKNOWN_ASSERTION | WARN | Assertion 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. |
Related bots in Intelligence
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.
| Strategy | State | Activity |
|---|---|---|
| AI Frontier — release-day taker | frozen | last 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 →