法律合規提醒:在使用 Polymarket 服務或 API 前,請確認您所在地區的法律規定。Polymarket 目前不支援比利時、法國、新加坡、泰國、中國大陸等地區,政策可能隨時變化。
使用我們的兩個客戶端之一下第一筆訂單相對簡單。對於 Python:pip install py-clob-client。對於 TypeScript:npm install @polymarket/clob-client 和 npm install ethers。
安裝完成後,您將能夠運行下面的代碼。花時間填寫頂部的常量,並確保根據您的登錄方法使用正確的籤名類型。
Python 第一筆交易
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import OrderArgs, OrderType
from py_clob_client.order_builder.constants import BUY
host: str = "https://clob.polymarket.com"
key: str = "" # 這是您的私鑰。從 https://reveal.magic.link/polymarket 或您的 Web3 錢包擴展導出
chain_id: int = 137 # 無需調整
POLYMARKET_PROXY_ADDRESS: str = '' # 這是使用 Polymarket 網站時顯示在您個人資料圖片下方的地址
# 從以下 3 個初始化選項中選擇一個以匹配您的登錄方法,並刪除任何未使用的行,以便只初始化一個客戶端。
### 使用與電子郵件/Magic 帳戶關聯的 Polymarket 代理初始化客戶端。如果您使用電子郵件登錄,請使用此示例。
client = ClobClient(host, key=key, chain_id=chain_id, signature_type=1, funder=POLYMARKET_PROXY_ADDRESS)
### 使用與瀏覽器錢包(Metamask、Coinbase Wallet 等)關聯的 Polymarket 代理初始化客戶端
# client = ClobClient(host, key=key, chain_id=chain_id, signature_type=2, funder=POLYMARKET_PROXY_ADDRESS)
### 初始化直接從 EOA 交易的客戶端。(如果您不知道這是什麼意思,則不使用它)
# client = ClobClient(host, key=key, chain_id=chain_id)
## 創建並籤署一個限價訂單,以每個 0.010c 的價格購買 5 個代幣
# 參考 API 文檔查找 tokenID:https://docs.polymarket.com/developers/gamma-markets-api/fetch-markets-guide
client.set_api_creds(client.create_or_derive_api_creds())
order_args = OrderArgs(
price=0.01,
size=5.0,
side=BUY,
token_id="", # 您要購買的代幣 ID 放在這裡。示例代幣:114304586861386186441621124384163963092522056897081085884483958561365015034812(習近平 2025 年下臺,YES 方)
)
signed_order = client.create_order(order_args)
## GTC(Good-Till-Cancelled,有效直到取消)訂單
resp = client.post_order(signed_order, OrderType.GTC)
print(resp)
TypeScript 第一筆交易
import { ClobClient } from '@polymarket/clob-client';
import { ethers } from 'ethers';
const host = "https://clob.polymarket.com";
const privateKey = ""; // 這是您的私鑰
const chainId = 137; // Polygon 主網
const POLYMARKET_PROXY_ADDRESS = ""; // 您的代理地址
// 創建錢包
const wallet = new ethers.Wallet(privateKey);
// 根據您的登錄方法選擇以下初始化選項之一
// 選項 1:使用與電子郵件/Magic 帳戶關聯的 Polymarket 代理
const client = new ClobClient(
host,
chainId,
wallet,
1, // signature_type=1 用於 Magic/Email
POLYMARKET_PROXY_ADDRESS
);
// 選項 2:使用與瀏覽器錢包關聯的 Polymarket 代理
// const client = new ClobClient(
// host,
// chainId,
// wallet,
// 2, // signature_type=2 用於瀏覽器錢包
// POLYMARKET_PROXY_ADDRESS
// );
// 選項 3:直接從 EOA 交易
// const client = new ClobClient(host, chainId, wallet);
async function placeOrder() {
// 設置 API 憑據
await client.setApiCreds(client.createOrDeriveApiCreds());
// 創建訂單
const order = {
tokenID: "", // 您要購買的代幣 ID
price: 0.01,
size: 5.0,
side: "BUY",
};
// 籤署並提交訂單
const signedOrder = await client.createOrder(order);
const resp = await client.postOrder(signedOrder, "GTC");
console.log(resp);
}
placeOrder();
重要提示和技巧
初始化客戶端
參見 Python 示例,了解如何根據您的錢包類型正確初始化 Py-Clob-Client 的詳細信息。提供了三個詳盡的示例。如果使用 MetaMask 錢包或 EOA,請參閱此處的資源獲取設置額度的說明。
理解代幣
當您購買市場時,您購買的是代表事件 Yes 或 No 結果的”代幣”。要輕鬆獲取給定事件所需的代幣對,我們提供了交互式端點。
常見陷阱
常見錯誤及解決方案:
-
負風險市場:需要在 OrderArgs 中添加額外的標誌
negrisk=True
-
invalid signature 錯誤,可能由以下原因之一導致:
- 錯誤的 Funder 和/或私鑰
- OrderArgs 中的 NegRisk 標誌不正確
-
not enough balance / allowance 錯誤:
- 沒有足夠的 USDC 進行交易。詳見本頁底部的公式
- 如果使用 Metamask / WEB3 錢包,請前往此處獲取設置額度的說明
訂單類型
GTC(Good-Till-Cancelled)
訂單將保持活躍狀態,直到完全成交或手動取消。
FOK(Fill-Or-Kill)
訂單必須立即完全成交,否則將被取消。
GTD(Good-Till-Date)
訂單將保持活躍直到指定的到期時間。
計算所需餘額
要下訂單,您需要的 USDC 數量計算如下:
買入訂單:
賣出訂單:
例如:
- 以 0.55 的價格買入 100 個代幣:需要 55 USDC
- 以 0.55 的價格賣出 100 個代幣:需要 45 USDC
查找市場和代幣 ID
要查找特定市場的代幣 ID,您可以:
- 使用 Gamma API 搜索市場
- 使用 Polymarket 官網 瀏覽市場
- 從市場 URL 中獲取市場 ID
示例:
# 獲取所有活躍市場
markets = client.get_markets()
# 搜索特定主題
for market in markets:
if "Trump" in market['question']:
print(f"市場:{market['question']}")
print(f"Token ID (Yes): {market['tokens'][0]['token_id']}")
print(f"Token ID (No): {market['tokens'][1]['token_id']}")
下一步