Polymarket CLI 是一个实验性的 Rust 命令行工具,可在终端中浏览 Polymarket 市场、查询订单簿、进行交易和操作链上合约,或输出 JSON 供脚本和代理使用。列出和搜索市场等只读命令无需钱包即可运行,而交易则需要本地提供的私钥和明确的批准步骤。本指南将 CLI 的文档化行为与操作建议以及您必须自行运行的测量区分开来。它涵盖了安装、只读研究工作流、JSON 自动化、钱包配置、订单验证以及最常导致终端交易脚本失败的故障模式。
范围与 Polymarket CLI 背后的思维模型
Polymarket CLI 是由 Polymarket 组织发布的 Rust 二进制文件。其既定目标是让您从终端浏览市场、下单、管理仓位并与链上合约交互,或输出 JSON 供脚本和代理使用。它被明确标记为早期实验性软件:命令、API 和行为可能随时更改,项目警告不要使用大量资金。
有用的思维模型分为三层。第一层是读取层,与 Polymarket 的公开市场和订单簿服务通信,无需钱包。第二层是签名层,使用私钥授权 CLOB 订单和链上交易。第三层是执行层,提交这些已签名的操作并返回您必须验证的结果。在脚本中保持这些层分离是最重要的设计决策,因为它让您无需加载密钥即可运行研究和自动化。
本文涵盖安装、只读查询、JSON 管道、钱包设置、订单验证和故障排除。它不发布 CLI 或任何 RPC 提供商的基准数据;在延迟或可靠性重要的地方,本文提供测量程序而非声称的结果。
- 只读命令:市场列表、搜索、事件过滤、订单簿和价格查询。
- 签名命令:钱包创建、批准、下单和取消。
- 输出模式:默认人类可读表格,传递输出标志时输出 JSON。
- 状态:实验性,因此固定版本并在升级后重新测试。
安装前的先决条件和假设
您需要 macOS 或 Linux 上的终端、安装二进制文件的方式(Homebrew 或 Rust 工具链),以及研究机器和签名机器之间的明确分离。对于交易,您需要一个资金有限的专用钱包、一个您控制或信任的 Polygon RPC 端点,以及确认每笔交易前进行验证的习惯。
CLI 文档中私钥的配置顺序是:命令行标志,然后环境变量,然后存储的配置。这个顺序对故障排除很重要,因为如果您依赖交互式设置,过时的存储密钥可能会静默覆盖您的意图。优先使用由秘密管理器注入的环境变量而非标志,因为标志可能泄露到 shell 历史和进程列表中。
如果您不熟悉 CLI 所交互链的端点选择,RPC Assistant 的简短推荐页面是选择具体端点的正确位置;本指南专注于 CLI 工作流本身。
- 用于只读投资组合查询的有资金或无资金的钱包地址。
- 来自您已评估可靠性的提供商的 Polygon RPC_URL。
- 用于 PRIVATE_KEY 的秘密机制,而不是同步文件夹中的明文点文件。
- 在运行手册中记录的固定 CLI 版本。
使用 Homebrew、安装脚本或 Cargo 安装 CLI
项目文档记录了三种安装路径:Homebrew tap、shell 安装脚本和使用 Cargo 从源代码构建。Homebrew 在 macOS 和 Linux 上最可审计,因为公式有版本和校验和。shell 脚本方便但执行远程内容,因此运行前请阅读。从源代码构建可获得您审计的确切提交,这是任何将签署交易的工作流的正确选择。
安装后,在執行任何其他操作之前,确认二进制文件可解析并打印其帮助输出。这可以及早发现 PATH 问题和版本不匹配。
brew tap Polymarket/polymarket-cli
brew install polymarket
# Alternative: build from a pinned commit
git clone https://github.com/Polymarket/polymarket-cli
cd polymarket-cli
git checkout <PINNED_COMMIT>
cargo install --path .
# Verify
polymarket --help
polymarket --version无需钱包的只读市场研究
验证安装的最快方法是浏览市场,这不需要钱包。从较小的限制开始,以便检查表格格式,然后按关键字搜索并按标签过滤事件。这些命令在任何机器上运行都是安全的,因为它们不接触密钥。
实用的研究循环是:列出活跃市场,搜索主题,按 slug 获取特定市场,然后为您入围的市场拉取订单簿或价格数据。探索时保持限制较小;大型列表更难阅读且管道传输更慢。
# List a few markets
polymarket markets list --limit 5
# Search by keyword
polymarket markets search "election"
# Filter events by tag
polymarket events list --tag politics
# Fetch one market by slug
polymarket markets get <MARKET_SLUG>JSON 输出作为 CLI 与脚本之间的契约
CLI 对自动化最有价值的特性是相同的命令可以输出 JSON。将该 JSON 视为版本化契约:只解析您需要的字段,容忍未知字段,并在升级后必需字段消失时大声失败。这样您可以在实验性发布节奏中保持研究管道存活。
下面的示例将 JSON 管道传输到一个小型 Python 过滤器。它仅使用标准库和一个占位命令,因此您可以将其适配到您安装版本输出的任何市场字段。重点是模式:捕获 JSON,验证形状,然后行动。
import json, subprocess, sys
raw = subprocess.check_output(
["polymarket", "-o", "json", "markets", "list", "--limit", "20"],
text=True,
)
data = json.loads(raw)
# The exact envelope depends on your CLI version; inspect it once, then pin.
markets = data if isinstance(data, list) else data.get("markets", [])
for m in markets:
slug = m.get("slug") or m.get("question")
if slug:
print(slug)
if not markets:
sys.exit("No markets parsed; check JSON shape after upgrade")钱包设置、密钥优先级和批准步骤
交易需要私钥来签署订单和链上交易。文档化的优先级是 CLI 标志,然后环境变量,然后存储的配置。在自动化中使用环境变量路径,仅在您物理控制的机器上使用交互式设置。切勿提交密钥,也切勿将其粘贴到共享终端会话中。
在下任何订单之前,确认 CLI 将使用的钱包地址,并完成项目文档中关于代币支出的批准步骤。批准是链上操作;在区块浏览器上验证它们,而不是仅信任 CLI 的成功消息。
export POLYMARKET_PRIVATE_KEY=<PRIVATE_KEY>
# Interactive setup (only on a controlled machine)
polymarket setup
# Or create and approve explicitly
polymarket wallet create
polymarket approve set
# Confirm which address is active before trading
polymarket wallet address订单和延迟测量的验证程序
由于 CLI 是实验性的且网络条件多变,不要信任单一成功消息。构建一个小型验证工具,记录每次订单尝试的提交前时间戳、CLI 返回后的时间戳、返回的订单标识符以及您之后观察到的链上或订单簿状态。在测试大小的订单上重复运行并制表结果。
下表是模板,不是测量数据。用您自己的运行填充它。如果您正在比较签名路径的 RPC 端点,请对每个端点运行相同的工具并保持其他一切不变。
- 列:运行编号、端点标签、提交时间戳、返回时间戳、订单 ID 存在、订单簿状态匹配、备注。
- 最小样本:足够多的运行,使单个异常值不会主导您的结论。
- 控制:相同机器、相同 CLI 版本、相同订单大小、相同时间窗口。
您自己运行的结果表模板
| 运行 | 端点标签 | 提交 (UTC) | 返回 (UTC) | 订单 ID | 订单簿匹配 | 备注 |
|---|---|---|---|---|---|---|
| 1 | RPC_URL_A | |||||
| 2 | RPC_URL_A | |||||
| 3 | RPC_URL_B |
故障排除:破坏终端交易脚本的故障
大多数故障分为四类:安装和 PATH 问题、升级后的 JSON 形状变化、密钥优先级意外和交易验证缺口。按此顺序处理它们,因为损坏的二进制文件或更改的 JSON 信封会伪装成交易问题。
如果昨天有效的命令现在失败,首先检查版本。如果 JSON 解析中断,转储原始输出一次并比较字段名称。如果错误的钱包签名,打印活动地址并取消设置任何存储的配置。如果订单似乎成功但订单簿未反映,请等待并重新查询,而不是重新提交,这可能会重复暴露。
- 找不到命令:确认安装路径和 shell PATH。
- 解析错误:固定 CLI 版本并显式验证 JSON 形状。
- 错误的签名者:按顺序检查标志、环境和存储配置的优先级。
- 重复订单:切勿盲目重试;先查询状态。
- 批准失败:在区块浏览器上验证代币批准。
局限性、权衡以及何时不使用 CLI
CLI 是一个薄而快的接口,不是风险管理系统。它不能替代仓位限制、紧急停止开关或独立监控。其实验性状态意味着预期会有破坏性更改,因此任何生产自动化都应固定版本、在具有微小订单的暂存模式下运行,并对 JSON 形状漂移发出警报。
对于高频或高价值执行,具有显式重试语义、幂等键和结构化日志的专用服务通常比 shell 脚本更合适。CLI 仍然非常适合研究、临时查询和面向代理的 JSON 管道,其中人类审查输出。
如果您的瓶颈是端点可靠性而非 CLI 行为,修复应属于您的基础设施层。在重写脚本之前,请查看多链端点指南和专用节点选项。
后续步骤:强化您的 Polymarket CLI 工作流
将只读研究循环转变为计划任务,将 JSON 快照写入存储,然后比较连续快照以检测市场变化。将验证工具添加到同一仓库,以便订单行为和研究数据共享一个版本历史。在每个快照中记录 CLI 版本和 RPC 端点标签。
当您准备选择基础设施时,从 RPC 端点指南开始,比较您实际需要的吞吐量的定价,然后仅在您的测量证明合理时才转向专用节点。保持 CLI 作为接口,您自己的代码作为限制和验证的真相来源。
- 固定 CLI 版本并记录升级测试。
- 存储带有时间戳和端点标签的 JSON 快照。
- 在增加规模之前运行订单验证工具。
- 将研究机器与签名机器分开。