Skip to main content
The oracle channel sends every UMA oracle lifecycle event from the UMAAdapter and UMAOptimisticOracle contracts. We decode each one and send it after the transaction is confirmed on-chain.

Subscribe

{
  "action": "subscribe",
  "id": "s1",
  "channel": "oracle"
}
With no filters, you get every confirmed oracle event from all markets.

Filters

FilterTypeRequiredDescription
market_idsstring[]NoCondition/market IDs as hex strings. Keeps events for those markets.
This channel accepts only market_ids. wallets, token_ids, and min_usd are ignored here. See Filters for the combination rule.

Events

This channel sends all sixteen UMA resolution events. See Onchain Data for the part each event plays in the full oracle lifecycle.

UMAAdapter

Eventdata.typeDescription
UmaAdapterQuestionInitializeduma_adapter_question_initializedA UMA-resolved question was started.
UmaAdapterQuestionResolveduma_adapter_question_resolvedA UMA question reached its final result.
UmaAdapterQuestionEmergencyResolveduma_adapter_question_emergency_resolvedAn emergency override result. Means an admin stepped in, outside the normal dispute flow.
UmaAdapterQuestionFlaggeduma_adapter_question_flaggedA question was flagged for review.
UmaAdapterQuestionPauseduma_adapter_question_pausedA UMA question was paused part-way through.
UmaAdapterQuestionUnpauseduma_adapter_question_unpausedA paused UMA question started again.
UmaAdapterQuestionResetuma_adapter_question_resetA question was reset back to its started state.
UmaAdapterAncillaryDataUpdateduma_adapter_ancillary_data_updatedThe ancillary data for a question was updated.

UMAOptimisticOracle

Eventdata.typeDescription
UmaOptimisticQuestionInitializeduma_optimistic_question_initializedAn optimistic oracle question was started.
UmaOptimisticQuestionResolveduma_optimistic_question_resolvedA question reached its final result via the optimistic oracle.
UmaOptimisticQuestionPauseduma_optimistic_question_pausedAn optimistic oracle question was paused.
UmaOptimisticQuestionUnpauseduma_optimistic_question_unpausedAn optimistic oracle question was unpaused.
UmaOptimisticQuestionSettleduma_optimistic_question_settledA question settled after the dispute window closed.
UmaOptimisticResolutionDataRequesteduma_optimistic_resolution_data_requestedA request for resolution data was sent.
UmaOptimisticQuestionUpdateduma_optimistic_question_updatedAn optimistic oracle question was updated.
UmaOptimisticQuestionFlaggedForAdminResolutionuma_optimistic_question_flagged_for_admin_resolutionA question was sent up to admin resolution.

Payloads

Every frame wraps the event in the standard envelope (type, id, channel, confirmed, data) shown on Frames. Below, each block is the data object for one event — its type discriminator plus every field the ABI decodes. A full frame looks like:
{
  "type": "event",
  "id": "s1",
  "channel": "oracle",
  "confirmed": true,
  "data": {
    "type": "uma_adapter_question_resolved",
    "questionID": "0x…",
    "…": "…"
  }
}
The field is questionID — capital ID, matching the on-chain event signature. uint256 fields serialize as 0x… hex; the signed int256 settledPrice serializes as a decimal string (for example "-1"); bytes fields (ancillaryData, update) serialize as 0x… hex.

UMAAdapter events

uma_adapter_question_initialized

QuestionInitialized on the UMAAdapter. A UMA-resolved question started, with its reward and bond parameters.
{
  "type": "uma_adapter_question_initialized",
  "questionID": "0x…",
  "requestTimestamp": "0x…",
  "creator": "0x…",
  "ancillaryData": "0x…",
  "rewardToken": "0x…",
  "reward": "0x…",
  "proposalBond": "0x…"
}
FieldSolidity typeDescription
typestringuma_adapter_question_initialized.
questionIDbytes32 (hex)Question id being initialized.
requestTimestampuint256 (hex)Unix time (seconds) the request was made.
creatoraddress (hex)Address that created the question.
ancillaryDatabytes (hex)UMA ancillary data describing the question.
rewardTokenaddress (hex)ERC-20 token the reward is paid in.
rewarduint256 (hex)Reward offered to the proposer.
proposalBonduint256 (hex)Bond a proposer must post.

