See Polymarket
before everyone else.

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..

Realtime Polymarket trades
Connecting...
Waiting for trade...
Waiting for trade...
Waiting for trade...
Why the mempool

The chain is old news.

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.

🖥

Build vs. buy

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 →

Millisecond delivery

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.

📊

Full trade data

Wallet, counterparty, size, price, side, role, market, timestamps. Everything you need in a single event.

🔥

Spot trends across all markets

See every market at once in a single stream. Detect volume surges, whale entries, and coordinated moves as they happen — not after the fact.

📑

Observe real trading flow

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.

🏃

Good for copy trading

Follow any wallet in real time and react before the price moves. With some price aggression, you may even frontrun leader's maker orders.

Integrate in minutes

Connect once. Stream forever.

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.

Get an API key
bot.py
# 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())
Message format

Every field. No surprises.

Each event is a single JSON object. Here's exactly what you'll see — and what every field means.

event.json
{
  "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"
}
wallet_addressstr
Wallet executing this side of the trade. Track behavior, build leaderboards, or follow specific actors.
asset_idstr
Decimal ERC-1155 token ID (same as the CLOB token ID). Maps to a market outcome.
operation_typestr
"buy" or "sell". The action this wallet is taking.
sizefloat
Number of shares (token units, NOT USDC).
pricefloat | null
USDC per share. null for split / merge / redeem / convert events.
counterpartystr | null
Wallet on the other side. Trades are emitted twice (once per participant). null for CTF position events.
wallet_rolestr | null
"maker" (resting order) or "taker" (crossing order). null for CTF position events.
tx_hashstr
Polygon transaction hash (0x-prefixed). Same hash for both legs — use to deduplicate or correlate.
timestampISO 8601
UTC timestamp when the event was processed.
sourcestr
"pending" (from mempool) or "confirmed" (from on-chain logs). Both are streamed.
event_typestr
"trade" (OrderFilled), "split", "merge", "redeem", or "convert".
block_numberint
Polygon block number. 0 for pending events, populated once confirmed.
block_timestampstr | null
ISO-8601 UTC of the containing block. null for pending events.
order_hashstr | null
EIP-712 order hash from the OrderFilled log (maker only, confirmed events).
order_hasheslist | null
Both candidate order hashes (CTF + NegRiskCTF). Present on pending trades only.
feefloat
Taker fee: in shares for buys, in USDC for sells. 0.0 for makers.
intent_adjustedbool
true when the taker's asset/op was flipped to reflect their original order intent.
log_indexint | null
Log index within the block. null for pending events.
exchangestr | null
"Exchange" or "NegRiskExchange". null if unknown.
Pricing

Simple plans. Same low latency.

Pay monthly. Cancel anytime.

Free Trial
$0/24h
The full feed for 24 hours. No commitment.
  • The complete live mempool feed
  • Both pending and confirmed trades
  • Then $50/mo — cancel anytime
Institutional
Custom
Funds, market makers, infra teams.
  • Multiple dedicated streams
  • Higher connection limits
  • SLA & dedicated nodes
  • Co-located endpoint options
  • Direct engineering channel
Contact sales

The market doesn't wait. Neither should you.

Get a key, paste a URL, see Polymarket move in real time.