Report Schema: Futures (v14)

Chainlink Data Streams that use the Futures (v14) schema adhere to the structure outlined below.

Schema Fields

FieldTypeDescription
feedIdbytes32Unique identifier for the Data Streams feed
validFromTimestampuint32Earliest timestamp when the price is valid (seconds) — How report timestamps work
observationsTimestampuint32Latest timestamp when the price is valid (seconds) — How report timestamps work
nativeFeeuint192Legacy onchain verification fee field
linkFeeuint192Legacy onchain verification fee field; not used for subscription billing
expiresAtuint32Expiration date of the report (seconds)
midPriceint192DON consensus mid price
bidPriceint192DON consensus bid price
askPriceint192DON consensus ask price
expiryTimeuint64Contract expiration time (Unix seconds)
firstDayOfNoticeuint64First day of notice for the tracked contract (Unix seconds)
lastSeenTimestampNsuint64Timestamp of the last update received from the data provider (nanoseconds)
marketStatusuint32Market status. Mapping varies by feed; see schema docs. — Status values
contractMonthuint32Contract month, from 1 (Jan) to 12 (Dec)
goldmanRollPriceint192Goldman Roll price (GSCI methodology; 20% shifted per business day over days 5–9)
currentBusinessDayuint32Current business day of the month, used to determine the Goldman Roll window
interpolatedGoldmanRollPriceint192Interpolated Goldman Roll price: the 20% daily shift to the next contract, smoothed over each business day in the 5–9 window

Market Status Values

Each feed's marketStatus field reflects the current market status for that instrument. Futures streams follow the trading hours of the underlying market, with a scheduled break each trading day. Use marketStatus in each report rather than an expected session schedule.

For full trading schedules and marketStatus mappings, see Market Hours and the Futures reference.

Continuous roll price fields

In addition to the raw generic feed prices — which switch entirely to the next contract when the front contract expires — the v14 schema includes continuous price series built using alternative rolling methodologies, for integrators who want a smoothed price instead of a hard cutover:

FieldDescription
goldmanRollPriceUses the Goldman Roll (GSCI methodology): shifts 20% of the position to the next contract each business day, over business days 5–9 of the month preceding delivery
interpolatedGoldmanRollPriceInterpolated Goldman Roll price: the Goldman Roll's 20% daily shift to the next contract, smoothed over the course of each business day, 5–9, of the month preceding delivery
currentBusinessDayCurrent business day of the month, used to determine the Goldman Roll window

For details on how the generic feeds rotate between contracts and how the Goldman Roll fields behave, see the Futures reference.

Notes

lastSeenTimestampNs

  • lastSeenTimestampNs helps applications detect stale data, especially important during market transitions and holidays.
  • Do not use lastSeenTimestampNs (or any other timestamp field) to determine whether the market is open. Timestamps indicate when data was last recorded, not whether the market is currently active. Use the marketStatus field to determine market availability.

interpolatedGoldmanRollPrice

interpolatedGoldmanRollPrice is a smoothed version of the Goldman Roll. It applies the 20% daily shift to the next contract over the course of each business day, 5–9, of the month preceding delivery.

Get the latest Chainlink content straight to your inbox.