VeztaVezta
WebSocket Reference

market:trades

Live trade feed

The market:trades channel broadcasts individual trades as they are synced from Polymarket and Kalshi. Each message represents a single executed trade on the underlying exchange.

Subscribe

{ "event": "subscribe", "data": { "channel": "market:trades" } }

Unsubscribe

{ "event": "unsubscribe", "data": { "channel": "market:trades" } }

Server Broadcast

{
  "channel": "market:trades",
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "marketId": "c5a2e7f1-3b4d-4e6a-8f9c-1d2e3f4a5b6c",
    "source": "polymarket",
    "side": "buy",
    "outcome": "yes",
    "price": "0.672300",
    "size": "500.000000",
    "amount": "336.15",
    "makerAddress": "0x1234...abcd",
    "takerAddress": "0x5678...efgh",
    "txHash": "0xabc123...def456",
    "tradedAt": "2026-03-27T14:29:58.000Z"
  }
}

Payload Schema

FieldTypeDescription
idstringUnique trade identifier (UUID)
marketIdstringMarket this trade belongs to
sourcestringpolymarket or kalshi
sidestringbuy or sell
outcomestringyes or no
pricestringExecution price (Decimal, 6 decimal places)
sizestringNumber of shares traded (Decimal, 6 decimal places)
amountstringUSD value of the trade (price * size)
makerAddressstring?Maker wallet address (Polymarket only)
takerAddressstring?Taker wallet address (Polymarket only)
txHashstring?Transaction hash (Polymarket only)
tradedAtstringISO 8601 timestamp of trade execution

Notes

  • Trades are synced from exchanges and broadcast as they are ingested
  • makerAddress and takerAddress are only available for Polymarket trades. Kalshi is a custodial exchange and does not expose wallet addresses
  • txHash is only available for Polymarket trades (on-chain transactions on Polygon)
  • The amount field is pre-calculated as price * size for convenience
  • Trade data is also persisted in the ExchangeTrade table and powers the trade history feed on market detail pages

On this page