/clobv2/trades — raw two-sided fields, derived convenience fields, full market enrichment, and the side field always present (telling you whether this wallet was the maker or taker on each fill).
Backed by the v2.fill view.
Request
Authentication
Paid tier required. See/clobv2/trades for the auth header formats.
Path parameters
Query parameters
Parameter validation
address: regex^0x[a-f0-9]{40}$(case-insensitive).limit: 1-1000.offset: 0-10000000.
400 Bad Request.
Response
Response fields
Correlate a submitted order safely
The wallet feed’sside field is a role, not a BUY/SELL direction. An
order_hash identifies the order owned by that row’s maker. Before
submission, persist the canonical exchange order hash exposed by the current
SDK’s prepared-order API or browser beforeSubmit callback. Descriptive fields
cannot establish identity: two orders from the same wallet can have the same
token, direction, price, size, and time window.
When reconciling an order submitted for a wallet:
- Query the order’s trading/funder address. For a Safe or deposit wallet this
is the signing preview’s
order.maker, not its controlling EOA signer. - Keep only rows whose
order_hashexactly equals the persisted hash (case-insensitively), withside: "maker"and a matchingmakeraddress. Aside: "taker"row describes an order owned by the counterparty, so itsorder_hashis not the queried wallet’s submitted order. Never search for a different hash because amounts or timestamps look similar. - For ordinary outcome/collateral fills, derive the submitted order direction from the raw token sides:
- Group the exact-hash rows. The endpoint returns one row per fill, and a partially filled order can appear in several rows with the same hash.
- Convert each row’s
maker_usdcandtaker_usdcdecimal string back to raw six-decimal units, then sum each leg within the group. Despite their historical names, the non-collateral leg represents outcome-token shares. Never use a binary floating-point type for this conversion.
rowMaker and rowTaker be one fill’s converted raw values, and let
orderMaker and orderTaker be BigInt(preview.makerAmount) and
BigInt(preview.takerAmount). Every candidate row must have positive values
and satisfy the order’s integer-rounded minimum received amount:
orderMaker. Equality with the full preview amounts is not required: the order
may be partially filled, per-fill integer rounding can accumulate, and price
improvement may make the received leg larger than its preview minimum. These
maker, token, direction, and amount checks validate an exact hash match; they
do not discover one. If the persisted hash is absent after bounded rereads,
the result remains ambiguous: mark it for operator/user review and never
automatically resubmit the consumed order.
Rate-limit headers
Same as every clobv2 endpoint:x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset.
Examples
Error responses
Notes
- The wallet in the path is case-insensitive —
0xD663F0...works the same as0xd663f0.... The response always echoes the normalized lowercase form. - Results are always sorted by
ts_unix DESC(newest first). sideis always"maker"or"taker"here, unlike/clobv2/tradeswhere it only appears when you supplywallet=.- A wallet that has never traded on v2 returns
count: 0with an emptytrades: []— not a 404. - The same trade appears in both participants’ wallet-trade lists — if you need deduplication across both sides, use
tx_hash + order_hashas the key.

