Every trade below is real. Watch how fast you see it with mempool access, how long it takes to be mined on-chainValidators verify the transaction and add it to the Polygon blockchain. Displayed below as "Confirmed"., and when it finally appears on the official Polymarket APIFetched directly in your browser every 1 second from data-api.polymarket.com with a cache-busting parameter to ensure fresh data..
The mempool is where every trade appears after CLOBCentral Limit Order Book — Polymarket's off-chain matching engine that pairs buy and sell orders before submitting them to the blockchain. matched orders together. By the time it reaches the public API, you're already seconds behind.
Self-hosting means a Polygon node, terabytes of fast disk, low-latency infra, and constant upkeep. We run all of it — you just connect and stream.
Read more →Trades arrive the instant they enter the Polygon mempool — typically 1.5s before on-chain confirmation and 6–10s before appearing on the Polymarket API.
Wallet, counterparty, size, price, side, role, market, timestamps. Everything you need in a single event.
See every market at once in a single stream. Detect volume surges, whale entries, and coordinated moves as they happen — not after the fact.
See individual trades as they're submitted — not batched after they're mined. Perfect for researching wallet behavior, spotting patterns, and understanding how other traders really operate.
Follow any wallet in real time and react before the price moves. With some price aggression, you may even frontrun leader's maker orders.
pip install polyflux-client, drop in your API key, and stream
typed trades in a few lines — auto-reconnection handled for you. It's a
plain WebSocket underneath, so Node, Rust, or Go work too.
# pip install polyflux-client import asyncio from polyflux import Client async def main(): client = Client("YOUR_API_KEY") async for trade in client.trades(): print(trade.wallet_address, trade.side, trade.notional) # size × price, in USDC asyncio.run(main())
Each event is a single JSON object. Here's exactly what you'll see — and what every field means.
{
"wallet_address": "0xe5ce1a65c210e08d3ffbd94e28a61911700c7f3f",
"asset_id": "8110092957755367409636...34004408",
"operation_type": "buy",
"size": 34.29,
"price": 0.923,
"counterparty": "0x81ff15a2bc16e8bd9e9be99697eff32c94b9eaca",
"wallet_role": "maker",
"tx_hash": "0x0a80f632b59bfb131b8c6820...",
"timestamp": "2026-04-10T14:06:41.068529+00:00",
"source": "pending",
"event_type": "trade",
"block_number": 0,
"block_timestamp": null,
"order_hash": "0xb656965aaaf099364d2128...",
"order_hashes": ["0xb656...", "0x38d6..."],
"fee": 0.0,
"intent_adjusted": false,
"log_index": null,
"exchange": "NegRiskExchange"
}
"buy" or "sell". The action this wallet is taking.null for split / merge / redeem / convert events.null for CTF position events."maker" (resting order) or "taker" (crossing order). null for CTF position events."pending" (from mempool) or "confirmed" (from on-chain logs). Both are streamed."trade" (OrderFilled), "split", "merge", "redeem", or "convert".0 for pending events, populated once confirmed.null for pending events.0.0 for makers.true when the taker's asset/op was flipped to reflect their original order intent.null for pending events."Exchange" or "NegRiskExchange". null if unknown.Pay monthly. Cancel anytime.
pending and confirmed tradespending and confirmed tradesGet a key, paste a URL, see Polymarket move in real time.