Polymarket Comprehensive Skill
Complete assistance with Polymarket development - covering the full platform (API, trading, market data) and the real-time data streaming client (WebSocket subscriptions for live market activity).
When to Use This Skill
This skill should be triggered when:
Platform & API:
- •Working with Polymarket prediction markets
- •Using Polymarket API for market data
- •Implementing trading strategies
- •Building applications with Polymarket services
- •Learning Polymarket best practices
Real-Time Data Streaming:
- •Connecting to Polymarket's WebSocket service
- •Building prediction market monitoring tools
- •Processing live trades, orders, and market updates
- •Monitoring market comments and social reactions
- •Tracking RFQ (Request for Quote) activity
- •Integrating crypto price feeds
Quick Reference
Real-Time Data Client Setup
Installation:
npm install @polymarket/real-time-data-client
Basic Usage:
import { RealTimeDataClient } from "@polymarket/real-time-data-client";
const onMessage = (message: Message): void => {
console.log(message.topic, message.type, message.payload);
};
const onConnect = (client: RealTimeDataClient): void => {
client.subscribe({
subscriptions: [{
topic: "activity",
type: "trades"
}]
});
};
new RealTimeDataClient({ onMessage, onConnect }).connect();
Supported WebSocket Topics
1. Activity (activity)
- •
trades- Completed trades - •
orders_matched- Order matching events - •Filters:
{"event_slug":"string"}OR{"market_slug":"string"}
2. Comments (comments)
- •
comment_created,comment_removed - •
reaction_created,reaction_removed - •Filters:
{"parentEntityID":number,"parentEntityType":"Event"}
3. RFQ (rfq)
- •Request/Quote lifecycle events
- •No filters, no auth required
4. Crypto Prices (crypto_prices, crypto_prices_chainlink)
- •
update- Real-time price feeds - •Filters:
{"symbol":"BTC"}(optional)
5. CLOB User (clob_user) ⚠️ Requires Auth
- •
order- User's order updates - •
trade- User's trade executions
6. CLOB Market (clob_market)
- •
price_change- Price movements - •
agg_orderbook- Aggregated order book - •
last_trade_price- Latest prices - •
market_created,market_resolved
Authentication for User Data
client.subscribe({
subscriptions: [{
topic: "clob_user",
type: "*",
clob_auth: {
key: "your-api-key",
secret: "your-api-secret",
passphrase: "your-passphrase"
}
}]
});
Common Use Cases
Monitor Specific Market:
client.subscribe({
subscriptions: [{
topic: "activity",
type: "trades",
filters: `{"market_slug":"btc-above-100k-2024"}`
}]
});
Track Multiple Markets:
client.subscribe({
subscriptions: [{
topic: "clob_market",
type: "price_change",
filters: `["100","101","102"]`
}]
});
Monitor Event Comments:
client.subscribe({
subscriptions: [{
topic: "comments",
type: "*",
filters: `{"parentEntityID":12345,"parentEntityType":"Event"}`
}]
});
Reference Files
This skill includes comprehensive documentation in references/:
Platform Documentation:
- •api.md - Polymarket API documentation
- •getting_started.md - Getting started guide
- •guides.md - Development guides
- •learn.md - Learning resources
- •trading.md - Trading documentation
- •other.md - Additional resources
Real-Time Client:
- •README.md - WebSocket client API and examples
- •llms.md - LLM integration guide
- •llms-full.md - Complete LLM documentation
Use view to read specific reference files for detailed information.
Key Features
Platform Capabilities: ✅ Prediction market creation and resolution ✅ Trading API (REST & WebSocket) ✅ Market data queries ✅ User portfolio management ✅ Event and market discovery
Real-Time Streaming: ✅ WebSocket-based persistent connections ✅ Topic-based subscriptions ✅ Dynamic subscription management ✅ Filter support for targeted data ✅ User authentication for private data ✅ TypeScript with full type safety ✅ Initial data dumps on connection
Best Practices
WebSocket Connection Management
- •Use
onConnectcallback for subscriptions - •Implement reconnection logic for production
- •Clean up with
disconnect()when done - •Handle authentication errors gracefully
Subscription Strategy
- •Use wildcards (
"*") sparingly - •Apply filters to reduce data volume
- •Unsubscribe from unused streams
- •Process messages asynchronously
Performance
- •Consider batching high-frequency data
- •Use filters to minimize client processing
- •Validate message payloads before use
Requirements
- •Node.js: 14+ recommended
- •TypeScript: Optional but recommended
- •Package Manager: npm or yarn
Resources
Official Links
- •Polymarket Platform: https://polymarket.com
- •Real-Time Client Repo: https://github.com/Polymarket/real-time-data-client
- •API Documentation: See references/api.md
Working with This Skill
For Beginners:
Start with getting_started.md for foundational concepts.
For API Integration:
Use api.md and trading.md for REST API details.
For Real-Time Data:
Use README.md for WebSocket client implementation.
For LLM Integration:
Use llms.md and llms-full.md for AI/ML use cases.
Notes
- •Real-Time Client is TypeScript/JavaScript (not Python)
- •Some WebSocket topics require authentication
- •Use filters to manage message volume effectively
- •All timestamps are Unix timestamps
- •Market IDs are strings (e.g., "100", "101")
- •Platform documentation covers both REST API and WebSocket usage
This comprehensive skill combines Polymarket platform expertise with real-time data streaming capabilities!