8.2 KiB
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.
Quickstart
Initialize the CLOB and place your first order.
Installation
```bash TypeScript theme={null} npm install @polymarket/clob-client ethers ```pip install py-clob-client
cargo add polymarket-client-sdk
Quick Start
1. Setup Client
```typescript TypeScript theme={null} import { ClobClient } from "@polymarket/clob-client"; import { Wallet } from "ethers"; // v5.8.0const HOST = "https://clob.polymarket.com"; const CHAIN_ID = 137; // Polygon mainnet const signer = new Wallet(process.env.PRIVATE_KEY);
// Create or derive user API credentials const tempClient = new ClobClient(HOST, CHAIN_ID, signer); const apiCreds = await tempClient.createOrDeriveApiKey();
// See 'Signature Types' note below const signatureType = 0;
// Initialize trading client const client = new ClobClient( HOST, CHAIN_ID, signer, apiCreds, signatureType );
```python Python theme={null}
from py_clob_client.client import ClobClient
import os
host = "https://clob.polymarket.com"
chain_id = 137 # Polygon mainnet
private_key = os.getenv("PRIVATE_KEY")
# Create or derive user API credentials
temp_client = ClobClient(host, key=private_key, chain_id=chain_id)
api_creds = await temp_client.create_or_derive_api_key()
# See 'Signature Types' note below
signature_type = 0
# Initialize trading client
client = ClobClient(
host,
key=private_key,
chain_id=chain_id,
creds=api_creds,
signature_type=signature_type
)
2. Place an Order
```typescript TypeScript theme={null} import { Side } from "@polymarket/clob-client";// Place a limit order in one step const response = await client.createAndPostOrder({ tokenID: "YOUR_TOKEN_ID", // Get from Gamma API price: 0.65, // Price per share size: 10, // Number of shares side: Side.BUY, // or SELL });
console.log(Order placed! ID: ${response.orderID});
```python Python theme={null}
from py_clob_client.clob_types import OrderArgs
from py_clob_client.order_builder.constants import BUY
# Place a limit order in one step
response = await client.create_and_post_order(
OrderArgs(
token_id="YOUR_TOKEN_ID", # Get from Gamma API
price=0.65, # Price per share
size=10, # Number of shares
side=BUY, # or SELL
)
)
print(f"Order placed! ID: {response['orderID']}")
3. Check Your Orders
```typescript TypeScript theme={null} // View all open orders const openOrders = await client.getOpenOrders(); console.log(`You have ${openOrders.length} open orders`);// View your trade history
const trades = await client.getTrades();
console.log(You've made ${trades.length} trades);
```python Python theme={null}
# View all open orders
open_orders = await client.get_open_orders()
print(f"You have {len(open_orders)} open orders")
# View your trade history
trades = await client.get_trades()
print(f"You've made {len(trades)} trades")
Complete Example
```typescript TypeScript theme={null} import { ClobClient, Side } from "@polymarket/clob-client"; import { Wallet } from "ethers";async function trade() { const HOST = "https://clob.polymarket.com"; const CHAIN_ID = 137; // Polygon mainnet const signer = new Wallet(process.env.PRIVATE_KEY);
const tempClient = new ClobClient(HOST, CHAIN_ID, signer);
const apiCreds = await tempClient.createOrDeriveApiKey();
const signatureType = 0;
const client = new ClobClient(
HOST,
CHAIN_ID,
signer,
apiCreds,
signatureType
);
const response = await client.createAndPostOrder({
tokenID: "YOUR_TOKEN_ID",
price: 0.65,
size: 10,
side: Side.BUY,
});
console.log(`Order placed! ID: ${response.orderID}`);
}
trade();
```python Python theme={null}
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import OrderArgs
from py_clob_client.order_builder.constants import BUY
import asyncio
import os
async def trade():
host = "https://clob.polymarket.com"
chain_id = 137 # Polygon mainnet
private_key = os.getenv("PRIVATE_KEY")
temp_client = ClobClient(host, key=private_key, chain_id=chain_id)
creds = await temp_client.create_or_derive_api_key()
signature_type=0
client = ClobClient(
host,
chain_id=chain_id,
key=private_key,
creds=creds,
signature_type=signature_type
)
response = await client.create_and_post_order(
OrderArgs(
token_id="YOUR_TOKEN_ID",
price=0.65,
size=10,
side=BUY
)
)
print(f"Order placed! ID: {response['orderID']}")
if __name__ == "__main__":
asyncio.run(trade())
Troubleshooting
You forgot to call `createOrDeriveApiKey()`. Make sure you initialize the client with API credentials:```typescript theme={null}
const creds = await clobClient.createOrDeriveApiKey();
const client = new ClobClient(host, chainId, wallet, creds);
```
Ensure you have:
* **USDC** in your funder address for BUY orders
* **Outcome tokens** in your funder address for SELL orders
Check your balance at [polymarket.com/portfolio](https://polymarket.com/portfolio).
You need to approve the Exchange contract to spend your tokens. This is typically done through the Polymarket UI on your first trade. Or use the CTF contract's `setApprovalForAll()` method.
Your funder address is the Polymarket proxy wallet where you deposit funds. Find it:
1. Go to [polymarket.com/settings](https://polymarket.com/settings)
2. Look for "Wallet Address" or "Profile Address"
3. This is your `FUNDER_ADDRESS`