Polymarket’s CLOB (Central Limit Order Book) is a hybrid-decentralized trading system — offchain order matching with onchain settlement via the Exchange contract (audited by Chainsecurity). All trading is non-custodial. Orders are EIP-712 signed messages, and matched trades settle atomically on Polygon. The operator cannot set prices or execute unauthorized trades. We recommend using the open-source SDK clients, which handle order signing, authentication, and submission:Documentation Index
Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt
Use this file to discover all available pages before exploring further.
TypeScript Client
npm install @polymarket/clob-client-v2 viem
Python Client
pip install py-clob-client-v2
Rust Client
cargo add polymarket_client_sdk_v2 —features clob
You can also use the REST API directly, but you’ll need to manage EIP-712
order
signing
and HMAC authentication
headers
yourself. See REST API Headers below.
Authentication
The CLOB uses two levels of authentication:| Level | Method | Purpose |
|---|---|---|
| L1 | EIP-712 signature (private key) | Create or derive API credentials |
| L2 | HMAC-SHA256 (API credentials) | Place orders, cancel orders, query trades |
Signature Types
When initializing the trading client, you must specify your wallet’s signature type and funder address:| Wallet Type | ID | When to Use | Funder Address |
|---|---|---|---|
| EOA | 0 | Standalone wallet — you pay your own gas (POL for gas) | Your EOA wallet address |
| POLY_PROXY | 1 | Existing Polymarket proxy wallet flow | Your proxy wallet address |
| GNOSIS_SAFE | 2 | Existing Gnosis Safe wallet flow | Your Safe wallet address |
| POLY_1271 | 3 | Deposit wallet flow for new API users. Orders are signed by the owner/session signer and validated by ERC-1271 | Your deposit wallet address |
New API users should use deposit wallets with signature type
3. Existing
Proxy and Safe users are unaffected and can keep using signature types 1 and
2. Type 0 is for standalone EOA wallets only.Initialize the Trading Client
REST API Headers
If you’re using the REST API directly (without the SDK), you need to attach authentication headers to each request. L1 Headers — for creating or deriving API credentials:| Header | Description |
|---|---|
POLY_ADDRESS | Your wallet address |
POLY_SIGNATURE | EIP-712 signature |
POLY_TIMESTAMP | Unix timestamp |
POLY_NONCE | Request nonce |
| Header | Description |
|---|---|
POLY_ADDRESS | Your wallet address |
POLY_SIGNATURE | HMAC-SHA256 signature of the request |
POLY_TIMESTAMP | Unix timestamp |
POLY_API_KEY | Your API key |
POLY_PASSPHRASE | Your API passphrase |
Even with L2 authentication, methods that create orders still require the
user’s private key for EIP-712 order payload signing. L2 credentials
authenticate the request, but the order itself must be signed by the key.
Client Methods
Public Methods
Market data, orderbooks, prices, and spreads — no auth required.
L1 Methods
Sign orders and derive API credentials with your private key.
L2 Methods
Place orders, cancel orders, query trades, and manage notifications.
Builder Methods
Track orders and trades attributed to your builder code.
Server Infrastructure
The CLOB matching engine runs in the following regions:- Primary Servers: eu-west-2
- Closest Non-Georestricted Region: eu-west-1
What Is in This Section
Quickstart
Place your first order end-to-end
Orderbook
Reading the orderbook, prices, spreads, and midpoints
Orders
Order types, tick sizes, creating, cancelling, and querying orders
Fees
Fee structure, fee-enabled markets, and maker rebates
Gasless Transactions
Execute onchain operations without paying gas
CTF Tokens
Split, merge, and redeem outcome tokens
Bridge
Deposit and withdraw funds across chains