LIVE
$7.62 的最小利润 / 每笔交易
获取机器人

Polymarket Relayer Client 教程

使用 TypeScript 的 Polymarket Relayer Client 实战演练:安装、钱包处理、常见流程(批准、split/merge)、以及无 gas 集成建议。

更新于 2026-04-20· 3 min
Polymarket Relayer Client
TypeScript
SDK
gasless

Polymarket Relayer Client 教程

本指南演示如何在 TypeScript 中使用 Polymarket Relayer Client 来构建无 gas 流程:钱包部署、ERC-20 批准处理、CTF 的 split/merge/redeem 操作,以及在 CLOB 上下单。如果你需要与 Polymarket 进行可用的、无 gas 的集成,Polymarket Relayer Client 是开发者首选的 SDK。

要点概览

  • Polymarket Relayer Client 提供了 TypeScript 和 Python SDK,用于处理钱包部署、批准、CTF 操作以及通过 Polymarket Relayer 的下单流程。
  • 对终端用户来说,Polymarket 的交易是无 gas 的:Relayer 赞助 gas,并抽象出钱包部署与批准流程。
  • 常见流程为:钱包入门 → 检查/申请批准 → split(铸造)一整套结果代币 → 下单(限价或 FAK)→ 在结算后 merge/redeem。
  • 始终为 resolution 和结算风险设计:UMA 争议、部分成交/滑点以及时间相关风险都是真实存在的。

本指南面向谁

你是构建集成、交易机器人或在 UX 中下单并与 CTF 交互的开发者。你应该熟悉 TypeScript、EVM 钱包(MetaMask、Rabby 等)以及基本的 web3 概念。

SDK 覆盖内容概览

  • 钱包入门:在首次使用时部署 Proxy 钱包或在可用时使用预部署的 Gnosis Safe。
  • ERC-20 批准管理:用于 pUSD 及 split/merge 中使用的其它代币。
  • CTF 操作:split、merge、redeem(ERC-1155 结果代币)。
  • 通过 Relayer 向 CLOB 下单与取消订单。
  • 当你作为 Builder 操作时,设置 Builder 归属头(参见 Builder Program 文档)。

注意:Polymarket 在 Polygon(chain ID 137)上运行,交易结算资产是 pUSD(Polymarket 的封装 USDC)。所有用户交易通过 Relayer 实现无 gas。

安装与第一步

安装 TypeScript 包和常用的 web3 provider 包。具体包名因版本而异;下面示例使用 relayer SDK 常见的规范导入路径。如果你项目中的包名不同,请查阅 SDK README。

Shell

npm install @polymarket/relayer-client ethers

基本初始化(TypeScript)

import { RelayerClient } from '@polymarket/relayer-client';
import { ethers } from 'ethers';

// Use a wallet provider exposed in the browser (MetaMask, Rabby, etc.)
const provider = new ethers.providers.Web3Provider((window as any).ethereum);
const signer = provider.getSigner();

const relayer = new RelayerClient({
  signer,
  network: 'polygon', // Polymarket runs on Polygon (chainId 137)
});

上面示例说明:RelayerClient 的构造函数和选项对象为示例性写法。请查看 SDK README 以获得准确的构造函数签名和可用选项。

入门:钱包部署与批准

Polymarket 支持两种钱包模型:预部署的 Gnosis Safes 与在首次交易时自动部署的 Proxy 钱包。Relayer SDK 处理这两种流程,并赞助部署 gas。

你在 UX 中应实现的常见入门步骤:

  1. 检测用户是否已有 Proxy 或 Safe。如果没有,调用 SDK 的首次使用部署辅助工具。
  2. 确保用户的钱包中有 pUSD。如果没有,指导他们如何桥入或存入(参见 Polymarket 的资金指南)。
  3. 检查 pUSD 的 ERC-20 批准状态,并在需要时通过 Relayer 提示一次无 gas 的批准。

示例:检查并请求批准(TypeScript)

// Pseudocode — adapt to SDK methods
const pUsdAddress = '0x...'; // use SDK constant if provided
const allowance = await relayer.checkAllowance(pUsdAddress);
if (allowance.lt(requiredAmount)) {
  await relayer.requestApproval(pUsdAddress, requiredAmount);
}

由于 Relayer 赞助 gas,批准调用通过 Relayer 发送,而不是用户签名直接的链上 gas 交易。

CTF 流程:split、merge、redeem

Conditional Token Framework (CTF) 是 Polymarket 表示结果(ERC-1155 代币)的方式。你想要购买一整套时的典型顺序:

  • split:消耗 pUSD 并铸造一整套结果代币
  • 交易后,merge:将剩余的结果代币合并回共同头寸
  • redeem:在结算后,燃烧获胜的结果代币以兑换 $1.00 每枚

