
Polymarket Copy Trading Bot
Configure and run a TypeScript Polymarket monitor that mirrors target-wallet BUY trades through the CLOB API on Polygon with sizing and session caps.
Overview
Polymarket Copy Trading Bot is an agent skill for the Build phase that helps you configure a TypeScript bot to monitor a Polymarket wallet and mirror BUY orders via the CLOB API on Polygon.
Install
npx skills add https://github.com/aradotso/trending-skills --skill polymarket-copy-trading-botWhat is this skill?
- Monitors a target wallet via Polymarket Data API (~2s REST) and optional WebSocket
- Mirrors BUY trades only; SELL detection skipped by default
- POSITION_MULTIPLIER default 10% with min/max notional caps and per-session/per-market limits
- Order types FOK, FAK, or LIMIT via Polymarket CLOB client on Polygon mainnet
- Three auth modes: EOA SIG_TYPE=0, Poly Proxy SIG_TYPE=1, Poly Polymorphic SIG_TYPE=2
- REST polling approximately every 2 seconds
- Default POSITION_MULTIPLIER 10%
- Three SIG_TYPE auth modes (0, 1, 2)
Adoption & trust: 700 installs on skills.sh; 31 GitHub stars; 0/3 security scanners passed (skills.sh audits).
What problem does it solve?
You want to follow a Polymarket wallet’s buys in real time without manually watching markets and re-entering every trade.
Who is it for?
Advanced indie builders automating Polymarket execution on Polygon who already understand prediction-market risk and key management.
Skip if: Beginners seeking guaranteed returns, copy-trading without private keys, or workflows that need SELL mirroring out of the box.
When should I use this skill?
set up polymarket copy trading bot; mirror polymarket trades; copy trade polymarket wallet; polymarket clob order bot; automate polymarket buying from target wallet
What do I get? / Deliverables
You get a configured bot that polls or streams target trades, sizes mirrored BUYs under caps, and submits CLOB orders with your chosen auth and order type.
- .env configuration for CLOB client
- Running monitor process with capped BUY mirroring
- Documented order type and auth mode choice
Recommended Skills
Journey fit
Canonical shelf is Build backend because the skill is implementation and env configuration for a long-running trading mirror bot—not distribution or portfolio research alone. Backend subphase fits REST/WebSocket monitoring, CLOB order submission, auth modes (EOA, Poly Proxy, Polymorphic), and risk limit enforcement in TypeScript.
How it compares
Use instead of manual CLOB clicking when you need scripted BUY mirroring—not as a research-only market screen or a hosted exchange SaaS.
Common Questions / FAQ
Who is polymarket-copy-trading-bot for?
Solo developers comfortable with TypeScript, Polygon wallets, and Polymarket CLOB APIs who want agent-guided setup for a copy-trading monitor bot.
When should I use polymarket-copy-trading-bot?
During Build backend work when wiring environment variables, auth modes, POSITION_MULTIPLIER caps, and REST/WebSocket monitoring before you run the bot on mainnet.
Is polymarket-copy-trading-bot safe to install?
It requires mainnet keys and live order submission; review the Security Audits panel on this page, never commit secrets, and dry-run with minimal caps before unattended operation.
SKILL.md
READMESKILL.md - Polymarket Copy Trading Bot
# Polymarket Copy Trading Bot > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. A TypeScript bot that continuously monitors a target Polymarket wallet, detects trades in real time via REST polling and/or WebSocket, and mirrors BUY orders to your own account using the Polymarket CLOB SDK on Polygon mainnet. --- ## What It Does - **Monitors** a target wallet via Polymarket Data API (REST polling every ~2s) and optionally WebSocket - **Mirrors BUY trades only** — SELL trades are detected but skipped by default - **Sizes copies** using a configurable `POSITION_MULTIPLIER` (default 10%) with min/max caps - **Submits orders** as FOK, FAK, or LIMIT via the Polymarket CLOB client - **Enforces risk limits** — per-session and per-market notional caps - **Supports three auth modes** — EOA (`SIG_TYPE=0`), Poly Proxy (`SIG_TYPE=1`), Poly Polymorphic (`SIG_TYPE=2`) --- ## Installation ```bash git clone https://github.com/Neron888/Polymarket-copy-trading-bot.git cd Polymarket-copy-trading-bot npm install ``` Requires Node.js v18+. The CLOB SDK requires **ethers v5** (already pinned in `package.json`). --- ## Configuration ```bash cp .env.example .env ``` Edit `.env`: ```env # Required TARGET_WALLET=0xTargetWalletAddressToMonitor WALLET_PRIVATE_KEY=0xYourPrivateKey RPC_URL=https://your-quicknode-polygon-endpoint.quiknode.pro/your-key/ # Auth mode (0=EOA default, 1=Poly Proxy, 2=Poly Polymorphic) SIG_TYPE=0 # Required only for SIG_TYPE=1 or 2 PROXY_WALLET_ADDRESS= # Sizing POSITION_MULTIPLIER=0.1 # 10% of target's trade size MAX_TRADE_SIZE=100 # Max USDC per copied trade MIN_TRADE_SIZE=1 # Min USDC per copied trade # Order behavior ORDER_TYPE=FOK # FOK | FAK | LIMIT SLIPPAGE_TOLERANCE=0.02 # 2% # Risk caps (0 = disabled) MAX_SESSION_NOTIONAL=500 # Total USDC for entire session MAX_PER_MARKET_NOTIONAL=100 # Per market USDC cap # Monitoring USE_WEBSOCKET=true POLL_INTERVAL=2000 # ms between REST polls USE_USER_CHANNEL=false # true = user WS channel, false = market channel # Optional POLYMARKET_GEO_TOKEN= WS_ASSET_IDS= # comma-separated asset IDs for market WS WS_MARKET_IDS= # comma-separated condition IDs for user channel MIN_PRIORITY_FEE_GWEI=30 MIN_MAX_FEE_GWEI=60 ``` --- ## Key Commands ```bash # Start the bot (development mode with ts-node) npm start # Generate and persist API credentials to .polymarket-api-creds npm run generate-api-creds # Validate existing API credentials npm run test-api-creds # Compile TypeScript to dist/ npm run build # Run compiled production build npm run start:prod ``` --- ## Architecture Overview ``` index.ts └── TradeMonitor — REST polls Polymarket Data API for new target trades └── WebSocketMonitor — Optional low-latency WS subscription (market or user channel) └── TradeExecutor — Sizes trade, checks balance/allowance, submits CLOB order └── PositionTracker — In-memory positions updated on fills └── RiskManager — Session + per-market notional enforcement ``` Execution flow: ``` detect trade → BUY? → subscribe WS if needed → compute copy size → risk check → execute order (FOK/FAK/LIMIT) → record fill → update stats ``` --- ## Code Examples ### Starting the bot programmatically ```typescript import { startBot } from './src/index'; // The bot reads all config from process.env / .env startBot(); ``` ### TradeMonitor — poll