Current oracle state and recent confirmed history
/oracles/{feedId}The confirmed pool NFT box, its exact R4 raw rate and R5 epoch, converted price, age and recent history. USD v2 stores nanoERG per USD; USD per ERG is 1000000000 / rawValue. The displayed price is rounded to 18 decimal places; priceNumerator / priceDenominator preserves the exact rational conversion. Current and history boxes must match the configured NFT, guard hash and register types. History is newest first, including the current point on the first page, and defaults to the latest 100 confirmed pool updates. Set limit=0 for current state only. Offsets count NFT boxes, including governance transitions and the initial zero-price bootstrap box, which is omitted from price points. Follow nextOffset and pass the returned blockId as atBlockId to keep pagination on the same tip. stale uses creation-height age and the configured maxAgeBlocks, not wall-clock market freshness. Timestamps are confirmed block timestamps when available; missing ones are omitted and reported by timestampsComplete=false. A lagging index or unavailable/unsupported pool is 503; a tip change is 409.
Path parameters
feedIdstringrequired
Query parameters
offsetintegerdefault 0limitintegerdefault 100atBlockIdstringOptional tip id returned by the preceding page; a changed tip requires pagination to restart.
Responses
200Confirmed node snapshot; a stale published price is returned with `stale=true`.OracleState▶
▶
feedOracleFeedrequiredidstringrequirednamestringrequirednetworkstringrequiredone ofMAINNETTESTNETprotocolstringrequiredpoolNftstringrequiredergoTreeHashstringrequiredConfigured full ErgoTree blake2b256. Governance changes require review of this pin.
baseAssetstringrequiredquoteAssetstringrequiredrawUnitstringrequiredpriceUnitstringrequiredbaseDecimalsintegerrequiredmaxAgeBlocksintegerrequired
heightintegerrequiredblockIdstringrequiredindexedHeightintegerrequired▶
currentOraclePointrequiredboxIdstringrequiredtransactionIdstringrequiredcreationHeightintegerrequiredHeight committed by the pool box; used to compute ageBlocks.
inclusionHeightintegerrequiredepochintegerrequiredrawValuestringrequiredExact positive R4 Long in the feed's rawUnit.
pricestringrequiredConverted quote units per base unit, rounded to 18 decimal places.
priceNumeratorstringrequiredpriceDenominatorstringrequiredergoTreeHashstringrequiredtimestampinteger · int64Inclusion block timestamp in milliseconds, omitted if unavailable.
ageBlocksintegerrequiredstalebooleanrequiredageBlocks exceeds the configured maxAgeBlocks; no wall-clock freshness is implied.
▶
historyOraclePoint[]requiredboxIdstringrequiredtransactionIdstringrequiredcreationHeightintegerrequiredHeight committed by the pool box; used to compute ageBlocks.
inclusionHeightintegerrequiredepochintegerrequiredrawValuestringrequiredExact positive R4 Long in the feed's rawUnit.
pricestringrequiredConverted quote units per base unit, rounded to 18 decimal places.
priceNumeratorstringrequiredpriceDenominatorstringrequiredergoTreeHashstringrequiredtimestampinteger · int64Inclusion block timestamp in milliseconds, omitted if unavailable.
offsetintegerrequiredlimitintegerrequiredtotalintegerIndexed NFT box count, including the bootstrap box; omitted with limit=0.
nextOffsetintegerNext NFT-box offset, absent at the end or when history is omitted.
timestampsCompletebooleanrequired
400Invalid paging or block id.ApiError▶
errorintegerrequiredError code
reasonstringrequiredError message explaining the reason of the error
detailstringrequirednullableDetailed error description
404No configured feed with this id on the node's network.ApiError▶
errorintegerrequiredError code
reasonstringrequiredError message explaining the reason of the error
detailstringrequirednullableDetailed error description
409Chain tip changed; retry the snapshot or restart pagination.ApiError▶
errorintegerrequiredError code
reasonstringrequiredError message explaining the reason of the error
detailstringrequirednullableDetailed error description
503Node, index, oracle identity or supported pool state unavailable.ApiError▶
errorintegerrequiredError code
reasonstringrequiredError message explaining the reason of the error
detailstringrequirednullableDetailed error description