示例 split(TypeScript)

// Pseudocode using the Relayer SDK
const conditionId = '0x...';
const amount = ethers.utils.parseUnits('1.0', 6); // pUSD has 6 decimals
await relayer.split(conditionId, amount);

SDK 将处理必要的批准和 relayer 提交。split 之后,用户的 Proxy 或 Safe 会收到 ERC-1155 的结果代币。

在 CLOB 上下单

CLOB 提供下单和订单簿读取接口。Relayer Client 将下单路由通过 Relayer,并在你作为 Builder 时处理归属头。

重要的订单类型:

  • 限价单:挂在簿上,可能作为 maker 成交(maker 费用为零)。
  • 市价单(FAK):SDK 提供创建 FAK 单的辅助方法,FAK 单会立即执行或取消。

示例:下一个 FAK 市价单(TypeScript)

// Conceptual example
const instrumentId = 'POLY_MARKET_INSTRUMENT_ID';
const side = 'buy';
const size = ethers.utils.parseUnits('10', 6);

const result = await relayer.createMarketOrder({
  instrumentId,
  side,
  size,
  slippageTolerance: 0.01, // 1% slippage protection
});

console.log('fill result', result);

如果你作为 Builder 操作,请根据 Builder Program 的要求包含归属头或 Builder 凭证。Builder Program 提供分层的 relayer 限额和奖励;在 https://polymarket.com/settings 获取凭证。

读取市场数据与 WebSocket

对于非交易读取,使用 Polymarket 的公共 REST 与 WebSocket 接口:

订阅市场 WS 时,请请求 custom_feature_enabled: true 以接收 best_bid_ask 事件,并将订阅限制为每个连接最多 500 个合约。

错误处理与常见陷阱

  • 部分成交:市价单(FAK)可能会部分成交。始终检查结果并处理剩余部分。
  • 滑点:对激进的市价单使用滑点保护。SDK 通常在市价辅助方法中暴露滑点设置。
  • 结算与结算时序:UMA 争议可能会暂停结算。设计 UI 与账务时要反映未结算资金,直到 redeem 完成。
  • tick size 变动:当价格接近极端时,tick size 会从 $0.01 调整为 $0.001;处理 tick_size_change 的 WebSocket 事件。

测试策略

  • 端到端沙箱:完整演练入门流程——部署 Proxy 钱包、请求批准、split、下单、然后 merge/redeem。
  • 单元测试封装函数:模拟 relayer 方法以断言正确的批准与 split 顺序。
  • 速率限制意识:Gamma /markets 有速率限制(/markets 为 300 req / 10 s)——对读取进行批量和缓存处理。

这对你的交易或机器人逻辑有什么影响

使用 Polymarket Relayer Client 可免去为终端用户管理 gas 的需要,并通过自动化 Proxy 部署与批准简化入门流程。对机器人而言,这意味着你可以把精力放在策略与市场数据上:SDK 减少了执行 split/merge 与下单流程的集成面。但你仍必须处理非执行风险,例如滑点、部分成交和预言机争议。

参考与后续步骤

结语:Polymarket 通过 Relayer 赞助 gas,并提供 TypeScript 与 Python SDK 来简化典型的钱包与 CTF 工作流。Polymarket Relayer Client 是与 CLOB 和 CTF 进行无 gas 集成的推荐路径。

常见问题解答

什么是 Polymarket Relayer Client?

Polymarket Relayer Client 是将用户交易通过 Polymarket 的 Relayer 路由的 SDK(TypeScript 与 Python),它处理钱包部署、ERC-20 批准、CTF 操作与下单,使终端用户体验到无 gas 的交易。

用户是否仍然需要 pUSD 才能交易?

需要。Polymarket 的结算资产是 pUSD(封装的 USDC)。Relayer 赞助 gas,但用户必须持有 pUSD 才能执行 split 操作和下单。

我可以通过 Relayer Client 作为 Builder 行事吗?

可以。Builder Program 允许第三方通过归属头路由订单并赚取 builder 费用。在 https://polymarket.com/settings 获取凭证,并按 SDK 要求包含 builder 头。

Relayer Client 会自动处理批准和钱包部署吗?

SDK 提供了在首次使用时自动部署 Proxy 钱包的辅助工具,以及通过 Relayer 请求无 gas ERC-20 批准的辅助方法,从而简化入门流程。

在哪里可以读取实时订单簿更新?

订阅 Market WebSocket:wss://ws-subscriptions-clob.polymarket.com/ws/market。请求 custom_feature_enabled: true 以接收 best_bid_ask 事件,并注意每次连接的 500 合约订阅上限。

参考术语

相关指南

仅供教育用途。非金融、法律或税务建议。Polymarket在你的司法管辖区可能不可用。