跳转到主要内容
Polymarket 上的每笔交易都遵循一个特定的生命周期。订单在链下创建,由运营方撮合,最终通过智能合约在链上结算。这种混合架构兼具中心化撮合的速度和区块链结算的安全性。

订单运作方式

Polymarket 上所有订单都是限价单。限价单指定你愿意支付(或接受)的价格和交易数量。
“市价单”本质上是一种价格设定为可立即与最优挂单成交的限价单。
订单是 EIP712 签名消息。下单时,你用私钥签署一个结构化消息。这个签名授权 Exchange 合约代你执行交易——而无需接管你的资金。

订单类型

类型行为适用场景
GTCGood Till Cancelled — 挂单直到成交或被取消标准限价单
GTDGood Till Date — 到指定时间自动过期有时效的订单
FOKFill Or Kill — 全部成交或立即取消要求全额成交
FAKFill And Kill — 成交可成交的部分,取消剩余接受部分成交

Post-Only 订单

Post-Only 订单只会作为挂单存在。如果 Post-Only 订单会立即成交(穿越价差),则会被拒绝而非执行。这保证你始终是 maker,而非 taker。
1

创建与签名

你的客户端创建一个包含以下内容的订单对象:
  • Token ID(你要交易的结果)
  • 方向(买入或卖出)
  • 价格和数量
  • 过期时间
  • Nonce(防重放保护)
你用私钥对订单进行签名,生成 EIP712 签名。
2

提交至 CLOB

签名后的订单被提交到中央限价订单簿(CLOB)运营方。运营方会验证:
  • 签名有效性
  • 余额是否充足
  • 是否设置了必要的授权(allowance)
  • 价格是否满足最小价格单位要求
3

撮合或挂单

如果订单可成交(你的买价 ≥ 最低卖价,或你的卖价 ≤ 最高买价),则立即与挂单撮合成交。如果订单不可立即成交,则挂在订单簿上等待对手方。订单将保持挂单状态直到:
  • 其他订单与之匹配
  • 你取消订单
  • 订单过期(仅限 GTD 订单)
4

结算

订单撮合后,运营方将交易提交到区块链。Exchange 合约会:
  • 验证双方签名
  • 将代币从卖方转给买方
  • 将 USDC.e 从买方转给卖方
结算是原子性的——要么整笔交易成功,要么什么都不发生。
5

确认

交易在 Polygon 上达成最终性。你的代币余额更新,交易记录出现在你的历史中。

订单状态

下单后,订单会进入以下状态之一:
状态说明
live订单挂在订单簿上
matched订单立即成交
delayed可成交订单进入 3 秒撮合延迟(体育市场)
unmatched可成交订单在延迟期结束后未成交,被放入订单簿

交易状态

撮合后,交易经历以下状态:
状态是否终态说明
MATCHED已撮合,发送至执行器进行链上提交
MINED交易已被区块链打包
CONFIRMED交易达成最终性,执行成功
RETRYING交易失败,正在重试
FAILED交易永久失败

Maker 与 Taker

角色说明触发条件
Maker为订单簿提供流动性你的订单挂单后被其他订单成交
Taker从订单簿获取流动性你的订单立即与挂单成交
价格改善始终有利于 taker。如果你挂买单出价 $0.55,与挂卖单价格 $0.52 成交,你实际支付 $0.52

取消订单

你可以在订单被撮合之前随时取消:
  • 通过 API — 通过 CLOB API 取消(即时生效)
  • 链上取消 — 直接在 Exchange 合约上取消(API 不可用时的备选方案)
已部分成交的部分无法取消——只能取消未成交的部分。

下单前提条件

下单前请确保满足以下条件:
要求说明
余额足够的 USDC.e(买入时)或代币(卖出时)
授权已授权 Exchange 合约使用你的资产
API 凭证认证接口所需的有效 API 密钥
订单数量受你的可用余额限制,需扣除现有挂单占用的金额。maxOrderSize=balance(openOrderSizefilledAmount)\text{maxOrderSize} = \text{balance} - \sum(\text{openOrderSize} - \text{filledAmount})

下一步