Skip to main content
After submitting an order, you can track its progress through the order server API or by monitoring on-chain events directly.

Order Server Status

Call GET /orders/status with either the onChainOrderId or the catalystOrderId returned when you submitted the order.

Query Parameters

At least one parameter is required.

Response

The response includes the full order, any associated quote, and a meta object with status information.

Status Lifecycle

meta.orderStatus takes one of four values: The path is Signed → Delivered → Settled, with Refunded as the alternate terminal state. Signed covers everything before a fill, including the on-chain Open event — opening an order does not produce a distinct status. Watch meta.orderInitiatedTxHash if you need to confirm the order landed on-chain.
GET /orders also accepts Submitted and Open as ?status= filter values, but neither is ever returned in meta.orderStatus — orders matching those filters report as Signed.
REST responses and the solver-facing WebSocket feed use different names for the same statuses. The mapping: In particular, do not wait for a WebSocket Settled event — the terminal success event is named Finalised.

Polling Example

Once order.expires has passed (or meta.expiredAt is set), the order can no longer be filled — but that is not the same as a refund. The user’s funds are back only when orderStatus is Refunded and refundTxHash is set, so keep polling after expiry (at a lower cadence) and surface a pending-refund state instead of reporting completion.

Listing Orders

Use GET /orders to query multiple orders with filters. The order server caches responses for a few seconds, and it may throttle or temporarily time out aggressive polling.

On-Chain Events

You can also track orders directly from contract events. The orderId is emitted as topic1 on all relevant events.

Order Opened

Output Filled (by solver)

Order Finalized (settlement complete)

Order Refunded

The on-chain orderId is deterministic and computed as:

Solana Events

On Solana, the programs emit Anchor events instead of Solidity events, one at every lifecycle step: The Solana order_id is content-derived: keccak256(borsh_serialize(StandardOrder)). The intents_protocol program additionally emits attestation- and configuration-level events, listed in the Attestations section of Solana programs.

Next Steps

API Overview

Full endpoint reference and base URLs

Create and Submit Orders

Order construction and submission

Settlement

How input and output settlement works

System Overview

Full architecture of the Intent/Solver Marketplace