Polymarket

This page documents the Polymarket adapter module in nautilus_trader.adapters.polymarket.

Integration adapter for Polymarket.

class PolymarketDataClientConfig

Bases: object

Configuration for the Polymarket data client.

filters and new_market_filter hold Arc<dyn InstrumentFilter> trait objects and are skipped during serialization; they default to empty/None and must be installed programmatically after deserialization.

auto_load_debounce_ms
auto_load_max_retries
auto_load_missing_instruments
auto_load_retry_delay_initial_secs
auto_load_retry_delay_max_secs
base_url_data_api
base_url_gamma
base_url_http
base_url_rtds
base_url_ws
compute_effective_deltas
drop_quotes_missing_side
has_proxy_url
http_timeout_secs
instrument_config
new_market_fetch_max_concurrency
resolve_poll_enabled
resolve_poll_grace_secs
resolve_poll_interval_secs
resolve_poll_max_wait_secs
subscribe_new_markets
transport_backend
update_instruments_interval_mins
ws_max_subscriptions
ws_timeout_secs
class PolymarketDataClientFactory

Bases: object

Factory for creating Polymarket data clients.

name()
class PolymarketDataLoader

Bases: object

condition_id

Returns the on-chain condition ID.

static from_event_slug(slug, token_index=0, base_url_http=None, base_url_gamma=None, base_url_data_api=None, timeout_secs=10)

Creates one loader for every market in a Gamma event slug.

static from_market_slug(slug, token_index=0, base_url_http=None, base_url_gamma=None, base_url_data_api=None, timeout_secs=10)

Creates one loader from a Gamma market slug.

instrument

Returns the normalized binary option instrument.

load_trades(start=None, end=None, limit=None)

Loads historical trades from the Rust Data API client.

static query_event_by_slug(slug, base_url_gamma=None, timeout_secs=10)

Queries one Gamma event by slug.

static query_events(filters=None, base_url_gamma=None, timeout_secs=10)

Lists Gamma events with validated filters and keyset pagination.

static query_market_by_slug(slug, base_url_gamma=None, timeout_secs=10)

Queries one Gamma market by slug.

static query_market_details(condition_id, base_url_http=None, timeout_secs=10)

Queries public CLOB market details by condition ID.

static query_markets(filters=None, base_url_gamma=None, timeout_secs=10)

Lists Gamma markets with validated filters and keyset pagination.

Searches Gamma markets and events.

static query_tags(base_url_gamma=None, timeout_secs=10)

Lists Gamma tags.

resolution_metadata

Returns resolution lifecycle metadata retained separately from instrument.info.

Shared market identity such as resolutionSource is also available from instrument.info[“resolution_source”].

token_id

Returns the selected CLOB token ID.

class PolymarketExecutionClientConfig

Bases: object

Configuration for the Polymarket execution client.

Debug is implemented manually to redact secrets, so it is not part of the derive list.

account_id
base_url_data_api
base_url_http
base_url_ws
funder
has_proxy_url
heartbeat_enabled
http_timeout_secs
instrument_config
max_retries
retry_delay_initial_ms
retry_delay_max_ms
signature_type
transport_backend
class PolymarketExecutionClientFactory

Bases: object

Factory for creating Polymarket execution clients.

name()
class PolymarketFeeModel

Bases: FeeModel

Polymarket fee model for binary-option backtests.

Taker fills pay the market’s fee-equivalent amount. Maker fills receive a per-fill approximation of the daily maker rebate by applying the market’s configured rebate rate to that fee-equivalent amount.

get_commission(order, fill_quantity, fill_px, instrument)
get_commission_with_context(order, fill_quantity, fill_px, instrument, _underlying_px=None)
class PolymarketInstrumentProviderConfig

Bases: object

Configuration for the Polymarket instrument provider.

This mirrors the Python adapter’s instrument_config layering so scoped market bootstrap can migrate naturally to the Rust/pyO3 live path.

event_slug_builder
event_slugs
filters
load_all
load_ids
log_warnings
market_slugs
series_ids
use_gamma_markets
class PolymarketRtdsCryptoPrice

Bases: object

Polymarket RTDS crypto price sample from the crypto_prices topic.

The adapter normalizes both live update frames and subscribe backfill snapshots into this per-tick custom data type.

classmethod from_json(data)

Class method for JSON deserialization. Used by register_custom_data_class.

message_timestamp_ms
price_timestamp_ms
symbol
to_json()

Serializes to JSON string. Used by CustomData.to_json_bytes and PythonCustomDataWrapper.

ts_event
ts_init
value
class PolymarketRtdsCryptoTwap

Bases: object

Chainlink-computed crypto TWAP sample relayed by Polymarket RTDS.

The adapter derives value only from the exact signed E18 provider field. The numeric display field in the RTDS payload is never authoritative.

RTDS provides only live update frames for this type. Subscriptions begin with the next update and have no snapshot, history, or replay after reconnect.

The adapter suppresses older observations and exact same-timestamp redeliveries. A changed value at the same observation timestamp is reported as a protocol error and is not emitted. The previous observation remains authoritative, so emission resumes only at a newer timestamp.

classmethod from_json(data)

Class method for JSON deserialization. Used by register_custom_data_class.

message_timestamp_ms
observation_timestamp_ms
symbol
to_json()

Serializes to JSON string. Used by CustomData.to_json_bytes and PythonCustomDataWrapper.

ts_event
ts_init
value
window_seconds
class PolymarketRtdsEquityPrice

Bases: object

Polymarket RTDS equity price sample from the equity_prices topic.

The adapter normalizes both live update frames and subscribe backfill snapshots into this per-tick custom data type.

classmethod from_json(data)

Class method for JSON deserialization. Used by register_custom_data_class.

full_accuracy_value
is_carried_forward
message_timestamp_ms
price_timestamp_ms
received_at_ms
symbol
to_json()

Serializes to JSON string. Used by CustomData.to_json_bytes and PythonCustomDataWrapper.

ts_event
ts_init
value
class PolymarketUpDownEventSlugConfig

Bases: object

Rust-backed event slug builder for Polymarket Up/Down markets.

Up/Down event slugs follow the pattern {asset}-updown-{interval_mins}m-{unix_timestamp}, where the timestamp is aligned to the start of the interval. The builder emits slugs for each configured asset and period.

assets
interval_mins
periods
start_offset_periods
class SignatureType

Bases: object

EIP-712 signature type for order signing.

Serialized as a numeric value (0/1/2/3) on the wire.

Eoa = SignatureType.Eoa
Poly1271 = SignatureType.Poly1271
PolyGnosisSafe = SignatureType.PolyGnosisSafe
PolyProxy = SignatureType.PolyProxy