> ## Documentation Index
> Fetch the complete documentation index at: https://polymarketcn.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Polymarket API 下单教程【2026】Python/TypeScript 第一笔订单实战

> Polymarket API 下单完整教程：使用 Python (py-clob-client) 或 TypeScript (@polymarket/clob-client) 提交第一笔订单。含安装、签名、参数配置和代码示例。

<Callout type="success">
  還沒有帳號？[點擊這裡註冊 Polymarket](https://polymarket.com/?r=2026VIP) 並完成入金，才能用錢包私鑰為訂單籤名、實際成交。
</Callout>

<Warning>
  **法律合規提醒**：在使用 Polymarket 服務或 API 前，請確認您所在地區的法律規定。Polymarket 目前不支援比利時、法國、新加坡、泰國、中國大陸等地區，政策可能隨時變化。
</Warning>

使用我們的兩個客戶端之一下第一筆訂單相對簡單。對於 Python：`pip install py-clob-client`。對於 TypeScript：`npm install @polymarket/clob-client` 和 `npm install ethers`。

安裝完成後，您將能夠運行下面的代碼。花時間填寫頂部的常量，並確保根據您的登錄方法使用正確的籤名類型。

<Callout type="info">
  更多 TypeScript 和 Python 客戶端的示例可在 [TypeScript 示例](https://github.com/Polymarket/clob-client/tree/main/examples) 和 [Python 示例](https://github.com/Polymarket/py-clob-client/tree/main/examples) 中找到。
</Callout>

## Python 第一筆交易

```python theme={null}
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 第一筆交易

```typescript theme={null}
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，請參閱[此處的資源](https://docs.polymarket.com)獲取設置額度的說明。

### 理解代幣

當您購買市場時，您購買的是代表事件 Yes 或 No 結果的"代幣"。要輕鬆獲取給定事件所需的代幣對，我們提供了[交互式端點](https://docs.polymarket.com/developers/gamma-markets-api/fetch-markets-guide)。

### 常見陷阱

<Warning>
  **常見錯誤及解決方案：**

  1. **負風險市場**：需要在 OrderArgs 中添加額外的標誌 `negrisk=True`

  2. **`invalid signature` 錯誤**，可能由以下原因之一導致：
     * 錯誤的 Funder 和/或私鑰
     * OrderArgs 中的 NegRisk 標誌不正確

  3. **`not enough balance / allowance` 錯誤**：
     * 沒有足夠的 USDC 進行交易。詳見本頁底部的公式
     * 如果使用 Metamask / WEB3 錢包，請[前往此處](https://docs.polymarket.com)獲取設置額度的說明
</Warning>

## 訂單類型

### GTC（Good-Till-Cancelled）

訂單將保持活躍狀態，直到完全成交或手動取消。

### FOK（Fill-Or-Kill）

訂單必須立即完全成交，否則將被取消。

### GTD（Good-Till-Date）

訂單將保持活躍直到指定的到期時間。

## 計算所需餘額

要下訂單，您需要的 USDC 數量計算如下：

**買入訂單**：

```
所需餘額 = 價格 × 數量
```

**賣出訂單**：

```
所需餘額 = (1 - 價格) × 數量
```

例如：

* 以 0.55 的價格買入 100 個代幣：需要 55 USDC
* 以 0.55 的價格賣出 100 個代幣：需要 45 USDC

## 查找市場和代幣 ID

要查找特定市場的代幣 ID，您可以：

1. 使用 Gamma API 搜索市場
2. 使用 [Polymarket 官網](https://polymarket.com) 瀏覽市場
3. 從市場 URL 中獲取市場 ID

示例：

```python theme={null}
# 獲取所有活躍市場
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']}")
```

## 下一步

<CardGroup cols={2}>
  <Card title="API 速率限制" icon="gauge" href="/api-tutorial/rate-limits">
    了解 API 調用限制
  </Card>

  <Card title="訂單管理" icon="list-check" href="/api-tutorial/clob/order-management">
    學習如何管理和取消訂單
  </Card>

  <Card title="術語表" icon="book" href="/api-tutorial/glossary">
    理解關鍵概念和術語
  </Card>

  <Card title="CLOB 客戶端" icon="code" href="/api-tutorial/clob/client">
    深入了解 CLOB 客戶端功能
  </Card>
</CardGroup>
