歡迎來到 Polymarket 開發者文檔!本指南將幫助您快速開始使用 Polymarket API。
前提條件
在開始之前,確保您具備以下條件:
- Polymarket 帳戶:註冊帳戶
- 錢包設置:配置好包含 USDC 的錢包
- 開發環境:Python 3.7+ 或 Node.js 14+
- 基礎知識:了解區塊鏈和智能合約基礎
地理限制:Polymarket 在某些地區不可用,包括美國、中國大陸、法國、比利時等。使用前請確認您所在地區的法律法規。
安裝客戶端庫
Python
pip install py-clob-client
TypeScript/JavaScript
npm install @polymarket/clob-client ethers
獲取您的憑據
1. 獲取私鑰
根據您的登錄方式,獲取私鑰的方法不同:
Magic/Email 登錄:
瀏覽器錢包(MetaMask 等):
2. 獲取代理地址
- 訪問 Polymarket 網站
- 登錄您的帳戶
- 點擊右上角的個人資料圖片
- 複製顯示的地址(這是您的代理地址)
第一個示例
Python 示例
from py_clob_client.client import ClobClient
# 配置
host = "https://clob.polymarket.com"
private_key = "YOUR_PRIVATE_KEY"
chain_id = 137 # Polygon 主網
# 創建客戶端
# signature_type=1 用於 Magic/Email 登錄
# signature_type=2 用於瀏覽器錢包
client = ClobClient(
host,
key=private_key,
chain_id=chain_id,
signature_type=1, # 根據您的登錄方式調整
funder="YOUR_PROXY_ADDRESS"
)
# 設置 API 憑據
client.set_api_creds(client.create_or_derive_api_creds())
# 獲取市場列表
markets = client.get_markets()
print(f"找到 {len(markets)} 個市場")
# 查看第一個市場
if markets:
market = markets[0]
print(f"市場問題:{market['question']}")
print(f"Token ID (Yes): {market['tokens'][0]['token_id']}")
TypeScript 示例
import { ClobClient } from '@polymarket/clob-client';
import { ethers } from 'ethers';
// 配置
const host = 'https://clob.polymarket.com';
const privateKey = 'YOUR_PRIVATE_KEY';
const chainId = 137;
// 創建錢包
const wallet = new ethers.Wallet(privateKey);
// 創建客戶端
// signatureType=1 用於 Magic/Email 登錄
// signatureType=2 用於瀏覽器錢包
const client = new ClobClient(
host,
chainId,
wallet,
1, // 根據您的登錄方式調整
'YOUR_PROXY_ADDRESS'
);
// 設置 API 憑據
await client.setApiCreds(client.createOrDeriveApiCreds());
// 獲取市場列表
const markets = await client.getMarkets();
console.log(`找到 ${markets.length} 個市場`);
// 查看第一個市場
if (markets.length > 0) {
const market = markets[0];
console.log(`市場問題:${market.question}`);
console.log(`Token ID (Yes): ${market.tokens[0].token_id}`);
}
理解籤名類型
根據您如何創建 Polymarket 帳戶,需要使用不同的籤名類型:
| 登錄方式 | 籤名類型 | 說明 |
|---|
| Email/Magic | 1 | 使用 Magic Link 登錄 |
| 瀏覽器錢包 | 2 | 使用 MetaMask、Coinbase Wallet 等 |
| EOA | 0 | 直接使用外部擁有帳戶(高級用戶) |
使用錯誤的籤名類型會導致”invalid signature”錯誤。確保根據您的登錄方式選擇正確的類型。
核心 API 概覽
Polymarket 提供多個 API 來滿足不同需求:
CLOB API(交易)
- 創建和管理訂單
- 查詢訂單簿和價格
- 管理帳戶餘額
- 需要認證
Gamma API(市場數據)
- 搜索和過濾市場
- 獲取事件信息
- 查看評論和社交數據
- 公開訪問
Data API(分析)
- 用戶統計和盈虧
- 歷史價格數據
- 構建者歸因數據
- 部分需要認證
WebSocket(實時數據)
設置餘額和授權
在交易之前,確保:
- 有足夠的 USDC:帳戶需要有 USDC 餘額
- 設置授權(僅瀏覽器錢包):
- 授權 Polymarket 合約使用您的 USDC
- 參見授權指南
檢查餘額
# Python
balance = client.get_balance()
print(f"USDC 餘額:{balance}")
// TypeScript
const balance = await client.getBalance();
console.log(`USDC 餘額:${balance}`);
下第一筆訂單
現在您已經設置好了,可以下第一筆訂單了!
獲取 Token ID
確定您要購買的結果(Yes 或 No)的 Token ID
詳細步驟請參見第一筆訂單教程。
最佳實踐
開發建議:
- 從小額開始:用小額測試您的代碼
- 錯誤處理:實現適當的錯誤處理和重試邏輯
- 速率限制:注意 API 速率限制,實現退避策略
- 安全性:永遠不要在代碼中硬編碼私鑰
- 日誌記錄:記錄所有交易以便調試
- 測試:在生產環境前徹底測試
常見問題
Q: 如何獲取測試 USDC?
A: Polymarket 在主網上運行。您需要真實的 USDC。建議從小額開始測試。
Q: 我的訂單為什麼沒有立即成交?
A: 限價訂單只有在有匹配的對手方時才會成交。如果您想立即成交,請使用市價或調整價格。
Q: 如何取消訂單?
A: 使用 cancel_order() 方法和訂單 ID。
Q: API 有費用嗎?
A: API 訪問是免費的,但交易會收取費用。詳見交易費用。
有用的資源
示例代碼庫
獲取幫助
準備好了嗎?讓我們下第一筆訂單!