Room ID: polymarket_oracle_events
Endpoint: wss://api.struct.to/ws
Rate: 0.002 credits per message
Stream typed UMA OOv2/OOv3 oracle lifecycle events plus CTF and NegRisk adapter resolution events. Filter by event type, condition ID, market slug, or event slug. If no filters are provided the room subscribes to all oracle events.
Subscribe
All filters are optional. Combine multiple filters to narrow the stream. If all filters are empty and subscribe_all is false, the room automatically subscribes to all oracle events.
Filters
| Filter | Type | Required | Description |
|---|
condition_ids | string[] | No | Filter by 64-char hex condition IDs (with or without 0x prefix) |
market_slugs | string[] | No | Filter by market slug |
event_slugs | string[] | No | Filter by event slug (subscribes to all markets under each event) |
oracle_event_types | string[] | No | Restrict to specific event types (see list below) |
status | string | No | One of confirmed (default), pending, or all |
subscribe_all | boolean | No | Explicitly subscribe to all oracle events |
Event types
Valid values for oracle_event_types:
AssertionMade, AssertionDisputed, AssertionSettled, RequestPrice, ProposePrice, DisputePrice, Settle, QuestionResolved, QuestionEmergencyResolved, QuestionReset, QuestionInitialized, QuestionPaused, QuestionUnpaused, QuestionFlagged, QuestionUnflagged, ConditionResolution, NegRiskOutcomeReported.
Example
{
"type": "join_room",
"payload": {
"room_id": "polymarket_oracle_events"
}
}
{
"type": "room_message",
"payload": {
"room_id": "polymarket_oracle_events",
"message": {
"action": "subscribe",
"oracle_event_types": ["QuestionResolved", "ConditionResolution"],
"condition_ids": ["0xabc123..."]
}
}
}
Response
{
"type": "oracle_events_stream_subscribe_response",
"room_id": "polymarket_oracle_events",
"data": {
"condition_ids": ["0xabc123..."],
"market_slugs": [],
"event_slugs": [],
"oracle_event_types": ["QuestionResolved", "ConditionResolution"],
"status": "confirmed",
"subscribe_all": false,
"rejected": []
}
}
Events
oracle_event_update
The payload is a discriminated union based on the event_type field. Each variant carries its own fields. All variants share an on-chain envelope (id, hash, block, confirmed_at, log_index, block_index, oracle_contract) and may include the optional market metadata condition_id, question, image_url, slug, event_slug.
AssertionMade
UMA OOv3 truth assertion submitted.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "AssertionMade",
"id": "0xassert123",
"hash": "0xasserthash",
"block": 65000700,
"confirmed_at": 1743500700,
"log_index": 1,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"assertion_id": "0x1111111111111111111111111111111111111111111111111111111111111111",
"domain_id": "0x0000000000000000000000000000000000000000000000000000000000000000",
"claim": "0x59657300000000000000000000000000000000000000000000000000000000",
"asserter": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"callback_recipient": "0xCB1822859cEF82Cd2Eb4E6276C7916e692995130",
"escalation_manager": "0x0000000000000000000000000000000000000000",
"caller": "0xCB1822859cEF82Cd2Eb4E6276C7916e692995130",
"expiration_time": 1743600000,
"currency": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"bond": "5000000000",
"identifier": "0x59455320204f5220204e4f000000000000000000000000000000000000000000",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"proposed_outcome": "Yes",
"slug": "will-bitcoin-hit-100k",
"event_slug": "bitcoin-price-markets"
}
}
AssertionDisputed
UMA OOv3 assertion challenged within liveness.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "AssertionDisputed",
"id": "0xdispute123",
"hash": "0xdisputehash",
"block": 65000800,
"confirmed_at": 1743500800,
"log_index": 4,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"assertion_id": "0x1111111111111111111111111111111111111111111111111111111111111111",
"caller": "0xCB1822859cEF82Cd2Eb4E6276C7916e692995130",
"disputer": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
}
AssertionSettled
UMA OOv3 assertion finalized (liveness expired or DVM resolved).
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "AssertionSettled",
"id": "0xsettle123",
"hash": "0xsettlehash",
"block": 65000900,
"confirmed_at": 1743500900,
"log_index": 2,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"assertion_id": "0x1111111111111111111111111111111111111111111111111111111111111111",
"bond_recipient": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"disputed": false,
"settlement_resolution": true,
"settle_caller": "0xCB1822859cEF82Cd2Eb4E6276C7916e692995130",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
}
RequestPrice
UMA OOv2 price request created (resolution lookup begins).
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "RequestPrice",
"id": "0xreq123",
"hash": "0xreqhash",
"block": 65001000,
"confirmed_at": 1743501000,
"log_index": 0,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"requester": "0xCB1822859cEF82Cd2Eb4E6276C7916e692995130",
"identifier": "0x59455320204f5220204e4f000000000000000000000000000000000000000000",
"timestamp": "1743501000",
"ancillary_data": "0x713a2057696c6c20425443206869742024313030483f",
"currency": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"reward": "0",
"final_fee": "1500000000",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
}
ProposePrice
UMA OOv2 outcome proposed by a proposer.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "ProposePrice",
"id": "0xpropose123",
"hash": "0xproposehash",
"block": 65001100,
"confirmed_at": 1743501100,
"log_index": 1,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"requester": "0xCB1822859cEF82Cd2Eb4E6276C7916e692995130",
"proposer": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"identifier": "0x59455320204f5220204e4f000000000000000000000000000000000000000000",
"timestamp": "1743501000",
"ancillary_data": "0x713a2057696c6c20425443206869742024313030483f",
"proposed_price": 1000000000000000000,
"expiration_timestamp": "1743600000",
"currency": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"proposed_outcome": "Yes"
}
}
DisputePrice
UMA OOv2 proposal challenged.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "DisputePrice",
"id": "0xdispprice123",
"hash": "0xdispricehash",
"block": 65001200,
"confirmed_at": 1743501200,
"log_index": 3,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"requester": "0xCB1822859cEF82Cd2Eb4E6276C7916e692995130",
"proposer": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"disputer": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"identifier": "0x59455320204f5220204e4f000000000000000000000000000000000000000000",
"timestamp": "1743501000",
"ancillary_data": "0x713a2057696c6c20425443206869742024313030483f",
"proposed_price": 1000000000000000000,
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
}
Settle
UMA OOv2 request settled (proposer or DVM payout).
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "Settle",
"id": "0xs123",
"hash": "0xshash",
"block": 65001300,
"confirmed_at": 1743501300,
"log_index": 1,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"requester": "0xCB1822859cEF82Cd2Eb4E6276C7916e692995130",
"proposer": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"disputer": "0x0000000000000000000000000000000000000000",
"identifier": "0x59455320204f5220204e4f000000000000000000000000000000000000000000",
"timestamp": "1743501000",
"ancillary_data": "0x713a2057696c6c20425443206869742024313030483f",
"proposed_price": 1000000000000000000,
"payout": "5000000000",
"disputed": false,
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
}
QuestionResolved
UMA CTF Adapter: market resolved with definitive outcome.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "QuestionResolved",
"id": "0xresolved123",
"hash": "0xresolvedhash",
"block": 65001400,
"confirmed_at": 1743501400,
"log_index": 2,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"settled_price": 1000000000000000000,
"proposed_outcome": "Yes",
"slug": "will-bitcoin-hit-100k",
"event_slug": "bitcoin-price-markets"
}
}
QuestionEmergencyResolved
UMA CTF Adapter: admin emergency resolution.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "QuestionEmergencyResolved",
"id": "0xemerg123",
"hash": "0xemerghash",
"block": 65001500,
"confirmed_at": 1743501500,
"log_index": 0,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"proposed_outcome": "No"
}
}
QuestionReset
UMA CTF Adapter: dispute succeeded, market returns to active.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "QuestionReset",
"id": "0xreset123",
"hash": "0xresethash",
"block": 65001600,
"confirmed_at": 1743501600,
"log_index": 0,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
}
QuestionInitialized
UMA CTF Adapter: questionID first initialized on-chain.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "QuestionInitialized",
"id": "0xinit123",
"hash": "0xinithash",
"block": 65001700,
"confirmed_at": 1743501700,
"log_index": 1,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"creator": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"reward_token": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
"reward": "0",
"proposal_bond": "5000000000"
}
}
QuestionPaused / QuestionUnpaused
UMA CTF Adapter: market paused or unpaused by admin.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "QuestionPaused",
"id": "0xpause123",
"hash": "0xpausehash",
"block": 65001800,
"confirmed_at": 1743501800,
"log_index": 0,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
}
QuestionFlagged / QuestionUnflagged
UMA CTF Adapter: market flagged for emergency resolution, or flag removed.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "QuestionFlagged",
"id": "0xflag123",
"hash": "0xflaghash",
"block": 65002000,
"confirmed_at": 1743502000,
"log_index": 0,
"block_index": 0,
"oracle_contract": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef"
}
}
ConditionResolution
CTF: positions become redeemable.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "ConditionResolution",
"id": "0xcondres123",
"hash": "0xcondreshash",
"block": 65002200,
"confirmed_at": 1743502200,
"log_index": 5,
"block_index": 0,
"oracle_contract": "0x4D97DCd97eC945f40cF65F87097ACe5EA0476045",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"oracle": "0x157Ce2d672854c848c9b79C49a8Cc6cc89176a49",
"proposed_outcome": "Yes"
}
}
NegRiskOutcomeReported
NegRisk Adapter: neg-risk market outcome determined.
{
"type": "oracle_event_update",
"room_id": "polymarket_oracle_events",
"status": "confirmed",
"data": {
"event_type": "NegRiskOutcomeReported",
"id": "0xnegrisk123",
"hash": "0xnegriskhash",
"block": 65002300,
"confirmed_at": 1743502300,
"log_index": 0,
"block_index": 0,
"oracle_contract": "0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296",
"condition_id": "0x1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
"proposed_outcome": "Yes"
}
}
Pending events: With status: "pending" or status: "all", mempool entries are delivered as soon as the transaction is seen. Fields unavailable from mempool (block, confirmed_at, log_index, block_index) are omitted, and received_at (Unix milliseconds) is included instead.