跳转到主要内容
几分钟内上手 Polymarket API——获取市场数据并下达你的第一笔订单。
1

获取市场数据

所有数据接口都是公开的,无需 API 密钥或身份验证。使用 markets 接口查找市场并获取其 token ID:
curl "https://gamma-api.polymarket.com/markets?active=true&closed=false&limit=1"
clobTokenIds 中保存一个 token ID——下单时需要用到。第一个 ID 是 Yes 代币,第二个是 No 代币。更多获取方式(如按 slug、标签或事件获取)请参阅获取市场数据
2

安装 SDK

npm install @polymarket/clob-client ethers@5
3

配置客户端

派生 API 凭证并初始化交易客户端:
import { ClobClient } from "@polymarket/clob-client";
import { Wallet } from "ethers"; // v5.8.0

const HOST = "https://clob.polymarket.com";
const CHAIN_ID = 137; // Polygon mainnet
const signer = new Wallet(process.env.PRIVATE_KEY);

// Derive API credentials (L1 → L2 auth)
const tempClient = new ClobClient(HOST, CHAIN_ID, signer);
const apiCreds = await tempClient.createOrDeriveApiKey();

// Initialize trading client
const client = new ClobClient(
  HOST,
  CHAIN_ID,
  signer,
  apiCreds,
  0, // Signature type: 0 = EOA
  signer.address, // Funder address
);
本示例使用 EOA 钱包(签名类型 0),由你的钱包自行支付 gas 费。代理钱包用户(类型 12)可以使用 Polymarket 的 gasless relayer。详情请参阅身份验证中关于签名类型的说明。
交易前,你的 funder 地址需要持有 USDC.e(用于购买结果代币)和 POL(用于支付 gas 费,仅 EOA 类型 0 需要)。
4

下达订单

使用第 1 步获取的 token_id 下达限价单:
import { Side, OrderType } from "@polymarket/clob-client";

// Fetch market details to get tick size and neg risk
const market = await client.getMarket("YOUR_CONDITION_ID");
const tickSize = String(market.minimum_tick_size);   // e.g., "0.01"
const negRisk = market.neg_risk;             // e.g., false

const response = await client.createAndPostOrder(
  {
    tokenID: "YOUR_TOKEN_ID", // From Step 1
    price: 0.50,
    size: 10,
    side: Side.BUY,
    orderType: OrderType.GTC,
  },
  {
    tickSize,
    negRisk,
  },
);

console.log("Order ID:", response.orderID);
console.log("Status:", response.status);

下一步