Skip to main content

Documentation Index

Fetch the complete documentation index at: https://polynode.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Every v2 fill where a wallet is either the maker or the taker, newest-first. Same per-trade shape as /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

GET /clobv2/wallets/{address}/trades

Authentication

Paid tier required. See /clobv2/trades for the auth header formats.

Path parameters

ParameterTypeRequiredDescription
addressstringYesWallet address (0x + 40 hex, case-insensitive — normalized lowercase in the response).

Query parameters

ParameterTypeRequiredDescription
limitintegerNoResults per page (1-1000, default 100).
offsetintegerNoSkip this many results (0-10000000, default 0).

Parameter validation

  • address: regex ^0x[a-f0-9]{40}$ (case-insensitive).
  • limit: 1-1000. offset: 0-10000000.
Bad input → 400 Bad Request.

Response

{
  "wallet": "0xd663f0f56e5c80d4716d46c776fabb4ec4c66abc",
  "source": "onchain-v2",
  "count": 1,
  "offset": 0,
  "trades": [
    {
      "ts": "2026-04-20T06:12:00+00:00",
      "ts_unix": 1776665520,
      "tx_hash": "0x7a78b781...",
      "order_hash": "0x8d102e00...",

      "maker": "0xd663f0f56e5c80d4716d46c776fabb4ec4c66abc",
      "taker": "0xf86178a8e4b9e7c6a00200bf1ee5679383de462f",
      "side": "maker",

      "token_id": "32530407925029104312458780580530294728135746429755854137976885977399961033740",
      "amount_usd": "1.3440000000000000",
      "shares": "5.6000000000000000",
      "price": "0.24000000000000000000",
      "fee_usd": "0.000000000000000000000000",

      "maker_token_id": "0",
      "taker_token_id": "32530407925029104312458780580530294728135746429755854137976885977399961033740",
      "maker_usdc": "1.3440000000000000",
      "taker_usdc": "5.6000000000000000",
      "fee_usdc": "0.000000000000000000000000",

      "builder": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "question": "Solana Up or Down - April 20, 2:10AM-2:15AM ET",
      "slug": "sol-updown-5m-1776665400",
      "event_title": "Solana Up or Down - April 20, 2:10AM-2:15AM ET",
      "image": "https://polymarket-upload.s3.us-east-2.amazonaws.com/SOL+fullsize.png",
      "condition_id": "0x1ee2fb3f919aa7c307565db03241926252666691aca6d7185af4654df603efdc",
      "outcome": "Up"
    }
  ]
}

Response fields

FieldTypeDescription
walletstringEchoes the path parameter, normalized to lowercase.
sourcestringAlways "onchain-v2".
countintegerNumber of trades in this page.
offsetintegerThe offset used.
trades[]arrayOne entry per fill. Shape is identical to /clobv2/trades trades, except side is always present ("maker" or "taker") — see that page for full field descriptions.

Rate-limit headers

Same as every clobv2 endpoint: x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-reset.

Examples

# Last 20 fills for a wallet
curl "https://api.polynode.dev/clobv2/wallets/0xd663f0f56e5c80d4716d46c776fabb4ec4c66abc/trades?limit=20" \
  -H "x-api-key: pn_live_..."

# Full history — page until has_more is false
OFFSET=0
while true; do
  RESP=$(curl -sS "https://api.polynode.dev/clobv2/wallets/0xd663.../trades?limit=1000&offset=$OFFSET" -H "x-api-key: pn_live_...")
  COUNT=$(echo "$RESP" | jq '.count')
  echo "$RESP" | jq '.trades[]'
  if [ "$COUNT" -lt 1000 ]; then break; fi
  OFFSET=$((OFFSET + COUNT))
done

Error responses

StatusBodyWhen
400{"error": "invalid wallet address ..."}Bad path param.
401{"error": "missing API key ..."}No key or bad key.
402{"error": "paid plan required ..."}Free tier.
429{"error": "rate limit exceeded", "reset_at": <unix>}Rate limit hit.
5xx{"error": "upstream gateway error"}Transient upstream; retried once.

Notes

  • The wallet in the path is case-insensitive — 0xD663F0... works the same as 0xd663f0.... The response always echoes the normalized lowercase form.
  • Results are always sorted by ts_unix DESC (newest first).
  • side is always "maker" or "taker" here, unlike /clobv2/trades where it only appears when you supply wallet=.
  • A wallet that has never traded on v2 returns count: 0 with an empty trades: [] — not a 404.
  • The same trade appears in both participants’ wallet-trade lists — if you need deduplication across both sides, use tx_hash + order_hash as the key.