/trading-polymarket
Execute trades on Polymarket using py_clob_client - full API access for market data, orders, positions
$ npx -y skills add alsk1992/CloddsBot --skill trading-polymarket --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/trading-polymarket
Context preview
The summary Claude sees to decide when to auto-load this skill.
Execute trades on Polymarket using py_clob_client - full API access for market data, orders, positions
SKILL.md
trading-polymarket.SKILL.mdname: trading-polymarket
description: "Execute trades on Polymarket using py_clob_client - full API access for market data, orders, positions"
emoji: "💰"
gates:
envs:
- POLY_API_KEY
- POLY_API_SECRET
- POLY_API_PASSPHRASE
- PRIVATE_KEYPolymarket Trading - Complete API Reference
Full access to Polymarket's CLOB (Central Limit Order Book) via the official `py_clob_client` library.
**60+ methods documented. This is the complete reference.**
Required Environment Variables
PRIVATE_KEY=0x... # Ethereum private key for signing
POLY_FUNDER_ADDRESS=0x... # Your wallet address on Polygon
POLY_API_KEY=... # From Polymarket API
POLY_API_SECRET=... # Base64 encoded secret
POLY_API_PASSPHRASE=... # API passphrase
Installation
pip install py-clob-client requests
---
Authentication Levels
| Level | Requirements | Capabilities | |-------|--------------|--------------| | **L0** | None | Read-only: orderbooks, prices, markets | | **L1** | Private key | Create & sign orders (not post) | | **L2** | Private key + API creds | Full trading: post orders, cancel, query |
Signature Types
| Type | Use Case | |------|----------| | `0` | Standard EOA (MetaMask, hardware wallets) | | `1` | Magic/email wallets (delegated signing) | | `2` | Proxy wallets (Gnosis Safe, browser proxy) |
---
ClobClient - Complete API (60+ Methods)
Initialization
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import (
OrderArgs, MarketOrderArgs, ApiCreds, OrderType,
BookParams, TradeParams, OpenOrderParams, BalanceAllowanceParams,
AssetType, OrderScoringParams, OrdersScoringParams, DropNotificationParams
)
from py_clob_client.order_builder.constants import BUY, SELL
from py_clob_client.constants import POLYGON # 137
# Level 2 Auth (full trading access)
client = ClobClient(
host="https://clob.polymarket.com",
key=os.getenv("PRIVATE_KEY"), # Private key for signing
chain_id=POLYGON, # 137 for mainnet, 80002 for Amoy testnet
funder=os.getenv("POLY_FUNDER_ADDRESS"), # Wallet address (for proxy wallets)
signature_type=2 # 0=EOA, 1=MagicLink, 2=Proxy
)
# Set API credentials for authenticated endpoints
client.set_api_creds(ApiCreds(
api_key=os.getenv("POLY_API_KEY"),
api_secret=os.getenv("POLY_API_SECRET"),
api_passphrase=os.getenv("POLY_API_PASSPHRASE")
))Health & Configuration
client.get_ok() # Check if server is up
client.get_server_time() # Get server timestamp
client.get_address() # Your signer's public address
client.get_collateral_address() # USDC contract address
client.get_conditional_address() # CTF contract address
client.get_exchange_address() # Exchange contract (neg_risk=False default)
Market Data - Single Token
# Get prices and spreads
client.get_midpoint(token_id) # Mid market price
client.get_price(token_id, side="BUY") # Best price for side
client.get_spread(token_id) # Current spread
client.get_last_trade_price(token_id) # Last executed trade price
# Get full orderbook
orderbook = client.get_order_book(token_id)
# Returns: OrderBookSummary with bids, asks, tick_size, neg_risk, timestamp, hash
Market Data - Batch (Multiple Tokens)
params = [
BookParams(token_id="TOKEN1", side="BUY"),
BookParams(token_id="TOKEN2", side="SELL")
]
client.get_midpoints(params) # Multiple midpoints
client.get_prices(params) # Multiple prices
client.get_spreads(params) # Multiple spreads
client.get_order_books(params) # Multiple orderbooks
client.get_last_trades_prices(params) # Multiple last pricesMarket Metadata
client.get_tick_size(token_id) # Returns: "0.1", "0.01", "0.001", or "0.0001"
client.get_neg_risk(token_id) # Returns: True/False (negative risk market)
client.get_fee_rate_bps(token_id) # Returns: fee rate in basis points (0 or 1000)
---
Order Types
from py_clob_client.clob_types import OrderType
OrderType.GTC # Good Till Cancelled - stays open until filled/cancelled
OrderType.FOK # Fill Or Kill - fill entirely immediately or cancel
OrderType.GTD # Good Till Date - expires at timestamp (min 60 seconds)
OrderType.FAK # Fill And Kill - fill what's possible, cancel rest
When to Use Each Order Type
| Type | Use Case | Example | |------|----------|---------| | **GTC** | Entries - wait for fill | Place buy at 0.45, wait for dip | | **FOK** | Exits - need immediate fill | Market sell entire position NOW | | **GTD** | Time-limited orders | Offer expires in 5 minutes | | **FAK** | Partial fills OK | Get as much as possible now |
OrderArgs - Limit Orders
OrderArgs(
token_id: str, # Token ID (outcome to trade)
price: float, # Price 0.01-0.99
size: float, # Number of shares
side: str, # "BUY" or "SELL" (or use BUY/SELL constants)
fee_rate_bps: int = 0, # Optional: fee rate in bps (0 or check market)
nonce: int = 0, # Optional: unique nonce for cancellation
expiration: int = 0, # Optional: expiry timestamp (0 = GTC, use timestamp for GTD)
taker: str = ZERO_ADDRESS # Optional: specific taker (ZERO_ADDRESS = anyone)
)MarketOrderArgs - Market Orders
MarketOrderArgs(
token_id: str, # Token ID
amount: float, # Total USDC amount to spend (BUY) or shares (SELL)
side: str, # "BUY" or "SELL"
price: float = 0, # Optional: worst acceptable price (slippage protection)
fee_rate_bps: int = 0, # Optional: fee rate
nonce: int = 0, # Optional: nonce
taker: str = ZERO_ADDRESS, # Optional: taker address
order_type: OrderTypeRead more
name: trading-polymarket
description: "Execute trades on Polymarket using py_clob_client - full API access for market data, orders, positions"
emoji: "💰"
gates:
envs:
- POLY_API_KEY
- POLY_API_SECRET
- POLY_API_PASSPHRASE
- PRIVATE_KEYPolymarket Trading - Complete API Reference
Full access to Polymarket's CLOB (Central Limit Order Book) via the official `py_clob_client` library.
**60+ methods documented. This is the complete reference.**
Required Environment Variables
PRIVATE_KEY=0x... # Ethereum private key for signing POLY_FUNDER_ADDRESS=0x... # Your wallet address on Polygon POLY_API_KEY=... # From Polymarket API POLY_API_SECRET=... # Base64 encoded secret POLY_API_PASSPHRASE=... # API passphrase
Installation
pip install py-clob-client requests
---
Authentication Levels
| Level | Requirements | Capabilities | |-------|--------------|--------------| | **L0** | None | Read-only: orderbooks, prices, markets | | **L1** | Private key | Create & sign orders (not post) | | **L2** | Private key + API creds | Full trading: post orders, cancel, query |
Signature Types
| Type | Use Case | |------|----------| | `0` | Standard EOA (MetaMask, hardware wallets) | | `1` | Magic/email wallets (delegated signing) | | `2` | Proxy wallets (Gnosis Safe, browser proxy) |
---
ClobClient - Complete API (60+ Methods)
Initialization
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import (
OrderArgs, MarketOrderArgs, ApiCreds, OrderType,
BookParams, TradeParams, OpenOrderParams, BalanceAllowanceParams,
AssetType, OrderScoringParams, OrdersScoringParams, DropNotificationParams
)
from py_clob_client.order_builder.constants import BUY, SELL
from py_clob_client.constants import POLYGON # 137
# Level 2 Auth (full trading access)
client = ClobClient(
host="https://clob.polymarket.com",
key=os.getenv("PRIVATE_KEY"), # Private key for signing
chain_id=POLYGON, # 137 for mainnet, 80002 for Amoy testnet
funder=os.getenv("POLY_FUNDER_ADDRESS"), # Wallet address (for proxy wallets)
signature_type=2 # 0=EOA, 1=MagicLink, 2=Proxy
)
# Set API credentials for authenticated endpoints
client.set_api_creds(ApiCreds(
api_key=os.getenv("POLY_API_KEY"),
api_secret=os.getenv("POLY_API_SECRET"),
api_passphrase=os.getenv("POLY_API_PASSPHRASE")
))Health & Configuration
client.get_ok() # Check if server is up client.get_server_time() # Get server timestamp client.get_address() # Your signer's public address client.get_collateral_address() # USDC contract address client.get_conditional_address() # CTF contract address client.get_exchange_address() # Exchange contract (neg_risk=False default)
Market Data - Single Token
# Get prices and spreads client.get_midpoint(token_id) # Mid market price client.get_price(token_id, side="BUY") # Best price for side client.get_spread(token_id) # Current spread client.get_last_trade_price(token_id) # Last executed trade price # Get full orderbook orderbook = client.get_order_book(token_id) # Returns: OrderBookSummary with bids, asks, tick_size, neg_risk, timestamp, hash
Market Data - Batch (Multiple Tokens)
params = [
BookParams(token_id="TOKEN1", side="BUY"),
BookParams(token_id="TOKEN2", side="SELL")
]
client.get_midpoints(params) # Multiple midpoints
client.get_prices(params) # Multiple prices
client.get_spreads(params) # Multiple spreads
client.get_order_books(params) # Multiple orderbooks
client.get_last_trades_prices(params) # Multiple last pricesMarket Metadata
client.get_tick_size(token_id) # Returns: "0.1", "0.01", "0.001", or "0.0001" client.get_neg_risk(token_id) # Returns: True/False (negative risk market) client.get_fee_rate_bps(token_id) # Returns: fee rate in basis points (0 or 1000)
---
Order Types
from py_clob_client.clob_types import OrderType OrderType.GTC # Good Till Cancelled - stays open until filled/cancelled OrderType.FOK # Fill Or Kill - fill entirely immediately or cancel OrderType.GTD # Good Till Date - expires at timestamp (min 60 seconds) OrderType.FAK # Fill And Kill - fill what's possible, cancel rest
When to Use Each Order Type
| Type | Use Case | Example | |------|----------|---------| | **GTC** | Entries - wait for fill | Place buy at 0.45, wait for dip | | **FOK** | Exits - need immediate fill | Market sell entire position NOW | | **GTD** | Time-limited orders | Offer expires in 5 minutes | | **FAK** | Partial fills OK | Get as much as possible now |
OrderArgs - Limit Orders
OrderArgs(
token_id: str, # Token ID (outcome to trade)
price: float, # Price 0.01-0.99
size: float, # Number of shares
side: str, # "BUY" or "SELL" (or use BUY/SELL constants)
fee_rate_bps: int = 0, # Optional: fee rate in bps (0 or check market)
nonce: int = 0, # Optional: unique nonce for cancellation
expiration: int = 0, # Optional: expiry timestamp (0 = GTC, use timestamp for GTD)
taker: str = ZERO_ADDRESS # Optional: specific taker (ZERO_ADDRESS = anyone)
)MarketOrderArgs - Market Orders
MarketOrderArgs(
token_id: str, # Token ID
amount: float, # Total USDC amount to spend (BUY) or shares (SELL)
side: str, # "BUY" or "SELL"
price: float = 0, # Optional: worst acceptable price (slippage protection)
fee_rate_bps: int = 0, # Optional: fee rate
nonce: int = 0, # Optional: nonce
taker: str = ZERO_ADDRESS, # Optional: taker address
order_type: OrderTypeOpen Source AI trading agent that operates autonomously across 1000+ markets - Polymarket, Kalshi, Binance, Hyperliquid, Solana DEXs, 5 EVM chains. Scans for edge, executes instantly, manages risk while you sleep. Agent commerce protocol for machine-to-machine payments. Self-hosted. Built on Claude.
Repo: alsk1992/CloddsBot
Other skills on cloddsbot.
- /acp
Enable agent-to-agent commerce with on-chain escrow, cryptographic agreements, and service discovery.
Open skill - /agentbets
AgentBets - AI-native prediction markets on Solana
Open skill - /ai-strategy
AI Strategy - natural language to trades
Open skill - /alerts
Create and manage price alerts for prediction markets
Open skill - /analytics
Performance attribution, trade analytics, and strategy optimization
Open skill - /arbitrage
Automated cross-platform arbitrage detection and monitoring
Open skill