uma_adapter_question_resolved

QuestionResolved on the UMAAdapter. A UMA question reached its final result, with a settled price and payout split.
{
  "type": "uma_adapter_question_resolved",
  "questionID": "0x…",
  "settledPrice": "1000000000000000000",
  "payouts": ["0x0", "0x1"]
}
FieldSolidity typeDescription
typestringuma_adapter_question_resolved.
questionIDbytes32 (hex)Resolved question id.
settledPriceint256 (string)Signed price the question settled at.
payoutsuint256[] (hex)Payout numerator per outcome slot.

uma_adapter_question_emergency_resolved

QuestionEmergencyResolved on the UMAAdapter. An admin override result, outside the normal dispute flow.
{
  "type": "uma_adapter_question_emergency_resolved",
  "questionID": "0x…",
  "payouts": ["0x0", "0x1"]
}
FieldSolidity typeDescription
typestringuma_adapter_question_emergency_resolved.
questionIDbytes32 (hex)Question id resolved by override.
payoutsuint256[] (hex)Payout numerator per outcome slot.

uma_adapter_question_flagged

QuestionFlagged on the UMAAdapter. A question flagged for review.
{ "type": "uma_adapter_question_flagged", "questionID": "0x…" }
FieldSolidity typeDescription
typestringuma_adapter_question_flagged.
questionIDbytes32 (hex)Flagged question id.

uma_adapter_question_paused

QuestionPaused on the UMAAdapter. A question paused part-way through.
{ "type": "uma_adapter_question_paused", "questionID": "0x…" }
FieldSolidity typeDescription
typestringuma_adapter_question_paused.
questionIDbytes32 (hex)Paused question id.

uma_adapter_question_unpaused

QuestionUnpaused on the UMAAdapter. A paused question resumed.
{ "type": "uma_adapter_question_unpaused", "questionID": "0x…" }
FieldSolidity typeDescription
typestringuma_adapter_question_unpaused.
questionIDbytes32 (hex)Resumed question id.

uma_adapter_question_reset

QuestionReset on the UMAAdapter. A question reset back to its started state.
{ "type": "uma_adapter_question_reset", "questionID": "0x…" }
FieldSolidity typeDescription
typestringuma_adapter_question_reset.
questionIDbytes32 (hex)Reset question id.

uma_adapter_ancillary_data_updated

AncillaryDataUpdated on the UMAAdapter. The ancillary data for a question changed.
{
  "type": "uma_adapter_ancillary_data_updated",
  "questionID": "0x…",
  "owner": "0x…",
  "update": "0x…"
}
FieldSolidity typeDescription
typestringuma_adapter_ancillary_data_updated.
questionIDbytes32 (hex)Question whose ancillary data changed.
owneraddress (hex)Owner that made the update.
updatebytes (hex)New ancillary data.

UMAOptimisticOracle events

uma_optimistic_question_initialized

QuestionInitialized on the UMAOptimisticOracle. An optimistic-oracle question started.
{
  "type": "uma_optimistic_question_initialized",
  "questionID": "0x…",
  "ancillaryData": "0x…",
  "resolutionTime": "0x…",
  "rewardToken": "0x…",
  "reward": "0x…",
  "proposalBond": "0x…",
  "earlyResolutionEnabled": true
}
FieldSolidity typeDescription
typestringuma_optimistic_question_initialized.
questionIDbytes32 (hex)Question id being initialized.
ancillaryDatabytes (hex)UMA ancillary data describing the question.
resolutionTimeuint256 (hex)Unix time (seconds) resolution is expected.
rewardTokenaddress (hex)ERC-20 token the reward is paid in.
rewarduint256 (hex)Reward offered to the proposer.
proposalBonduint256 (hex)Bond a proposer must post.
earlyResolutionEnabledboolWhether early resolution is allowed.

uma_optimistic_question_resolved

QuestionResolved on the UMAOptimisticOracle. A question reached its final result via the optimistic oracle.
{
  "type": "uma_optimistic_question_resolved",
  "questionID": "0x…",
  "emergencyReport": false
}
FieldSolidity typeDescription
typestringuma_optimistic_question_resolved.
questionIDbytes32 (hex)Resolved question id.
emergencyReportbooltrue if resolved by emergency report.

