Skip to main content
歡迎來到 Polymarket 開發者文檔!本指南將幫助您快速開始使用 Polymarket API。

前提條件

在開始之前,確保您具備以下條件:
  1. Polymarket 帳戶註冊帳戶
  2. 錢包設置:配置好包含 USDC 的錢包
  3. 開發環境:Python 3.7+ 或 Node.js 14+
  4. 基礎知識:了解區塊鏈和智能合約基礎
地理限制:Polymarket 在某些地區不可用,包括美國、中國大陸、法國、比利時等。使用前請確認您所在地區的法律法規。

安裝客戶端庫

Python

pip install py-clob-client

TypeScript/JavaScript

npm install @polymarket/clob-client ethers

獲取您的憑據

1. 獲取私鑰

根據您的登錄方式,獲取私鑰的方法不同: Magic/Email 登錄 瀏覽器錢包(MetaMask 等)
  • 在錢包設置中導出私鑰
  • ⚠️ 妥善保管,切勿洩露

2. 獲取代理地址

  1. 訪問 Polymarket 網站
  2. 登錄您的帳戶
  3. 點擊右上角的個人資料圖片
  4. 複製顯示的地址(這是您的代理地址)

第一個示例

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/Magic1使用 Magic Link 登錄
瀏覽器錢包2使用 MetaMask、Coinbase Wallet 等
EOA0直接使用外部擁有帳戶(高級用戶)
使用錯誤的籤名類型會導致”invalid signature”錯誤。確保根據您的登錄方式選擇正確的類型。

核心 API 概覽

Polymarket 提供多個 API 來滿足不同需求:

CLOB API(交易)

  • 創建和管理訂單
  • 查詢訂單簿和價格
  • 管理帳戶餘額
  • 需要認證

Gamma API(市場數據)

  • 搜索和過濾市場
  • 獲取事件信息
  • 查看評論和社交數據
  • 公開訪問

Data API(分析)

  • 用戶統計和盈虧
  • 歷史價格數據
  • 構建者歸因數據
  • 部分需要認證

WebSocket(實時數據)

  • 實時價格更新
  • 訂單簿變化
  • 用戶訂單狀態
  • 需要認證

設置餘額和授權

在交易之前,確保:
  1. 有足夠的 USDC:帳戶需要有 USDC 餘額
  2. 設置授權(僅瀏覽器錢包):
    • 授權 Polymarket 合約使用您的 USDC
    • 參見授權指南

檢查餘額

# Python
balance = client.get_balance()
print(f"USDC 餘額:{balance}")
// TypeScript
const balance = await client.getBalance();
console.log(`USDC 餘額:${balance}`);

下第一筆訂單

現在您已經設置好了,可以下第一筆訂單了!
1

找到市場

瀏覽市場並選擇您想要交易的市場
2

獲取 Token ID

確定您要購買的結果(Yes 或 No)的 Token ID
3

創建訂單

設置價格、數量和方向
4

提交訂單

籤署並提交訂單到 CLOB
詳細步驟請參見第一筆訂單教程

最佳實踐

開發建議
  1. 從小額開始:用小額測試您的代碼
  2. 錯誤處理:實現適當的錯誤處理和重試邏輯
  3. 速率限制:注意 API 速率限制,實現退避策略
  4. 安全性:永遠不要在代碼中硬編碼私鑰
  5. 日誌記錄:記錄所有交易以便調試
  6. 測試:在生產環境前徹底測試

常見問題

Q: 如何獲取測試 USDC?

A: Polymarket 在主網上運行。您需要真實的 USDC。建議從小額開始測試。

Q: 我的訂單為什麼沒有立即成交?

A: 限價訂單只有在有匹配的對手方時才會成交。如果您想立即成交,請使用市價或調整價格。

Q: 如何取消訂單?

A: 使用 cancel_order() 方法和訂單 ID。

Q: API 有費用嗎?

A: API 訪問是免費的,但交易會收取費用。詳見交易費用

有用的資源

示例代碼庫

獲取幫助

準備好了嗎?讓我們下第一筆訂單