> ## Documentation Index
> Fetch the complete documentation index at: https://docs.serialized.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Market Trades

> Trade tape of one market, addressed by pool: recent + historical, time-bounded, opaque cursor pagination, optional participant filter. Same row shape and filters as `/v1/token/trades` - a page here equals `/v1/token/trades?pools=<this pool>`.

`GET /v1/pool/trades` · **1 credit**

Trade tape of one market, addressed by pool. Same row shape, badges and filters as [`/v1/token/trades`](/endpoints/trades-tape); the only difference is scope - exactly this pool. Each trade carries a stable `id`, timestamp (ms), price, size, side, `maker`, badges and tx hash.

<Note>**Pagination.** Each page is bounded by `limit` and by a scan window over the tape: a page can hold fewer than `limit` rows while `meta.hasMore` is `true`. Keep passing `meta.nextCursor` until `hasMore` is `false`; cursors never skip or repeat a trade, and `hasMore: false` means the requested history is fully served.</Note>

<Note>Every row carries `poolAddress`, the market it happened on: here always this pool, the same field the token-wide tape uses to tell markets apart. `quoteToken` is this pool's quote token (`address`, `symbol`, `name`, `decimals`), the unit of `amountQuote`; `priceUsd` is priced like `volumeUsd` (`meta.usdBasis`).</Note>

<Note>An unknown pool returns `404` (never a silently-empty 200). `maker` is the trader behind the swap (resolved through relays, solvers and smart accounts, otherwise the transaction sender). `feesNative` is the total fee paid by the trader for the transaction (gas and priority fee, plus the validator tip on Solana) in the chain's native unit, `null` when it is not available for that row. `meta.usdBasis` states how each `volumeUsd` was priced: `spot` on EVM, `trade` on Solana. `isWash` is a boolean on Solana and `null` on EVM. On EVM each row is one swap event (a swap routed through several pools yields one row per pool, sharing `txHash`); on Solana the legs of a transaction are aggregated per transaction and side. `fromAt` and `toAt` are unix milliseconds; a value in seconds is rejected with `400`.</Note>

<RequestExample>
  ```bash cURL theme={null}
  curl 'https://api.serialized.xyz/v1/pool/trades?chain=evm:8453&address=0x0ca6485b7e9cf814a3fd09d81672b07323535b64&limit=2' \
    -H 'Authorization: YOUR_API_KEY'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "data": [
      {
        "id": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf:289",
        "at": 1786718835000,
        "maker": "0x95d955179a7cd45aeef394ed39f6a8d8b1bd1e09",
        "isBuy": true,
        "amountToken": 77.05662024406023,
        "amountQuote": 0.000042612402192036,
        "quoteToken": { "address": "0x4200000000000000000000000000000000000006", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18 },
        "priceNative": 5.4747124708872e-7,
        "priceUsd": 0.00103052429,
        "volumeNative": 0.000042612402192036,
        "volumeUsd": 0.08021081608014609,
        "feesNative": 0.0000021,
        "isProTrader": false,
        "isSniper": false,
        "isWash": null,
        "preconfirmed": false,
        "txHash": "0x9d6dd98095ebcb254576b23b2269edf8fa984b581404209aa2a5fe3a14431bdf",
        "block": 49964744,
        "logIndex": 289,
        "poolAddress": "0x0ca6485b7e9cf814a3fd09d81672b07323535b64"
      }
    ],
    "meta": {
      "asOf": 1786725098947,
      "usdBasis": "spot",
      "hasMore": true,
      "nextCursor": "e1:eyJ0IjoxNzg2NzE4ODM1MDAwLCJiIjo0OTk2NDc0NCwibCI6Mjg5fQ"
    }
  }
  ```
</ResponseExample>


## OpenAPI

