---
title: "Get trade history"
method: GET
path: "/evm/rh/trades"
tags: ["Robinhood Chain"]
---

# Get trade history

`GET /evm/rh/trades`

Get trade history for a Bags V2 token on Robinhood Chain, newest first, using a compound keyset cursor. Every page respects `limit` (never over-returns), and ties within a busy second are never skipped.

For the next page pass **both** `nextBeforeTs` back as `beforeTs` and `nextBeforeId` back as `beforeId`. Both are `null` when the history is exhausted.

## Query parameters

- `tokenAddress` string, required
- `limit` number
- `beforeTs` number
- `beforeId` string

## Response `200`

Successfully retrieved trades

- object
  - `success` boolean, required
  - `response` object
    - `trades` RhTrade[], required — Trades, newest first.
      - `id` string, required — Unique trade ID (subgraph entity ID). Used as the `beforeId` cursor value.
      - `kind` 'buy' | 'sell', required — Trade direction.
      - `venue` 'curve' | 'pool', required — Where the trade executed: the bonding curve (pre-migration) or the Uniswap V4 pool (post-migration).
      - `account` string, required — EIP-55 checksummed address of the trader.
      - `ethWei` string, required — ETH leg of the trade in wei, as string to support bigint.
      - `tokenWei` string, required — Token leg of the trade in token base units, as string to support bigint.
      - `priceEthPerToken` string, required — Post-trade spot price as an 1e18 fixed-point decimal string (ETH per whole token) — not VWAP. For the execution price use `ethWei / tokenWei`.
      - `blockNumber` number, required — Block number of the trade.
      - `timestamp` number, required — Trade time as unix seconds.
      - `txHash` string, required — Transaction hash of the trade.
      - `logIndex` number, required — Log index of the trade event within the transaction.
    - `nextBeforeTs` number, nullable, required — Cursor timestamp for the next (older) page — pass back as `beforeTs` together with `nextBeforeId`. Null when the history is exhausted.
    - `nextBeforeId` string, nullable, required — Cursor trade ID for the next (older) page — pass back as `beforeId` together with `nextBeforeTs`. Null when the history is exhausted.

## Other responses

- `400` — Bad request - Invalid token address or cursor parameters
- `401` — Unauthorized - Invalid or missing API key
- `500` — Internal server error

---

[API](https://skmtc.net/bags/apis/bags-public-api-v2.md) · [All operations](https://skmtc.net/bags/apis/bags-public-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bags/bags-public-api-v2/versions/4a14b82cd39d/schema)
