Config fields
| Field | Type | Required | Description |
|---|---|---|---|
private_key | string | for auth | EOA private key (hex). Used to sign orders. |
funder | string | for proxy/safe | Funder/proxy/safe address holding USDC |
signature_type | "eoa" | "proxy" | "gnosis_safe" (or 0 / 1 / 2) | optional | Defaults to gnosis_safe if funder is set, otherwise eoa |
api_key | string | optional | L2 CLOB API key (skips init_trading() derivation) |
api_secret | string | optional | L2 CLOB API secret |
api_passphrase | string | optional | L2 CLOB API passphrase |
gamma_url | string | optional | Override the Gamma (markets) API base URL |
clob_url | string | optional | Override the CLOB API base URL |
polygon_rpc_url | string | optional | Polygon RPC URL for on-chain reads |
verbose | bool | optional | Verbose logging |
api_key / api_secret / api_passphrase are absent, OpenPX derives them
on first authenticated call by signing a ClobAuth EIP-712 message.
Environment variables
POLYMARKET_PRIVATE_KEYPOLYMARKET_FUNDERPOLYMARKET_API_KEYPOLYMARKET_API_SECRETPOLYMARKET_API_PASSPHRASE
Identifiers
Market.idis thecondition_idhex string (e.g.0x311d0c4b…). Both?id=and?condition_id=accept this on Polymarket REST endpoints.Market.native_numeric_idholds the legacy numeric DB id (e.g."1031769") for callers that need to build deep-links to the Polymarket UI.- WebSocket subscribe target is a CLOB token ID, not the condition
ID. Use
token_id_yes/token_id_nofromMarket. - Outcomes are
"Yes"/"No".
Capabilities
Every method on the unified surface is implemented. Inspectex.describe()
to confirm at runtime.
Rate limits
Defined inengine/core/src/exchange/manifests/polymarket.rs:
- Default: 150 req/sec, burst 10
- Write endpoints (orders): 350 req/sec, burst 20
- Bulk endpoints: 20 req/sec, burst 5