← Backtesting

SDK

NautilusTrader: integrate Polymarket into an event-driven strategy

NautilusTrader’s Polymarket adapter brings public feeds and signed execution into its event-driven platform. The Rust implementation exposes Python bindings and models YES and NO outcome tokens as separate BinaryOption instruments.

Screenshots and interface

What is NautilusTrader?

The data client translates book deltas, quotes and trades into native Nautilus events. Missing instruments can be loaded through Gamma when subscriptions require them, using condition and outcome-token IDs to preserve identity in research data. Public CLOB feeds and Gamma discovery do not need wallet credentials.

Execution adds native EIP-712 signing and account reconciliation. Configure signer, funder, signature type and allowances, then recover order, fill and position state before a strategy starts. The surrounding framework is substantial, and venue-specific order conventions still apply.

Who it is for

  • Python or Rust strategy teams.
  • Researchers moving between replay and live infrastructure.
  • Developers needing explicit order states.

Features and coverage

  • L2 and trade events

    Receive book deltas, quote ticks and trade ticks in Nautilus types.

  • Runtime instruments

    Load needed instruments through Gamma at subscription time.

  • Native signing

    Create EIP-712 order signatures in Rust.

  • Execution and cancellation

    Submit limits and marketable orders, cancel orders and batch independent limits.

  • Account reconciliation

    Recover state from active orders, Data API positions and trade history.

  • Resolution handling

    Close winning and losing outcome instruments on resolution.

  • Wallet configuration

    Set the account’s signer, funder and signature type.

Workflows with NautilusTrader

Build a data strategy

Load outcome instruments with a public client and process quotes or books, retaining consistent instrument IDs in stored data.

Connect execution

Configure credentials and allowances, reconcile before activation and track cancellations and final fills in the event pipeline.

Pricing and total cost

The adapter is part of open-source NautilusTrader. Infrastructure, commercial platform services and venue trading charges are separate.

Getting started

Before you start: Buy and sell market-order amounts use different units.

  1. Install a supported release and read the Polymarket guide.
  2. Configure a data client and outcome IDs; subscribe to a small market set.
  3. For execution, set signer, funder, signature type and allowances, then enable reconciliation.

Market buys use quote currency; market sells use share quantities.

Read NautilusTrader documentation

Useful links

What to check

  • Buy and sell market-order amounts use different units.
  • IOC maps to FAK; GTC and GTD apply to resting limits.
  • Venue-native stop, trailing, bracket, OCO and iceberg orders are unsupported.
  • Post-only cannot use market-order time in force.
  • Order changes use cancellation, without in-place amendment.

A closer look

Ratings & reviews

Editorial rating
4.0/ 5
0 user reviews

Our take on NautilusTrader

A detailed adapter and explicit order limits suit experienced strategy developers. The larger framework and Polymarket execution conventions create a substantial learning curve.

Based on documented features, setup and access terms. How we rate

User reviews 0

The main score switches to user ratings after 5 published reviews.

Be the first to share your experience

A specific example helps the next person choose the right tool.

Related tools

Browse category

Frequently asked questions about NautilusTrader

Can I read data without credentials?

Public CLOB feeds and Gamma discovery do not require a wallet.

Is Python supported?

The Rust adapter exposes Python bindings.

Are stops venue-native?

The documented adapter does not offer venue-native stop or trailing orders.

How are outcomes identified?

Each BinaryOption uses its condition ID and outcome token ID.