工具测评 · FENGDAO AI RESEARCH

Polymarket数据为什么散?这一款开源索引器把行情和成交塞进同一个DuckDB

把CLOB市场元数据与Polygon链上成交合并写入一个DuckDB文件,可断点续传,可用SQL查询,适合做预测市场研究与策略回放。

2026年9月5日4 分钟读完冯导AI研究院2 次阅读#GitHub开源#Polymarket#DuckDB
Polymarket数据为什么散?这一款开源索引器把行情和成交塞进同一个DuckDB
它把分散的Polymarket数据合并成一个可断点续传的本地DuckDB,适合做研究复盘和策略回放,但定位是历史索引,不是实时行情。

适合:需要批量拉取Polymarket历史成交、做预测市场研究与策略复盘的个人或小团队。

先说结论

Polymarket研究难,数据散是头号原因。市场元数据在CLOB接口里,历史成交埋在Polygon合约里,两边口径不一致,时间戳还错位。要做一次像样的复盘,往往要先拉一堆API,再清洗脚本折腾半天。

nahrek/polyledger的思路很直接:写一个Python任务,把CLOB元数据和Polygon链上交易按市场维度合并,落盘成一个DuckDB文件,可断点续传,最后用一句SELECT就能查。

它不能帮你做决策,但能把决策前那条最脏的数据通路给打通。

真正的问题

预测市场的数据之所以难用,症结在三处。

一是来源分裂。一边是Polymarket官方CLOB接口,能拿到市场标题、规则、结果和盘口;另一边是Polygon链上事件,能拿到真实的下单、成交和结算。两者不互通,命名空间也不一样。

二是同步成本。链上数据用普通RPC节点逐条轮询,速度慢、成本高,遇到断网或脚本崩溃就要从头再来。

三是查询割裂。CSV和JSON只适合一次性分析,做不了稳定的回放和对比。一份能复现的本地数据文件,往往比一份漂亮的可视化更值钱。

把这三件事串起来,是这类索引器的核心价值。

怎么做更省力

步骤关键动作建议工具
初始化配置RPC,启用断点续传Python脚本
拉取元数据调用CLOB接口,拿到市场列表polyledger自带模块
同步成交通过HyperSync批量取链上事件hypersync客户端
合并落库写入DuckDB,建立索引DuckDB CLI或Python SDK

上表里有一个值得单独说的点:链上数据那一段用的是Envio的HyperSync而不是传统节点轮询。差别在于,HyperSync是面向历史回放的批量协议,吞吐比JSON-RPC高一两个数量级,这也是它能把“几分钟跑完几个月数据”变成现实的基础。

数据落进DuckDB之后,剩下就是SQL的活了。比如想看某个市场从开盘到结算的成交分布:

SELECT timestamp, price, side, size
FROM trades
WHERE market_id = ?
ORDER BY timestamp;

如果你要把这份数据整理成可读报告,可以用职场汇报生成器把查询结论拼成结构化文本;要做研究复盘或对外分享,再用Markdown智能编辑器排版输出。

哪些坑要避开

一是不要把它当成实时数据源。它是索引器,定位在历史回放和批处理,把它当成行情API用就错了。

二是注意RPC和HyperSync的配额。批量拉取很快,但有限速。公共节点通常扛不住完整历史,部署前先算一笔账。

三是市场元数据和链上交易的ID不一定一致。要按tokenID或conditionID做映射,否则会出现“同一个市场两个名字”的尴尬。

四是DuckDB是单文件,适合个人研究和中等规模分析;数据量到了亿级行数,要考虑切分或迁移到ClickHouse,否则单文件会膨胀到几百 GB。

五是Polymarket的合约和接口都在演进,老脚本可能因为ABI升级失效,最好把版本固定在依赖里。

现在就能动手

如果你手里正好有预测市场的研究需求,最快的起步方式是:先克隆仓库,按README里的步骤跑通最小流程,目标是生成一份只覆盖一两个市场的DuckDB文件。接着用DuckDB CLI打开,跑几条聚合SQL验证字段含义。最后再扩大拉取范围,把CLOB的盘口数据和链上成交在同一张表里JOIN,确认口径一致。

过程中如果需要把查询结果整理成可分享的图表或工作流说明,可以顺手用Markdown智能编辑器输出。整条链路打通后,原本要花一两天拼数据的研究,往往能压缩到几小时。

继续阅读