Skip to main content
← Back to the current changelog ← April 27 positions · Older: April 26, 2026 →

2026-04-27 — Trades: unified schema, direction & side always present

/v2/onchain/trades, /v2/onchain/wallets/{w}/trades, and /v2/onchain/markets/{tok}/trades now return the same direction and side fields on every row, regardless of which filter combination is passed. Previously these fields appeared only when a ?wallet= anchor was supplied — market-wide queries (?condition_id=…, ?token_id=…, no filter) omitted both, and consumers had to render two different schemas.
Anchor rule:
  • With ?wallet=direction and side are wallet-relative. direction is BUY when the wallet contributed USDC and received outcome shares, SELL when it contributed outcome shares and received USDC. side is maker when the wallet placed the resting order, taker when it crossed the spread.
  • Without ?wallet=direction is anchored on the maker of each fill (the user who signed the limit order; on Polymarket’s CLOB this is always a user EOA). side is therefore always "maker" in this case.
This means a single fill viewed from a wallet-filtered query and from a market-wide query may report different direction values — both are correct, just anchored on different parties. See the “Direction & side semantics” section on the trades reference page. Strictly additive — calls that previously returned direction/side continue to return the exact same values.