---
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.