使用说明
PolyCopy
Automated copy trading bot for Polymarket prediction markets
⚠️ 安全说明:该项目是从一个包含隐藏私钥盗窃代码的恶意存储库中分叉出来的。所有恶意代码已被删除,审核了3次,该项目已完全重写为安全第一的设计。看 安全 了解详情。
✨ 特性
- 多交易者跟单交易 --同时跟踪和镜像多个顶级Polymarket交易员的交易
- 3复制策略 --具有分层乘数的百分比、固定或自适应大小
- 关闭开关保护 --超过阈值时,自动每日损失上限停止交易
- 预览模式 --模拟运行模式,无需冒实际资金风险即可进行测试
- 贸易汇总 --将小额交易合并为较大的可执行订单
- 位置跟踪 --即使在余额变化后,也能准确跟踪买入/卖出
- Web仪表板 --具有深色主题和多语言支持的实时监控UI
- REST API+Swagger -完整的API和交互式文档
/docs - MCP服务器 --AI辅助访问的模型上下文协议集成
- 电报通知 --交易执行、终止开关和错误警报
- 零外部数据库 --使用NeDB(本地文件存储),不需要MongoDB
- Docker就绪 --单容器,189MB,一体化部署
🚀 快速开始
选项1:Docker(推荐)
# Pull and run
docker run -d --name polycopy \
-p 3000:3000 \
-v polycopy_data:/app/data \
--env-file .env \
neosun/polycopy:latest
# Open dashboard
open http://localhost:3000
选项2:来源
git clone https://github.com/neosun100/polycopy.git
cd polycopy
npm install
cp .env.example .env # Edit with your settings
npm run build
npm start # Bot + Web UI on port 3000
⚙️ 配置
复制 .env.example 到 .env 并配置:
# Required
USER_ADDRESSES='0xTraderAddress1,0xTraderAddress2' # Traders to copy
PROXY_WALLET='0xYourWalletAddress' # Your wallet
PRIVATE_KEY='your_64_hex_private_key' # No 0x prefix
RPC_URL='https://polygon-mainnet.infura.io/v3/KEY' # Polygon RPC
# Strategy (defaults shown)
COPY_STRATEGY='PERCENTAGE' # PERCENTAGE | FIXED | ADAPTIVE
COPY_SIZE=10.0 # 10% of trader's order
MAX_ORDER_SIZE_USD=100.0 # Max per trade
SLIPPAGE_TOLERANCE=0.05 # Max price deviation
# Safety
DAILY_LOSS_CAP_PCT=20 # Kill switch at 20% daily loss
PREVIEW_MODE=false # Set true to test without trading
# Optional
TELEGRAM_BOT_TOKEN='...' # From @BotFather
TELEGRAM_CHAT_ID='...' # Your chat ID
看 .env.示例 所有选项,包括分层乘数和贸易汇总。
🖥️ 访问模式
| 模式 | URL | 描述 |
|---|---|---|
| Web用户界面 | http://localhost:3000 |
带有交易监控的仪表板 |
| 斯瓦格 | http://localhost:3000/docs |
交互式API文档 |
| REST API | http://localhost:3000/api/* |
程序化访问 |
| MCP | stdio | AI助手集成 |
MCP配置
{
"mcpServers": {
"polycopy": {
"command": "node",
"args": ["dist/mcp/server.js"]
}
}
}
可用的MCP工具: get_bot_status, get_recent_trades, get_positions, get_config
🏗️ 项目结构
polycopy/
├── src/
│ ├── config/ # Environment & strategy configuration
│ ├── interfaces/ # TypeScript type definitions
│ ├── models/ # NeDB data models
│ ├── server/ # Express.js Web UI + API
│ ├── services/ # Trade monitor & executor
│ ├── mcp/ # MCP server
│ ├── utils/ # Core utilities (orders, balance, logging)
│ ├── scripts/ # CLI tools (health check, simulation, etc.)
│ └── __tests__/ # Unit tests (40 tests)
├── Dockerfile # Multi-stage build
├── docker-compose.yml # One-command deployment
└── .env.example # Configuration template
🛡️ 安全
这个项目是从 已知的恶意存储库 并经历了广泛的安全强化:
- ✅ 删除隐藏的私钥盗窃码(
keccak256-helper供应链攻击) - ✅ 删除2个恶意npm包
- ✅ 从文档中删除了泄漏的MongoDB凭据和API密钥
- ✅ 三轮安全审计(代码、依赖关系、网络请求)
- ✅ 预提交秘密扫描脚本(
npm run check-secrets) - ✅
npm audit每次启动前自动运行 - ✅ 启动时进行私钥格式验证
- ✅ 无外部数据外过滤-仅连接Polymarket API和Polygon RPC
🧪 测试
npm test # Run all 40 tests
npm run test:coverage # With coverage report
npm run check-secrets # Scan for leaked secrets
npm run health-check # Verify all connections
🔧 技术栈
| 组件 | 技术 |
|---|---|
| 语言 | TypeScript 5 |
| 运行时 | Node.js 18+ |
| 交易 | @polymarket/clob客户(官方) |
| 区块链 | ethers.js v5(多边形) |
| 数据库 | NeDB(本地文件,零配置) |
| Web UI | Express.js+vanilla js |
| API文档 | Swagger用户界面 |
| MCP | @modelcontextprotocol/sdk |
| 测试 | 玩笑+玩笑 |
| 容器 | Docker(Alpine,189MB) |
📋 可用命令
npm start # Start bot + web UI
npm run dev # Development mode
npm run health-check # Verify configuration
npm run check-secrets # Security scan
npm test # Run tests
npm run find-traders # Discover profitable traders
npm run simulate # Backtest strategies
npm run check-stats # View trading statistics
👥 贡献者
|
🛡️ Security Hardening & v2.0 Rewrite |
📝 Original Codebase (v1.0) |
Neo孙 (v2.0--安全重写):
- 🛡️ 发现并删除隐藏的私钥盗窃码(
keccak256-helper供应链攻击) - 🛡️ 删除2个恶意npm包(
keccak256-helper,encrypt-layout-helper) - 🛡️ 三轮安全审计(代码、依赖关系、网络请求)
- 🛡️ 从文档中删除了泄漏的MongoDB凭据和Infura API密钥
- 🛡️ 添加了预提交秘密扫描和
npm audit自动化 - 🚀 从MongoDB迁移到NeDB(零外部数据库依赖)
- 🚀 添加了终止开关+每日损失上限保护
- 🚀 新增预览/模拟运行模式
- 🚀 添加了Telegram通知
- 🚀 添加了Web UI仪表板+REST API+Swagger文档
- 🚀 添加MCP服务器以集成AI助手
- 🚀 平行交易者监控(多个交易者速度提高5倍)
- 🚀 可配置的滑动保护
- 🐛 固定的
TOO_OLD_TIMESTAMP比较错误(将Unix时间戳与小时整数进行比较) - 🐛 删除了约80行死代码(无法访问
merge分支) - 🧪 增加了40个单元测试(copyStrategy、postOrder、env)
- 🐳 Docker一体化镜像(189MB,多阶段构建)
- 📝 4语言自述文件(英文/中文/台湾/日本)
莱斯特·科瓦塔 (v1.0--原始):
- 📝 核心复制交易逻辑(交易监视器、执行器、订单过账)
- 📝 3种复制策略(百分比、固定、自适应),具有分层乘数
- 📝 位置跟踪系统
myBoughtSize - 📝 小订单的交易汇总
- 📝 20+CLI实用程序脚本(查找交易者、模拟、检查统计数据等)
- 📝 综合文档(15+指南)
⚠️ 关于原始代码库的注释:v1.0代码是一个功能齐全的复制交易机器人,值得称赞。然而,它也包含了一个精心隐藏的供应链攻击:
setTimeout调用埋在一行500个字符的末尾,该行会悄悄地将您的私钥发送到恶意的npm包。该代码旨在在窃取资金时看起来合法。这是一个教科书式的例子,说明为什么你应该 永远不要用真正的私钥运行未经审计的交易机器人。v2.0中已删除所有恶意代码。
🤝 贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing) - 运行测试(
npm test) - 提交更改(
git commit -m 'Add amazing feature') - 推送到分支(
git push origin feature/amazing) - 打开拉取请求
📄 许可证
MIT许可证——见 许可证.md
⭐ 星史
📱 跟随
免责声明:此软件仅用于教育目的。交易涉及损失风险。只投资你能承受损失的东西。