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
onchainOrderIdonGET /onchain/{orderId}/fill(known issue). - Hit: the answer is the full
GET /onchain/{orderId}/fillview of that order, with its dating rule. - Miss:
onchainOrderIdis""(present, empty) with no facts, andwatermarksholds the named chain — “not observed yet, as of this position”, poll again. If that chain has no fresh watermark the miss is refused withEIN0051.
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 objectGET /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"}}}.