Skip to main content

polyflux

PyPI Python License: MIT

Official Python client for Polyflux — stream real-time Polymarket trades from the mempool over WebSocket.

See every Polymarket trade the millisecond it happens — ~3 seconds before it confirms on-chain. Build trading bots, whale alerts, and real-time signals in a few lines of Python.

You need a Polyflux API key to stream. Get one at polyflux.io → (free trial).

Install

pip install polyflux-client

Then import polyflux in your code.

Quickstart

import asyncio
from polyflux import Client

async def main():
    client = Client("YOUR_API_KEY")          # get one at https://polyflux.io
    async for trade in client.trades():
        print(trade.side, trade.size, trade.price, trade.wallet_address)

asyncio.run(main())

Each Trade gives you asset_id, wallet_address, size, price, side (buy/sell), timestamp, plus helpers like .notional (USDC value) and .time (UTC datetime). The full raw message is always on .raw.

The client handles connection, parsing, and automatic reconnection — just async for over .trades() and let it run.

Resolve markets

The feed identifies markets by asset_id (a clob token id). Use MarketCatalog to turn that into a human-readable market:

from polyflux import Client, MarketCatalog

catalog = MarketCatalog(market_fields=["question"])
await catalog.start()   # caches the active-market set under ./data

async for trade in client.trades():
    record = catalog.get(trade.asset_id)
    if record:
        print(record["market"]["question"], trade.size, trade.price)

MarketCatalog keeps an O(1) asset_id → market map with a configurable memory footprint, refreshes in the background, and can fetch unknown ids on demand. See examples/whale_alert.py for a full bot.

Beyond trades: flows & resolutions

The feed carries more than trades. Each event has an event_type; typed iterators give you just the ones you want:

# Stablecoin flows — registry-classified, so a "confirmed" flow is a real
# Polymarket movement, not a guess. Deposits are money entering PM wallets;
# p2p transfers are money moving between them.
async for t in client.transfers():          # deposits + p2p together
    print(t.event_type, t.amount, t.token, t.from_address, "->", t.to_address)
# or client.deposits() / client.p2p_transfers() for one kind

# UMA oracle resolutions — how every market ultimately settles.
async for r in client.resolutions():        # propose / dispute / settle
    if r.is_dispute:                         # rare: a proposed answer was challenged
        print("DISPUTED:", r.title, "by", r.disputer)
  • Transferevent_type (deposit/p2p_transfer), from_address, to_address, amount (USD), token (USDC/USDC.e/USDT/pUSD), tier, pm_link_reason, plus .is_deposit / .is_p2p / .is_confirmed.
  • Resolutionevent_type (propose/dispute/settle), proposer, disputer, outcome (YES/NO/50-50), market_id, ancillary_hash, proposed_price, resolved_price, plus .title, .market_key, and .is_propose / .is_dispute / .is_settle. Group by .market_key to follow a market across oracle resets — it's stable where market_id isn't.

To watch several event types over a single connection, loop client.events() and build the model per event_type (see the example below). The dedicated iterators each open their own connection, so use one per process.

Examples

POLYFLUX_API_KEY=your_key python examples/quickstart.py

Links

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

polyflux_client-0.2.0.tar.gz (19.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polyflux_client-0.2.0-py3-none-any.whl (17.7 kB view details)

Uploaded Python 3

File details

Details for the file polyflux_client-0.2.0.tar.gz.

File metadata

  • Download URL: polyflux_client-0.2.0.tar.gz
  • Upload date:
  • Size: 19.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for polyflux_client-0.2.0.tar.gz
Algorithm Hash digest
SHA256 719bd6a7ad4859f8a0b3903c5a961fe74e60022b87fc4740a957437af6a0c175
MD5 57477ed941817e2fece1923ffd3a4b4f
BLAKE2b-256 65a8d83a2e7b936f65a93d5986ee78f2d73fab8c832ad87adb32d8e2cc84f11c

See more details on using hashes here.

File details

Details for the file polyflux_client-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for polyflux_client-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8cc67ee848aa99d4c6214d319f0bc0bbffdc79669b80a17bb21f30c691642b25
MD5 2191c7878860db6992bb7f0a827353a8
BLAKE2b-256 c73f588aa34497eafdbc52381083c224e3e853d94001139959282cb1ef7641f4

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.0

2 files

This release

0.2.0 This release

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page