如何自部署PMXT本地服务器:pmxt-core私钥自管模式的Step-by-Step部署教程
【免费下载链接】pmxtCCXT for prediction markets. PMXT is a unified API for trading on Polymarket, Kalshi, and more.项目地址: https://gitcode.com/gh_mirrors/pm/pmxt
PMXT(PMXT = CCXT for prediction markets)是预测市场的统一交易 API,一套接口同时覆盖 Polymarket、Kalshi、Limitless 等主流平台。本文手把手教你自部署 PMXT 本地服务器:通过开源组件pmxt-core在本地拉起 Sidecar 服务,交易私钥全程留在自己机器上(私钥自管模式),不经过任何第三方托管,适合对延迟和资产安全有要求的进阶用户。
一句话理解:不用
pmxt_api_key时,SDK 会自动在你本机启动pmxt-core(默认http://localhost:3847),你的代码直接和交易所 API 通信,PMXT 服务器永远看不到你的私钥。
自部署 vs 托管:先判断哪种模式适合你
选择自部署,如果命中以下任意一条:
- ⚡追求极致延迟—— 本地下单少一跳网络,适合套利 / 做市等低延迟策略;
- 🔑需要原生凭证—— Polymarket L2 API key、Kalshi RSA 密钥对、Smarkets 会话凭证,托管模式不接受这些;
- 🏦合规托管要求—— 你必须作为直接对手方,托管链路不能有中间人;
- 🛠想二次开发—— 直接基于
pmxt-core源码做定制。
否则(普通查询、研究脚本、非延迟敏感应用),托管模式更省事,不需要本地进程。
部署架构:本地到底跑的是什么
自部署模式的核心在 core/src/server/index.ts:
- SDK 首次调用时,自动把
pmxt-core作为子进程拉起,并等待健康检查通过; - 默认监听
3847端口(由 core/src/server/utils/port-manager.ts 自动寻找可用端口),生成随机访问令牌写入锁文件; - 之后的请求复用同一进程,多交易所客户端共享这一个本地服务。
也就是说:没有独立二进制要手动管理,SDK 安装时已捆绑pmxt-core。
Step 1:安装 SDK(pmxt-core 已内置)
选择你熟悉的语言,一行命令完成:
# Python pip install pmxt# TypeScript npm install pmxtjs装完即可——pmxt-core随 SDK 一起打包,无需单独下载或 clone。
Step 2:无 API Key 构造客户端,自动拉起本地服务器
关键动作只有一个:构造交易所客户端时不传pmxt_api_key。SDK 检测到缺失后自动 spawn 本地服务器:
import pmxt # 不传 API key → SDK 自动在本机启动并监管 pmxt-core poly = pmxt.Polymarket() markets = poly.fetch_markets(query="election", limit=3)import { Polymarket } from "pmxtjs"; const poly = new Polymarket({}); // 无 pmxtApiKey → 本地自部署模式 const markets = await poly.fetchMarkets({ query: "election", limit: 3 });首次调用会短暂阻塞等待本地服务器预热,后续调用全部复用同一进程。
Step 3:配置私钥自管凭证(核心环节)
自部署模式解锁了全部原生凭证入口——直接把密钥传给对应交易所的构造器:
| 交易所 | 凭证类型 | 示例参数 |
|---|---|---|
| Polymarket / Limitless / Probable / Opinion | EVM 私钥 | private_key="0x..." |
| Kalshi | RSA 密钥对 | api_key_id+private_key_pem |
| Smarkets | 邮箱 + 密码 | email+password |
| Baozi | Solana 密钥对 | private_key="<base58>" |
import pmxt # Polymarket:EVM 私钥自管 poly = pmxt.Polymarket(private_key="0xYourPrivateKey...") order = poly.create_order( outcome=market.yes, side="buy", order_type="limit", price=0.42, amount=100, ) # Kalshi:RSA 私钥自管(完整获取流程见 [core/docs/SETUP_KALSHI.md](https://link.gitcode.com/i/49b3b951018a89f03e36d01a4e73a912)) kalshi = pmxt.Kalshi( api_key_id="...", private_key_pem="-----BEGIN RSA PRIVATE KEY-----\n...", ) # Smarkets:邮箱密码登录 smarkets = pmxt.Smarkets(email="you@example.com", password="...")以 Polymarket 为例,私钥从 MetaMask 导出的流程(截图来自 core/docs/SETUP_POLYMARKET.md):账户菜单 → Account Details → Reveal Private Key。
📌安全习惯:对使用资金管控私钥的交易所(Polymarket、Limitless、Probable、Opinion、Baozi),建议该钱包里只放当前实际交易的流动资金,私钥自管的最大收益就是把风险敞口降到最低。
Step 4:本地服务器生命周期管理
需要手动控制时,用 SDK 的server命名空间(TypeScript 实现见 sdks/typescript/pmxt/server-manager.ts):
import pmxt pmxt.server.start() # 启动(幂等,重复调用无副作用) pmxt.server.health() # 健康检查,返回 bool pmxt.server.status() # 结构化状态快照 pmxt.server.stop() # 停止 pmxt.server.restart() # 重启 pmxt.server.logs(20) # 查看最近 20 行日志大多数用户无需调用——创建交易所实例时会自动完成启动与监管。
Step 5:常用环境变量调优
| 变量 | 作用 |
|---|---|
PMXT_LOCAL_PORT=3847 | 覆盖本地服务端口(默认3847) |
PMXT_ALWAYS_RESTART=1 | 每次确保服务运行时强制重启,开发调试期很有用 |
PMXT_BASE_URL | 把 SDK 指向自定义服务器地址(高级用法) |
多交易所场景下无需额外配置:一个pmxt-core进程即可服务所有场地,多个客户端共享同一本地服务。
poly = pmxt.Polymarket(private_key="0x...") kalshi = pmxt.Kalshi(api_key_id="...", private_key_pem="...") # 两者复用同一个 http://localhost:3847 上的 pmxt-core 进程自部署模式的功能取舍(提前知道)
- 🔍Router 跨场地搜索:仍可跨场地交易匹配,但全目录搜索依赖托管目录,可另建一个带
pmxt_api_key的Router客户端与本地交易客户端并存; - 🧯错误体系:能捕获父级错误(
InvalidOrder、InsufficientFunds),只是少了几类托管细分错误,按父级捕获即可保持代码可移植。
常见问题速查
Q:本地服务器是常驻进程吗?默认不是——由 SDK 按需拉起并监管,进程随会话管理;生产环境若想要常驻,可将pmxt-core作为长期进程交给 systemd 托管(详见 core/docs 下的 Self-hosted 指南)。
Q:忘记配 API Key 会有影响吗?不会——正是"忘记"才触发自部署:无 key 即本地模式,有 key 即托管模式,SDK 自动路由。
Q:端口被占用怎么办?pmxt-core会调用 PortManager 从 3847 起自动寻找可用端口,并用锁文件(见 core/src/server/utils/lock-file.ts)避免多实例冲突,一般无需干预。
小结
| 步骤 | 动作 | 关键要点 |
|---|---|---|
| 1 | 安装 SDK | pip install pmxt/npm install pmxtjs |
| 2 | 无 key 构造客户端 | SDK 自动拉起本地pmxt-core |
| 3 | 传入原生凭证 | 私钥自管,全程不出本机 |
| 4 | pmxt.server.* | 启动/停止/重启/日志 |
| 5 | 环境变量 | 端口、强制重启、自定义地址 |
更多官方文档可参考:docs/guides/self-hosted.mdx、docs/sdk/server.mdx、docs/authentication.mdx。
【免费下载链接】pmxtCCXT for prediction markets. PMXT is a unified API for trading on Polymarket, Kalshi, and more.项目地址: https://gitcode.com/gh_mirrors/pm/pmxt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考