Bot 7 min read

Copy Trade Bot Polymarket - How the Mechanics Work

Lauri Korhonen
April 15, 2026
7 min read
Updated Apr 15, 2026

A copy trade bot on Polymarket is a system that detects when a followed wallet places a trade and automatically mirrors that trade in your account in real time. This article covers the full mechanics — how signal detection works, what the risk layer does, how orders are scaled proportionally, and what fill deviation means for how much of the copied signal's value you actually capture.

Signal Detection

The first stage of any copy trade bot is detecting when a followed wallet places a trade. Two fundamentally different methods exist:

WebSocket Connection (Recommended)

A WebSocket maintains a persistent, open connection to Polymarket's on-chain event stream. When a followed wallet broadcasts a transaction, the WebSocket delivers the event within ~100ms of blockchain confirmation. There's no polling interval — the bot receives the signal as soon as the event is broadcast. This is the only approach capable of achieving sub-500ms end-to-end execution.

HTTP Polling (Inferior)

HTTP polling queries Polymarket's API at fixed intervals — every 5, 10, or 30 seconds — checking whether any followed wallets have made new trades since the last check. The median delay is half the polling interval: a 10-second polling bot introduces an average 5-second delay on every signal. On fast-moving markets, this delay translates directly to worse fill prices.

Detection Latency Comparison

WebSocket detection: ~100ms average signal receipt. 10-second HTTP polling: ~5,000ms average signal receipt. That's a 50× difference. In a market that moves 1% per second after a signal, this is the difference between entering 0.1% after the followed wallet and entering 5%+ after — before your order even reaches the chain.

The Risk Layer

Every incoming signal from a followed wallet passes through the risk layer before any order is constructed. The risk layer applies your configured rules in sequence:

  1. Per-wallet cap check — is the mirror trade within the allowed USDC amount for this wallet? If not, discard.
  2. Category exclusion check — is this market in an excluded category? If so, discard.
  3. Liquidity minimum check — does this market's order book have sufficient depth to fill your order without excessive slippage? If not, discard.
  4. Portfolio exposure check — is the total open mirror position count at the configured maximum? If so, queue the signal until a position closes.

Signals that fail any check are discarded and logged. You can review filtered signals in the dashboard to understand what's being blocked and adjust your configuration accordingly. The risk layer runs in under 10ms — it adds negligible latency to the execution pipeline.

Order Construction and Scaling

When a signal passes the risk layer, the bot constructs a proportionally scaled mirror order. The scaling logic:

  1. Determine the original wallet's position: USDC amount and fill price
  2. Calculate share count the original wallet purchased: USDC ÷ fill price
  3. Determine your mirror size: min(per-wallet-cap, original_usdc × scale_factor)
  4. Construct your order for the proportional share count at market price

Example: Followed wallet places $800 at 55¢ YES (buying ~1,454 shares). Your per-wallet cap is $160 (20% of their size). Your bot constructs an order for ~291 shares at market. If the market has moved to 56¢ by the time your order reaches the chain, you buy 291 shares at 56¢ — a 1.8% fill deviation from the original wallet's entry.

Execution and On-Chain Broadcast

After order construction, the execution pipeline:

  1. Order signing — the order is signed using your delegated operator key (trade-only, zero withdrawal capability)
  2. Submission to CLOB — signed order submitted to Polymarket's Central Limit Order Book
  3. On-chain broadcast — CLOB routes the order to Polygon; transaction broadcast to the network
  4. Confirmation receipt — on-chain confirmation received; trade logged with fill price, fill deviation, and latency metrics

The Polygon network's transaction confirmation typically takes 200-300ms under normal load conditions. This is the dominant factor in total end-to-end latency — the signal processing, risk layer, and order construction stages together add roughly 50ms. Total: ~300-400ms on optimized infrastructure.

340ms Average. 1.2% Fill Deviation. 99.92% Uptime.

Polycopybot.app's numbers are documented, not marketing claims. WebSocket detection, full risk layer, delegated API execution.

Open Dashboard

Fill Deviation Explained

Fill deviation is the percentage difference between your fill price and the original wallet's fill price on the same trade. It's the single most important performance metric for evaluating a copy trade bot:

  • Fill deviation = 0%: you entered at exactly the same price as the followed wallet. Theoretically ideal, practically unachievable.
  • Fill deviation = 1-2%: your fill is 1-2% worse than the followed wallet's. You captured ~98-99% of the signal's entry price quality. Achievable with sub-500ms execution on normal market conditions.
  • Fill deviation = 5-10%: you entered significantly worse. You're capturing 90-95% of the signal's entry price quality — acceptable but degraded.
  • Fill deviation = 20%+: the copied wallet's edge is being substantially eroded before you even have a position. Manual copying in fast-moving markets routinely produces this range.

Fast Bot vs. Slow Bot

MetricFast Bot (WebSocket, <500ms)Slow Bot (HTTP polling, 5-30s)
Signal detection~100ms~5,000ms average
End-to-end latency300-500ms5,000-30,000ms
Fill deviation (normal markets)1-3%5-20%+
Fill deviation (fast-moving markets)2-5%20-50%+
Off-hours coverageFull 24/7Full 24/7
Infrastructure requirementOptimized VPS or hosted serviceBasic VPS

Polycopybot.app's Numbers

Polycopybot.app's documented execution metrics across all trades on the platform:

  • Average end-to-end latency: 340ms (WebSocket receipt to on-chain confirmation)
  • Average fill deviation: 1.2% across all trades
  • Signal detection latency: ~100ms via persistent WebSocket
  • Node failover time: sub-80ms (Frankfurt → Singapore automatic)
  • Platform uptime (12 months): 99.92%

For the full architectural breakdown, see our Polymarket copy trading bot Polycopybot.app guide.

Frequently Asked Questions
How does a copy trade bot detect trades on Polymarket?

Via persistent WebSocket connection to the on-chain event stream — receiving new wallet transactions within ~100ms of blockchain confirmation. HTTP polling checks at fixed intervals and introduces delays of up to the full polling period on every signal. WebSocket is the only approach capable of sub-500ms end-to-end execution.

How does proportional scaling work?

The bot determines the original wallet's USDC amount and fill price, calculates the share count they purchased, then constructs your mirror order for a proportionally scaled share count — bounded by your per-wallet cap. The scaling is automatic; you set the cap and the bot handles the math on each trade.

What is fill deviation and why does it matter?

The percentage difference between your fill price and the original wallet's fill price. It's the per-trade cost of execution lag. At 340ms latency, Polycopybot.app averages 1.2% fill deviation — you capture ~99% of the followed wallet's entry price quality. At 10-second polling latency, fill deviation on fast markets can reach 20%+.

What does the risk layer do?

Evaluates every signal against your configured rules before any order is placed: per-wallet position cap, category exclusions, liquidity minimum, portfolio exposure limit. Signals failing any check are discarded and logged. The risk layer runs in under 10ms and adds negligible latency to the execution pipeline.

What is Polycopybot.app's end-to-end latency?

340ms average from WebSocket signal receipt to on-chain broadcast confirmation. This includes signal processing (~10ms), risk layer (~5ms), order construction (~15ms), signing (~20ms), and Polygon broadcast + confirmation (~280ms). Infrastructure runs on dual nodes in Frankfurt and Singapore with sub-80ms failover.

Lauri Korhonen
Co-founder & CTO, Polycopybot.app

Led infrastructure engineering at Wolt before co-founding Polycopybot.app. Architect of the sub-500ms execution layer and the neural scoring pipeline. Specializes in distributed systems, WebSocket-based real-time data pipelines, and on-chain trade execution optimization.