````yaml openapi.json GET /v1/pool/trades
openapi: 3.1.0
info:
  title: Serialized Data API
  description: >-
    On-chain data for trading apps - tokens, candles, token filters. Built on
    our own indexers. 18 EVM chains + Solana, live.
  version: 0.1.0
servers:
  - url: https://demo.serialized.xyz
    description: 'Demo: no key needed, read endpoints, rate-limited per IP'
  - url: https://api.serialized.xyz
    description: 'Production: your API key in the Authorization header'
security:
  - apiKey: []
  - {}
paths:
  /v1/pool/trades:
    get:
      summary: Market Trades
      description: >-
        Trade tape of one market: recent + historical, time-bounded, cursor
        pagination, optional participant filter. Each trade carries a stable id,
        timestamp (ms), price, size, side, maker and tx hash.
      operationId: market-trades
      parameters:
        - schema:
            type: string
            x-default: evm:8453
          in: query
          name: chain
          required: true
          description: Public chain id - `evm:<id>` or `solana`.
          example: evm:8453
        - schema:
            type: string
            x-default: '0x0ca6485b7e9cf814a3fd09d81672b07323535b64'
          in: query
          name: address
          required: true
          description: >-
            Pool / pair address (the stable market id on its chain - Uniswap V4
            poolIds supported).
          example: '0x0ca6485b7e9cf814a3fd09d81672b07323535b64'
        - schema:
            type: string
            x-default: '0x16380ab7951906dd53ca6095d51f091ef2614127'
          in: query
          name: maker
          required: false
          description: Filter trades by participant address.
          example: '0x16380ab7951906dd53ca6095d51f091ef2614127'
        - schema:
            anyOf:
              - type: string
                enum:
                  - buy
              - type: string
                enum:
                  - sell
          in: query
          name: tradeType
          required: false
        - schema:
            minimum: 0
            type: number
          in: query
          name: usdMin
          required: false
        - schema:
            minimum: 0
            type: number
          in: query
          name: usdMax
          required: false
        - schema:
            minimum: 0
            type: number
          in: query
          name: nativeMin
          required: false
        - schema:
            minimum: 0
            type: number
          in: query
          name: nativeMax
          required: false
        - schema:
            minimum: 0
            type: number
          in: query
          name: tokenAmountMin
          required: false
        - schema:
            minimum: 0
            type: number
          in: query
          name: tokenAmountMax
          required: false
        - schema:
            minimum: 0
            type: integer
            x-default: 1755000000000
          in: query
          name: fromAt
          required: false
          description: >-
            Unix MILLISECONDS, inclusive lower bound. A value in seconds is
            rejected (400).
          example: 1755000000000
        - schema:
            minimum: 0
            type: integer
          in: query
          name: toAt
          required: false
          description: >-
            Unix MILLISECONDS, inclusive upper bound (at most 7 days ahead). A
            value in seconds is rejected (400).
        - schema:
            type: string
            x-default: eyJ0IjoxNzU1...
          in: query
          name: cursor
          required: false
          description: Opaque cursor from `meta.nextCursor`.
          example: eyJ0IjoxNzU1...
        - schema:
            default: desc
            anyOf:
              - type: string
                enum:
                  - asc
              - type: string
                enum:
                  - desc
            x-default: desc
          in: query
          name: sort
          required: false
          example: desc
        - schema:
            anyOf:
              - type: string
                enum:
                  - washOnly
              - type: string
                enum:
                  - organicOnly
          in: query
          name: washFilter
          required: false
          description: Keep only wash-tagged or only organic transactions (solana only)
        - schema:
            minimum: 1
            maximum: 500
            default: 100
            type: integer
            x-default: 100
          in: query
          name: limit
          required: false
          example: 100
        - schema:
            type: string
          in: query
          name: include
          required: false
          description: 'CSV opt-ins: traderTxCounts'
      responses:
        '200':
          description: Standard `{ data, meta }` envelope.
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: Authorization
      in: header
      description: Your raw API key (not needed on the demo server).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.