成交事件
推送成交的每个字段。
成交事件
两个通道投递的是同一个成交对象,放在 data 里。Webhook 的 body 是 {"type":"fill","data":{…}};WebSocket 的帧在此之外还带 session 和 seq。tPush 是各通道自己的发出时间。
json
{ "type": "fill", "data": { "eventId": "137:93912410:0x8f2c…a91b:0x4d0e…77c3:41", "chain": 137, "entityId": "0x9a3f…21e8", "wallet": "0x5b71…0cd2", "ts": "2026-09-16 14:02:11", "block": 93912410, "blockHash": "0x8f2c…a91b", "txHash": "0x4d0e…77c3", "logIndex": 41, "exchange": "pm_ctf_v2", "side": "BUY", "role": "taker", "tokenId": "3200000000…", "price": "0.570000", "shares": "3200000000", "usdc": "1824000000", "fee": "0", "tDetect": "2026-09-16T14:02:11.412Z", "tPush": "2026-09-16T14:02:11.733Z", "marketTitle": "Will the Fed cut rates in October?", "conditionId": "0x5f1e…c2a9" } }
| eventId | string | 这笔成交的稳定 id:链、区块、区块哈希、交易、日志序号。去重就用它。 |
| chain | number | 137(Polygon)。写进 id 里,以后加链也不会有歧义。 |
| entityId | 0x address | 你订阅的实体,代表交易者,不一定对应签名地址。 |
| wallet | 0x address | 实际交易的钱包地址。一个实体通常有多个钱包。 |
| ts | string (UTC) | 区块时间,UTC。与发出时间不同,两者的差值见延迟页。 |
| block | number | 包含该笔成交的区块。 |
| blockHash | 0x hash | 该区块的哈希。链重组后,同一笔交易重新打包到其他区块时,区块哈希改变,视为新事件。 |
| txHash | 0x hash | 交易哈希。 |
| logIndex | number | 日志在区块内的位置。 |
| exchange | string | 由哪个 Polymarket 交易所合约撮合的,例如 pm_ctf_v2。 |
| side | "BUY" | "SELL" | 该钱包的买卖方向。 |
| role | "maker" | "taker" | 这个钱包是 maker 还是 taker。只有 taker 付手续费。 |
| tokenId | string (uint256) | 结果代币(ERC-1155 id),用十进制字符串表示,超出 JS number 的精确表示范围。 |
| price | string (decimal) | 每股价格(USDC),十进制字符串。 |
| shares | string (integer) | 整数,隐含 6 位小数(micro-shares)。3200000000 是 3,200 股。 |
| usdc | string (integer) | 整数,隐含 6 位小数(micro-USDC)。1824000000 是 $1,824。 |
| fee | string (integer) | 合约实际收取的现金手续费,micro-USDC。maker 为 0。 |
| tDetect | string (ISO 8601) | 检测到区块的时间(服务端时钟,UTC)。仅推送包含。 |
| tPush | string (ISO 8601) | 该通道发出成交的时间(服务端时钟,UTC)。延迟页统计 tPush − tDetect。仅推送包含。 |
| marketTitle? | string | 市场标题,缓存里已有时才带,否则没有这个字段。仅推送包含。 |
| conditionId? | 0x hash | 市场的 condition id,和 marketTitle 一起出现。仅推送包含。 |
金额是隐含 6 位小数的整数,用字符串传。数值保持合约原值,不转成浮点数, 避免四舍五入后无法与区块浏览器对账。显示时除以 1,000,000。
GET /v1/account/fills 补拉回来的行只有账本字段:没有 tDetect、tPush、marketTitle、conditionId。
链重组时不撤回已发出的事件。同一笔交易被重新打包进另一个区块,你会收到第二个事件,blockHash 不同。因此,区块哈希包含在 eventId 中,只按交易哈希去重会漏掉真实成交。