GET /v1/onchain/tx/{chainDomain}/{txHash}/order Resolve a transaction hash — typically the fillTransaction from GET /order/{orderId}/status — into the order’s observed lifecycle. Not scoped to your organization. See Get on-chain fill for the id-format note.

Request

Path parameters

Response

data: OnchainFill, as GET /onchain/{orderId}/fill.

Behavior

  • The hub looks for any tracked settler event (Open, Filled, Settled, Refunded) at the first nine event positions (0–8) of that transaction on that chain: its receipt’s logs on EVM chains, where every log counts, settler or not; its instructions on Solana, inner ones included. An event further in is not found.
  • A Solana Open signature does not resolve, while the same order’s settle signature does. Follow a Solana-origin order by onchainOrderId on GET /onchain/{orderId}/fill (known issue).
  • Hit: the answer is the full GET /onchain/{orderId}/fill view of that order, with its dating rule.
  • Miss: onchainOrderId is "" (present, empty) with no facts, and watermarks holds the named chain — “not observed yet, as of this position”, poll again. If that chain has no fresh watermark the miss is refused with EIN0051.

Errors

Never send an empty segment: the path is then not a route. 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. This is the hit case — the same object GET /onchain/{orderId}/fill returns for this order’s on-chain id. A miss returns the same shape with no facts: {"onchainOrderId": "", "watermarks": {"eip155-56": {"blockNumber": 7061, "blockHash": "0x24b46941e1b961c61d47168c30d44f60560924e9709fac3a26cd3c2e2bc13b1b", "updatedAt": "2026-09-22T12:01:00Z"}}}.

See also