GET /v1/onchain/{orderId}/fill What the hub’s own observers saw on the chains, keyed by the on-chain order id. Unlike the status reads, these routes are not scoped to your organization (chain data is public, and a refund may be sent from another device than the one that ordered). They take your secret key or your project id, so a web page can follow the orders it submits on chain itself.
The id format matters, and it is not validated. Observations are stored under 0x + 64 lowercase hex. Any other spelling (uppercase, no 0x) is not an error: it answers 200 with no facts and a watermark for every known chain, which reads exactly like “not filled yet”, so the withdraw rule would offer a withdraw for an order that is in fact filled (known issue). Pass onchainOrderId exactly as the hub serves it, and check the format before calling.
Never send an empty id: /onchain//fill is not a route.

Request

Path parameters

Response

data (OnchainFill): EventFact is {chainDomain, txHash, blockNumber, observedAt}. observedAt is when the hub stored the observation, not the block time. No amounts are served here (the GET /orders legs carry them). The first observation of each event wins.

Behavior

The dating rule. An absent fact means “not observed (yet)”, never an error — with one guard: an absent filled is only returned if the hub can date it.
  • The hub finds the order’s destination chains from its observed Open (each output’s chain). With no usable Open, it uses every chain the deployment knows.
  • For each of those chains it needs a published observer watermark no older than infinity.chains.readMaxStalenessMs (default 30 000 ms).
  • If a destination chain cannot be resolved, or any watermark is missing or stale, the answer is refused with EIN0051 — which means “cannot tell”, never “not filled”.
  • When filled is present the watermarks are disclosure only.
The hub compares nothing with a deadline; the client’s withdraw rule is in Refunds.

Errors

This route never returns EIN0009. The gateway’s own refusals — a refused credential, a route not open to it, a rate limit, the hub unreachable or too slow — can come back from every route, with an EPX code and a real HTTP status (Errors — gateway codes); EIN0049 (internal, scrubbed) can come back from any route.

Example

Response

Illustrative values; formats follow the Response table.
settled and refunded are absent: unobserved at this snapshot. watermarks holds only eip155-56, the Open’s output chain.

See also