Skip to main content

Oracle reads

Public reads on the OracleFacet — signer set, consensus config, and per-event submissions.

All endpoints GET, public, no auth.

/v1/oracle/oracles/:chainId

The current authorised signer set.

{
"data": {
"chainId": 8453,
"oracles": [
"0x1f038152d5e6f120e26f8f11688cb9dc27703236",
"0x488f6090ede627cddf3f4f12e46fb5665ebbccfa",
"0xa1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
]
}
}

Addresses are lower-cased in the response.

/v1/oracle/config/:chainId

Consensus parameters.

{
"data": {
"chainId": 8453,
"requiredSigners": 3,
"toleranceBps": 700,
"oracleCount": 5,
"maxOracles": 10
}
}

See Concepts → Oracle consensus for what these mean.

/v1/oracle/is-authorised/:chainId/:addr

Is a given address an authorised oracle?

{ "data": { "chainId": 8453, "addr": "0x1f03...", "authorised": true } }

400 validation_error if the address is malformed.

/v1/oracle/submissions/:chainId/:eventId

Every submission for an event. The contract returns parallel arrays; the API zips them into a per-oracle structure.

{
"data": {
"chainId": 8453,
"eventId": 12,
"count": 5,
"submissions": [
{ "oracle": "0x1f03...", "price": "11700000", "timestamp": 1775676000, "isStale": false },
{ "oracle": "0x488f...", "price": "11710000", "timestamp": 1775676100, "isStale": false },
...
]
}
}

isStale flags submissions older than the staleness window — those are ignored when the contract computes consensus.

/v1/oracle/submission/:chainId/:eventId/:oracle

A single oracle's submission for an event.

{
"data": {
"chainId": 8453, "eventId": 12,
"oracle": "0x1f03...",
"price": "11700000",
"timestamp": 1775676000,
"exists": true,
"isStale": false
}
}

If the oracle hasn't submitted for this event, exists: false.

/v1/oracle/submitter-count/:chainId/:eventId

How many oracles have submitted so far. Useful for showing "3 / 5 oracles have submitted" in a settlement UI.

{ "data": { "chainId": 8453, "eventId": 12, "count": 3 } }