uma_optimistic_question_paused

QuestionPaused on the UMAOptimisticOracle. A question paused.
{ "type": "uma_optimistic_question_paused", "questionID": "0x…" }
FieldSolidity typeDescription
typestringuma_optimistic_question_paused.
questionIDbytes32 (hex)Paused question id.

uma_optimistic_question_unpaused

QuestionUnpaused on the UMAOptimisticOracle. A paused question resumed.
{ "type": "uma_optimistic_question_unpaused", "questionID": "0x…" }
FieldSolidity typeDescription
typestringuma_optimistic_question_unpaused.
questionIDbytes32 (hex)Resumed question id.

uma_optimistic_question_settled

QuestionSettled on the UMAOptimisticOracle. A question settled after the dispute window closed.
{
  "type": "uma_optimistic_question_settled",
  "questionID": "0x…",
  "settledPrice": "1000000000000000000",
  "earlyResolution": false
}
FieldSolidity typeDescription
typestringuma_optimistic_question_settled.
questionIDbytes32 (hex)Settled question id.
settledPriceint256 (string)Signed price the question settled at.
earlyResolutionbooltrue if settled via early resolution.

uma_optimistic_resolution_data_requested

ResolutionDataRequested on the UMAOptimisticOracle. A request for resolution data was sent to UMA.
{
  "type": "uma_optimistic_resolution_data_requested",
  "requestor": "0x…",
  "requestTimestamp": "0x…",
  "questionID": "0x…",
  "identifier": "0x…",
  "ancillaryData": "0x…",
  "rewardToken": "0x…",
  "reward": "0x…",
  "proposalBond": "0x…",
  "earlyResolution": false
}
FieldSolidity typeDescription
typestringuma_optimistic_resolution_data_requested.
requestoraddress (hex)Address that requested resolution data.
requestTimestampuint256 (hex)Unix time (seconds) of the request.
questionIDbytes32 (hex)Question the request is for.
identifierbytes32 (hex)UMA price identifier.
ancillaryDatabytes (hex)UMA ancillary data for the request.
rewardTokenaddress (hex)ERC-20 token the reward is paid in.
rewarduint256 (hex)Reward offered to the proposer.
proposalBonduint256 (hex)Bond a proposer must post.
earlyResolutionboolWhether early resolution is requested.

uma_optimistic_question_updated

QuestionUpdated on the UMAOptimisticOracle. An optimistic-oracle question’s parameters changed.
{
  "type": "uma_optimistic_question_updated",
  "questionID": "0x…",
  "ancillaryData": "0x…",
  "resolutionTime": "0x…",
  "rewardToken": "0x…",
  "reward": "0x…",
  "proposalBond": "0x…",
  "earlyResolutionEnabled": true
}
FieldSolidity typeDescription
typestringuma_optimistic_question_updated.
questionIDbytes32 (hex)Updated question id.
ancillaryDatabytes (hex)New UMA ancillary data.
resolutionTimeuint256 (hex)New expected resolution time.
rewardTokenaddress (hex)ERC-20 token the reward is paid in.
rewarduint256 (hex)New reward amount.
proposalBonduint256 (hex)New proposal bond.
earlyResolutionEnabledboolWhether early resolution is allowed.

uma_optimistic_question_flagged_for_admin_resolution

QuestionFlaggedForAdminResolution on the UMAOptimisticOracle. A question escalated to admin resolution.
{
  "type": "uma_optimistic_question_flagged_for_admin_resolution",
  "questionID": "0x…"
}
FieldSolidity typeDescription
typestringuma_optimistic_question_flagged_for_admin_resolution.
questionIDbytes32 (hex)Question escalated to admin resolution.

Pending feed

Set confirmed: false on your subscribe to get the pending feed of this channel — the same payload shape for pending transactions sent to the UMAAdapter and UMAOptimisticOracle contracts, before they are in a block. Pending events are guesses. A transaction can be dropped, replaced, or reverted. See Mempool for the full frame shape and how to handle it.
{
  "action": "subscribe",
  "id": "pending",
  "channel": "oracle",
  "confirmed": false
}
Last modified on July 5, 2026