Skip to content

Repository files navigation

Polymarket Monitor

多账号聚合监控页 + Telegram 推送,开放协议——任何符合规范的 Polymarket 交易机器人都能接入。 image

功能

  • 网页统一展示多个交易机器人状态:余额、今日盈亏、持仓、胜率、策略状态、WS 健康度
  • 离线优先排序、超过 10 个账号自动分页
  • 一键打开所有账号管理页(新标签)
  • 网页内增删账号,无需改 JSON 重启
  • Telegram bot:发 /status 获取总览,按钮原地刷新
  • 协议开放:任何 bot 实现 /api/state?lite=1 即可接入

快速开始

1. 克隆 + 安装

git clone https://github.com/doge-8/polymarket-monitor.git
cd polymarket-monitor
npm install

需要 Node 20+。

2. 配置账号

accounts.json.example 复制为 accounts.json 后编辑,或启动后在网页"⚙ 管理"面板里加:

[
  { "name": "Alice", "port": 3456 },
  { "name": "Bob", "port": 3457 }
]

port 是各机器人 server 的端口。机器人运行在远程时用 SSH 隧道转发到本地端口。

3. 启动

npm start
# 或: ./start.sh

启动后自动打开浏览器http://localhost:8080(mac/Win/Linux 通用)。

环境变量:

  • MONITOR_PORT — 改监听端口(默认 8080)
  • MONITOR_NO_OPEN=1 — 禁用自动打开浏览器

如果默认端口被占用,会自动 +1 重试(最多 20 次),命令行会打印实际监听端口。

Telegram 配置(可选)

  1. @BotFather 创建 bot 拿 token
  2. 在 TG 里找你的 bot,发 /start
  3. 监控页右上角点 📡 TG,填 token → 点「↻ 抓取」自动获取 chat_id → 勾选启用 → 保存
  4. 在 TG 里发 /status 即可

支持命令:

  • /status 总览(带"🔄 刷新"按钮)
  • /d <账号名> 单账号详情
  • /help 帮助

给开发者:怎么让你的机器人接入

只需实现一个 HTTP 端点:

GET /api/state?lite=1

返回带这些字段的 JSON 即可(详细字段说明见 SPEC.md):

字段 类型 必填 含义
usdc number USDC 余额
accountName string 账号显示名
activeMarket.displayName string 推荐 当前市场名(如 "BTC 5m")
pmPnl.todayPnl number 推荐 今日盈亏
pmPnl.todayCount number 推荐 今日成交笔数
pmPnl.todayClosedCount number 推荐 今日已平仓数
pmPnl.todayWins number 推荐 今日盈利笔数
wsStatus object 推荐 上游 WS 连接状态
strategy.state string 策略状态机
lastTradeAt number 最近成交时间戳(ms)

完整规范、字段定义、错误约定、示例代码:

  • SPEC.md — 接入规范(人类可读)
  • SPEC.ai.md — AI 工具可读版(让 Claude/Cursor 直接看懂)

架构

┌─────────────────────────────────────────────┐
│ monitor-server.ts (本仓库)                   │
│  - 8080 端口提供 monitor.html                │
│  - 反代 /api/proxy?port=N → localhost:N      │
│  - TG bot 长轮询响应 /status /d 命令         │
│  - 维护 accounts.json + .tg-config.json      │
└─────────────────────────────────────────────┘
        ▲                              ▲
        │ HTTP                         │ HTTP/WS
        │                              │
   浏览器 / TG bot           各 Polymarket 机器人
                            (实现 /api/state?lite=1)

监控只读取,不向机器人写。每台机器各自维护交易逻辑。

FAQ

Q:连不上某账号? 显示「连接已断开」= 端口 unreachable。检查机器人是否在跑、SSH 隧道是否通。

Q:怎么连远程 VPS 上的机器人? 用本仓库自带的 tunnels/ 一键脚本(autossh 自动重连,支持密钥/密码),见 tunnels/README.md

或手动 ssh -L 3457:localhost:3456 user@vps 把远程端口转发到本地。

Q:账号配置文件在哪? 启动目录的 accounts.json。每次请求重读,无需重启。

Q:TG bot 不响应命令? 必须勾选「启用」+ 设置正确的 chat_id。陌生人发命令会被忽略。

Q:监控请求量大吗? 每个账号每 5 秒拉一次 /api/state?lite=1(lite 模式 ~5 KB),9 账号 ~45 KB / 5 秒。

协议

MIT

About

Multi-account monitor for Polymarket trading bots — open protocol any bot can integrate

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages