Skip to content
Alchemy Logo

setOracleUpdates stream

This API is in private preview. Target September 2026; timing is subject to change.

For a native REST read of the current perpetual oracle price, use the oraclePx field in metaAndAssetCtxs from the HyperCore REST API. This stream is the separate HIP-3 oracle-update node-file surface.

{
  "method": "subscribe",
  "subscription": {
    "type": "setOracleUpdates",
    "dex": "vntls"
  }
}

{
  "channel": "subscriptionResponse",
  "data": {
    "subscriptionId": "sub_01",
    "type": "setOracleUpdates"
  }
}

{
  "channel": "setOracleUpdates",
  "subscriptionId": "sub_01",
  "blockHeight": 123456,
  "blockTime": 1780000000000,
  "cursor": "<opaque cursor>",
  "data": {
    "block_time": "2025-10-06T14:56:40.274583420",
    "dex": "vntls",
    "success": true,
    "error": null,
    "oracle_pxs": [["vntls:vANDRL", "52.146"]],
    "mark_pxs": [[["vntls:vANDRL", "50.809"]]],
    "external_perp_pxs": [["vntls:vANDRL", "50.809"]]
  }
}

FieldTypeDescription
block_timestringTime of the oracle update.
dexstringPerpetual DEX that received the oracle update.
successbooleanWhether the oracle update action succeeded.
errorstring or nullError returned for a failed oracle update.
oracle_pxsarrayOracle prices for assets on the DEX, as asset-and-price pairs.
mark_pxsarrayMark-price tiers; each tier is an array of asset-and-price pairs.
external_perp_pxsarrayExternal perpetual prices for assets on the DEX, as asset-and-price pairs.

{
  "method": "unsubscribe",
  "subscription": {
    "type": "setOracleUpdates",
    "dex": "vntls"
  }
}

To resume a stream, supply cursor in the subscription object. The cursor is opaque: clients store and return it unmodified, and its format may change.

Was this page helpful?