Polymarket Trading Skill 用于在 Polymarket 预测市场进行真实交易,通过智能体的 Polygon 钱包在 CLOB 订单簿上操作。
用途 该技能让智能体能够在 Polymarket 上买卖结果代币、查看余额、管理订单,并以真实资金参与预测市场交易。
架构与模式 技能使用 EOA 模式(signature_type=0)。在此模式下,智能体钱包既是签名者(signer)也是挂单方(maker),不需代理合约。相比 Safe/Proxy 模式(sig_type=2,由 Gnosis Safe 代理持有资金、EOA 签名),EOA 模式更简单:无需部署代理、无需中继器(relayer),唯一 Gas 成本是首次授权时约 0.01 美元等值的 POL,之后的 CLOB 订单免 Gas。
首次配置流程
- 获取钱包地址:使用 wallet_info 获取智能体的 Polygon 地址,作为 POLY_WALLET。
- 创建 API 凭证:签署 EIP-712 ClobAuth 消息并 POST 到 CLOB 以获取 API key/secret/passphrase。域为 { name: "ClobAuthDomain", version: "1", chainId: 137, verifyingContract: "0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E" },类型为 ClobAuth: [address, timestamp(string), nonce(uint256), message(string)],消息内容为 { address: WALLET, timestamp: NOW, nonce: "0", message: "This message attests that I control the given wallet" }。使用 wallet_sign_typed_data 签名,然后 POST 到 https://clob.polymarket.com/auth/api-key(需要 VPN)并携带 L1 认证头。将 POLY_API_KEY、POLY_SECRET、POLY_PASSPHRASE、POLY_WALLET 保存到 .env。
- 给钱包注资:向智能体钱包地址在 Polygon 网络上发送 USDC(Polygon 原生 USDC 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174)作为下注资金,以及 POL(约 1 POL / 约 0.20 美元)作为授权交易的 Gas。
- 一次性授权 USDC(需要 POL):批准两个 CTF Exchange 合约使用 USDC(最大额度)。代码示例: from eth_abi import encode from eth_utils import function_signature_to_4byte_selector sel = function_signature_to_4byte_selector("approve(address,uint256)") USDC = "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174"
Approval 1: CTF Exchange
data1 = sel + encode(['address','uint256'], ['0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E', 2**256-1])
wallet_transfer(to=USDC, amount="0", chain_id=137, data="0x"+data1.hex())
Approval 2: CTF Exchange Neg-Risk
data2 = sel + encode(['address','uint256'], ['0xC5d563A36AE78145C45a50134d48A1215220f80a', 2**256-1])
wallet_transfer(to=USDC, amount="0", chain_id=137, data="0x"+data2.hex())
- 验证:运行 python3 skills/polymarket-trade/scripts/poly_research.py balance,应显示 USDC 余额和大于 0 的授权额度,配置完成。
钱包策略 智能体需要:eth_signTypedData_v4(订单签名)以及链 137 上的 eth_sendTransaction(授权)。
VPN 要求 所有 CLOB API 请求存在地理封锁,脚本会自动通过 sc-vpn.internal:8080 路由(默认德国)。Gamma API 不受封锁。可在 .env 中设置区域:POLY_VPN_REGION=de。
合约(Polygon) CTF Exchange:0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E CTF Exchange(neg-risk):0xC5d563A36AE78145C45a50134d48A1215220f80a USDC:0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
强制要求:下注前必须获得用户确认 绝不在没有用户明确确认的情况下下注。流程:研究分析 → 呈现发现;建议下注并附风险回报比 → 用户审阅;用户要求修改 → 调整;用户明确确认 → 才执行。
工作流:链接 → 下注
- 市场查询:python3 skills/polymarket-trade/scripts/poly_research.py lookup "<polymarket_url>"
- 研究:阅读结算条件、结束日期、来源;使用 web_search 查询新闻、专家意见、数据;评估市场价格与估计公允概率;呈现概览、价格、关键事实、概率估计、优势。
- 订单簿与风险回报比:python3 skills/polymarket-trade/scripts/poly_research.py orderbook <token_id>;python3 skills/polymarket-trade/scripts/poly_research.py rr <token_id> <YES|NO> <size_usd>
- 呈现建议下注(等待确认):示例格式:市场:"Will X happen?";方向:YES @ $0.35(市场:35%,估计:55%);规模:$20 → 57.14 tokens;盈利:+$37.14 | 亏损:-$20.00 | R/R:1:1.86
- 执行(仅在确认后):
a. 检查余额
python3 skills/polymarket-trade/scripts/poly_research.py balance
b. 准备订单(输出 domain/types/message/meta JSON)
python3 skills/polymarket-trade/scripts/poly_research.py prepare <token_id> BUY <price> <size> [neg_risk] [tick_size]
c. 使用 wallet_sign_typed_data 签名(primaryType: "Order")
d. 提交已签名订单
python3 -c " import sys; sys.path.insert(0, '/data/workspace/skills/polymarket-trade/scripts') from poly_research import post_signed_order s, r = post_signed_order('<token_id>', '<signature>', <meta_dict>) print(s, r) "
e. 验证
python3 skills/polymarket-trade/scripts/poly_research.py orders
其他命令 python3 skills/polymarket-trade/scripts/poly_research.py search "query" # 查找市场 python3 skills/polymarket-trade/scripts/poly_research.py positions # 当前持仓 python3 skills/polymarket-trade/scripts/poly_research.py trades # 近期交易 python3 skills/polymarket-trade/scripts/poly_research.py cancel <order_id> # 取消订单 python3 skills/polymarket-trade/scripts/poly_research.py cancel_all # 取消所有订单
注意事项 价格即概率:$0.55 = 55% 隐含概率,每枚代币成本 $0.55,若正确支付 $1。 tick_size:0.01 或 0.001(来自市场数据,务必检查)。 neg_risk 市场使用 CTF_EXCHANGE_NEG。 订单默认为 GTC,0 bps maker 费用。 最小订单约 5 枚代币(因市场而异)。
限制 首次配置需要 Polygon 上的 USDC 和 POL;CLOB API 存在地理封锁,需要 VPN;所有下注必须获得用户明确确认;该技能涉及真实资金交易,操作前需确保余额与授权正确。