---
title: "Get wallet trade history"
method: GET
path: "/v4/data/prediction/wallets/{address}/trades"
tags: ["Prediction API"]
---

# Get wallet trade history

`GET /v4/data/prediction/wallets/{address}/trades`

/v4/data/prediction/wallets/{address}/trades

**100 credits per API call**

Trade-only fills for a wallet — one row per trade, with the buy/sell side, outcome metadata, size, price, transaction hash, and the trader's profile fields (display name, profile image). Trade-only — does not include non-trade events like splits, merges, redemptions or rewards (use `/wallets/{address}/activity` for the full feed).

**Platform support**

*   Polymarket only. Kalshi wallets return `400`.

**Filtering and pagination**

*   `market` / `eventId` scope the response (mutually exclusive, up to 50 entries each).
*   `side` filters to `BUY` or `SELL` trades.
*   `takerOnly` defaults to `true` — set to `false` to include maker-side fills.
*   `filterType` and `filterAmount` set a minimum trade size threshold. `filterType=CASH` filters by USDC notional; `filterType=TOKENS` filters by outcome-token count. Both must be provided together — passing one without the other returns `400`.
*   Pagination is offset-based — `limit` (1..10000, default 100) and `offset` (0..10000, default 0). The upstream feed enforces a hard cap at `offset = 3000`; calls past that point return an empty page rather than an error.

**Other notes**

*   `address` is normalised to lowercase before being echoed in the response (every row's `proxyWallet`).
*   `timestamp` is unix-seconds (not milliseconds).
*   `side` uses the trade-direction vocabulary (`BUY` / `SELL`) — distinct from the outcome-side vocabulary (`yes` / `no`) used by `/markets/{id}/trades`.

## Path parameters

- `address` string, required — EVM wallet address — `0x`-prefixed, 40 hex characters. Returned lowercased in response payloads. Non-EVM inputs (e.g. Kalshi user identifiers) return `400` from every wallets endpoint.

## Query parameters

- `market` string
- `eventId` string
- `side` 'BUY' | 'SELL' — Order direction (buy / sell). Distinct from the outcome-side enum.
- `takerOnly` boolean
- `filterType` 'CASH' | 'TOKENS' — Unit used by the `filterAmount` minimum-trade-size threshold on `/wallets/{address}/trades`. `CASH` = USDC notional, `TOKENS` = outcome-token count.
- `filterAmount` number
- `limit` integer
- `offset` integer

## Response `200`

OK

- PredictionWalletTradesResponse — Paginated wallet trades response.
  - `data` PredictionWalletTrade[], required
    - `proxyWallet` string, required — Trader wallet (0x + 40 hex, lowercased).
    - `side` 'BUY' | 'SELL', required — Order direction (buy / sell). Distinct from the outcome-side enum.
    - `asset` string, required — Polymarket outcome-token asset id.
    - `conditionId` string, required — Market condition id (0x + 64 hex).
    - `size` number, required — Trade size (outcome tokens).
    - `price` number, required — Trade price in [0, 1].
    - `timestamp` integer, required — Trade time (unix-seconds).
    - `title` string, nullable, required
    - `slug` string, nullable, required
    - `icon` string, nullable, required
    - `eventSlug` string, nullable, required
    - `outcome` string, nullable, required
    - `outcomeIndex` integer, required
    - `name` string, nullable, required — Trader display name, when set on their profile.
    - `pseudonym` string, nullable, required — Trader pseudonym, when set.
    - `bio` string, nullable, required — Trader profile bio, when set.
    - `profileImage` string, nullable, required
    - `profileImageOptimized` string, nullable, required — CDN-optimised variant of `profileImage`, when available.
    - `transactionHash` string, nullable, required — On-chain transaction hash of the trade settlement.
  - `pagination` PredictionOffsetPagination, required — Offset-based pagination metadata, returned by every wallet endpoint and by `/markets/{id}/positions`. `pageNumber` is the zero-indexed page derived from `offset / limit` on the request.
    - `pageSize` integer, required — Page size of the call that produced this response.
    - `pageNumber` integer, required — Zero-indexed page number (`offset / limit`).

## Other responses

- `400` — Bad Request
- `401` — Unauthorized. Not valid or inactive subscription key present in the HTTP Header.
- `403` — Forbidden. The request is authenticated, but it is not possible to perform the operation due to logical error or invalid permissions.
- `500` — Internal server error. There was an error on the server during the processing of the request.

---

[API](https://skmtc.net/tatum/apis/blockchain-data.md) · [All operations](https://skmtc.net/tatum/apis/blockchain-data/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tatum/blockchain-data/revisions/8622ee4b8fae/schema)
