--- title: Orders description: Reading order state, searching by hash or address, and paging through history. --- import { DEFAULT_PAGE_LIMIT, MAX_PAGE_LIMIT } from "/snippets/vars.mdx"; Five methods read order state. All are unary; poll rather than subscribe. ## GetOrder ``` rpc GetOrder(GetOrderRequest) returns (OrderDetail) ``` Everything known about one quote hash. Hash returned by `GetQuote`. The stored quote: hash, order parameters, fee breakdown, trade type, creation time, deposit deadline. Always present. Carries `state`, confirmations, and transaction hashes. A successful response always includes it; before the deposit is indexed the call returns `NOT_FOUND` instead. The matched source-chain deposit. Present once a fulfillment is attempted. Includes attempts, last error, and realized gas cost. Present once a refund is attempted. Returns `NOT_FOUND` with `quote not found` if the hash is unknown, and `NOT_FOUND` with `order not found` if the quote exists but no deposit has been indexed yet. Poll until the order appears after depositing. ## Search ``` rpc Search(SearchRequest) returns (SearchResponse) ``` Resolves orders from whichever hash the user has: the quote hash, the source transaction hash, or the destination transaction hash. A transaction that batches several deposits matches one order per deposit. A quote hash or transaction hash. Empty input returns `INVALID_ARGUMENT`. Returns `orders`, a list of the same `OrderSummary` rows as `ListOrders`, in deposit order within the transaction. Call `GetOrder` with a row's `quote_hash` for the full detail. Returns `NOT_FOUND` with `no order matched` when nothing resolves. This is the right call to put behind a support search box. ## SearchAddress ``` rpc SearchAddress(SearchAddressRequest) returns (SearchAddressResponse) ``` Orders touching an address, as lightweight matches rather than full detail. Address to look up. Each carries `quote_hash`, `state`, `src_chain`, `dst_chain`, and `created_at`. Use it for an autocomplete or a compact history strip; fetch full detail per hash when the user picks one. ## ListOrders ``` rpc ListOrders(ListOrdersRequest) returns (OrdersPage) ``` Paged order summaries for one address. Address the orders belong to. Page size. Defaults to {DEFAULT_PAGE_LIMIT}, clamped to {MAX_PAGE_LIMIT}. Opaque cursor from the previous page's `next_cursor`. Each carries the quote hash, the order, the deposit, both token addresses and amounts, the recipient, a `gasless` flag, and `settled_at` once the fulfillment or refund confirmed. Absent on the last page. ## ListRecentOrders ``` rpc ListRecentOrders(ListRecentOrdersRequest) returns (OrdersPage) ``` The same page shape, protocol-wide and newest first. Takes `limit` and `cursor` only. This is what the public explorer feed reads. ## Notes Order state is the only authority on settlement. `dst_tx_hash` is populated at submission, before confirmation. See [Order lifecycle](/concepts/order-lifecycle) for the state list and [types](/api-reference/types#order) for full field definitions.