// PolyArb V4 — Complete Onboarding Guide

From Zero to
Live Trades
in 30 Minutes.

Everything you need to create your Polymarket account, fund your wallet, and get the bot trading BTC latency arbitrage — step by step.

4
Steps Total
30min
To First Trade
$10
Min. to Start
24/7
Bot Runs
START GUIDE ALREADY HAVE ACCOUNT
SCROLL

// Overview
How PolyArb Makes Money

Understanding the strategy in 30 seconds before you start.

Source
BINANCE
BTC price moves
Detection
IMPULSE
Sharp BTC move detected
Edge
LAG WINDOW
~600ms delay on Polymarket
Execution
BUY ORDER
Before market reprices
Result
PROFIT
Position closes in-the-money

THE EDGE

Polymarket reprices BTC options ~600ms after Binance moves. PolyArb detects the impulse on Binance and places an order before Polymarket catches up.

LATENCY ARBITRAGE
🎯

ZERO PREDICTION

The bot doesn't predict BTC direction. It exploits the time delay between two markets. Direction doesn't matter — speed does.

MARKET NEUTRAL
🛡️

RISK MANAGED

Built-in stop-loss, max daily loss, max position size, and automatic exit before market expiry. Fully automated risk controls.

AUTO RISK CONTROL

// Step 01
Create Your
Polymarket Account

Two ways to sign up. Both work. We'll explain the pros and cons of each — and which one is best for running the bot.

🦊

METAMASK SIGNUP

Connect an existing MetaMask wallet to Polymarket. Depending on how Polymarket handles your account, you may end up with the same address (Case B) or a different Smart Wallet address (Case C).

Use your existing crypto wallet
Full self-custody of funds
Case B: only ONE key needed in .env
MetaMask required + browser extension
Case C: same as email — two keys needed
More technical for beginners
CASE B OR C IN SETUP GUIDE
Not sure which case you are after signing up? Open SETUP-GUIDE.html from the bot folder — it asks you one question and shows you exactly which keys to find and where.

// Step 02
Fund Your
Polymarket Wallet

The bot trades with USDC on Polygon. Here are all the ways to get funds into your account — from simplest to most technical.

01

BUY USDC DIRECTLY ON POLYMARKET ⚡ EASIEST

Polymarket has a built-in onramp that lets you buy USDC directly with a credit/debit card or bank transfer. No crypto knowledge required. This is the fastest route for beginners.

polymarket.com your profile Deposit → Buy with card
USDC lands directly in your Polymarket account. No transfers, no bridging. The bot can use it immediately.

MINIMUM

$10

To test the bot

RECOMMENDED

$100+

For meaningful returns

OPTIMAL

$500+

Full risk config use

02

SEND USDC FROM AN EXCHANGE (Coinbase, Binance, Kraken…)

If you already have USDC on a centralized exchange, you can withdraw it directly to your Polymarket wallet address. Critical: always send on the Polygon network.

Always select "Polygon" (MATIC network) as the destination network when withdrawing. Sending on Ethereum mainnet will result in high fees and your USDC will not appear in the bot. Ethereum USDC is a different contract.
  • Go to your exchange withdrawal page Coinbase, Binance, Kraken, etc.
  • Select USDC as the asset Not USDT, not DAI — specifically USDC
  • Select Polygon as the network Also labeled as MATIC, Polygon PoS, or Polygon (ERC-20)
  • Paste your Polymarket wallet address Found in Polymarket → Settings → Profile → Address
  • Send and wait ~2 minutes for confirmation Polygon is fast and cheap (<$0.01 gas)
03

BRIDGE FROM ETHEREUM (Advanced)

If you have USDC on Ethereum mainnet, you can bridge it to Polygon using the official Polygon bridge or a third-party bridge like Across Protocol.

portal.polygon.technology Bridge → USDC → Polygon
Bridging requires ETH for gas on mainnet. This can cost $5–20 in fees. Only use this method if you specifically have USDC on Ethereum and no other option.
04

GET POL FOR GAS FEES (Required)

The bot's signer wallet needs a small amount of POL (Polygon's native token) to pay for transaction gas fees. Without it, orders cannot be submitted to the blockchain.

You need at least 0.1 POL in your signer wallet. This is separate from your USDC trading funds. POL is cheap (~$0.40 for 1 POL). Your wallet check will warn you if POL is too low.

OPTION A — Buy POL on exchange

Buy POL/MATIC on Binance or Coinbase, then withdraw to your signer address on Polygon network.

OPTION B — Swap on Uniswap

Go to app.uniswap.org on Polygon, swap a tiny amount of USDC for POL. Costs <$0.50 total.

Your signer wallet is the address derived from your POLY_PRIVATE_KEY. It's shown in the wallet check output as "Signer". Your USDC stays in the funder wallet. The signer just needs POL for gas.

// Step 03
Configure
The Bot

You have your account and funds. Now configure the .env file — the only thing you need to edit.

01

OPEN THE SETUP GUIDE

Double-click START.bat. On first run, the interactive setup guide opens automatically in your browser. It identifies your account type and shows you exactly where to find each key.

Double-click START.bat SETUP-GUIDE.html opens automatically
02

FILL IN YOUR .ENV

The launcher opens Notepad with your .env file. Fill in the two required wallet fields based on your account type. Everything else has sensible defaults and can be left as-is to start.

# ── REQUIRED ─────────────────────────────────
POLY_PRIVATE_KEY=0xYourL2PrivateKey POLY_FUNDER_ADDRESS=0xYourPolymarketAddress
# ── OPTIONAL — adjust as you grow ────────────
INITIAL_CAPITAL=1000
MAX_POSITION=50
MIN_POSITION=2
MAX_DAILY_LOSS=200
MAX_DAILY_TRADES=200
Set INITIAL_CAPITAL to your actual deposit amount. This is used for drawdown calculations and position sizing. If you deposit $100, set it to 100.
03

RUN WALLET CHECK — OPTION 1

From the launcher menu, choose option 1 to run a full diagnostic. This verifies your keys, balance, auth, and available markets.

GOOD SIGNS

✓ Connected to Polygon
✓ Balance OK: XX.XX USDC
✓ X active BTC markets found

IGNORE THIS

✗ L1/L2 auth failed

This is NOT a blocker. Orders still execute normally via L1 headers.

FIX THESE

✗ 0 USDC on funder
✗ RPC connection failed
✗ Invalid private key


// Step 04
Launch the Bot
& Monitor It

Everything is set. Here's what to do when the bot is running.

01

START — OPTION 2 FROM LAUNCHER

Choose option 2 from the START.bat menu. The bot will connect to Binance, fetch active BTC markets on Polymarket, and start scanning for impulse signals.

You should see: "Bot running. Press Ctrl+C to stop." — followed by a live stream of Binance ticks. This is normal. The bot is listening.
02

OPEN THE DASHBOARD

From the launcher menu, choose option 3, or open dashboard.html manually in your browser. The dashboard shows live BTC price, signals detected, open positions, PnL, and lag stats.

LIVE PRICE

Real-time BTC/USDT from Binance WebSocket

SIGNALS

Every impulse detected with magnitude + velocity

LAG TRACKER

Measured delay between Binance and Polymarket repricing

03

WHAT TO EXPECT FIRST 24 HOURS

The bot is conservative by design. Not every signal triggers a trade — the risk manager filters for quality setups only.

  • Signals fire every few minutes ⚡ IMPULSE UP/DOWN lines in the log — this is normal, just detection events
  • Trades execute only when edge exists The bot checks: is the market still stale? Is there sufficient liquidity? Risk limits OK?
  • 0 active markets = no trades yet Polymarket BTC markets don't always exist. The bot retries every 30 seconds automatically.
  • Positions auto-close before expiry The bot exits 45 seconds before each market expires — hands free.
04

STOP AND RESTART SAFELY

Press Ctrl+C at any time. The bot will close all open positions gracefully before shutting down. Never kill the terminal window directly — always use Ctrl+C.

If the bot crashes or is force-closed with open positions, those positions remain on Polymarket until expiry. They may still resolve in-the-money, but you lose the ability to exit early. Always use Ctrl+C.

Key .env Parameters
Explained

The defaults are conservative. Once you understand how the bot trades, tweak these to match your style.

INITIAL_CAPITAL

Your total deposit in USDC. Used to calculate drawdown limits. Set this to your actual balance — not what you plan to deposit.

DEFAULT: 1000

MAX_POSITION

Maximum USDC per single trade. Keep this small to start ($10–50). Larger positions amplify both gains and losses.

DEFAULT: 50

MAX_DAILY_LOSS

Bot stops trading for the day if total daily loss hits this amount. Hard circuit breaker. Set it to ~20% of your capital.

DEFAULT: 200

MAX_DAILY_TRADES

Maximum number of trades per 24h. Prevents the bot from over-trading during high-volatility sessions.

DEFAULT: 200

MIN_POSITION

Minimum trade size. Positions smaller than this are skipped. Keeps you above Polymarket's minimum order value.

DEFAULT: 2

MAX_CONCURRENT

Maximum open positions at the same time. Start with 3–5. Too many simultaneous positions increases capital lock-up risk.

DEFAULT: 5
Suggested starter config for a $100 account:
INITIAL_CAPITAL=100  |  MAX_POSITION=10  |  MIN_POSITION=2  |  MAX_DAILY_LOSS=20  |  MAX_CONCURRENT=3

// FAQ
Common Questions
Why does the bot say "0 active BTC markets"?
Polymarket BTC markets don't exist 24/7 — they are created periodically with short expiry windows. If no BTC market is currently active, the bot shows 0 and retries every 30 seconds. This is normal behavior, not an error. Markets appear more frequently during high-volatility periods.
What does "L1/L2 auth failed" mean? Is it a problem?
No — it is not a problem. It means the optional API key (used for higher rate limits) could not be generated. The bot falls back to L1 header authentication, which is sufficient for all order operations. As long as you see a wallet balance and "Bot running", you are trading normally.
Do I need to leave my computer on 24/7?
Yes, the bot needs to run continuously to catch signals. If you want it to run unattended, consider running it on a VPS (Virtual Private Server). A basic VPS on DigitalOcean, Hetzner, or AWS costs $5–10/month and lets the bot run 24/7 without your computer. Windows VPS works fine with the START.bat launcher.
How much USDC do I need to start?
The technical minimum is $2 (MIN_POSITION default). In practice, $50–100 is the recommended starting point to observe meaningful results. The default config is tuned for $500–1000, so if you start smaller, reduce MAX_POSITION and MAX_DAILY_LOSS proportionally.
What is the difference between the signer wallet and the funder wallet?
The funder wallet (POLY_FUNDER_ADDRESS) is where your USDC lives — your Polymarket profile address. The signer wallet is derived from your POLY_PRIVATE_KEY and is the L2 trading key that signs orders. In Smart Wallet mode (email / MetaMask sub-wallet), these are two different addresses. The signer needs a small amount of POL for gas. The funder holds your USDC capital.
Is this legal? Is Polymarket available in my country?
Polymarket is a decentralized prediction market. Access and legality varies by jurisdiction. Polymarket is not available to users in the United States and certain other countries. It is your responsibility to verify that using Polymarket complies with the laws in your country. This bot is a technical tool — it does not constitute financial advice.
Can I lose my entire deposit?
Yes. Trading always involves risk of loss. The bot has built-in risk controls (stop-loss, max daily loss, drawdown limit) but these do not guarantee profitability. Latency arbitrage depends on consistently detecting and executing before the market reprices — if network conditions are poor, or if the edge disappears, trades may not be profitable. Never deploy capital you cannot afford to lose.

Ready to
Start Trading?

You have everything you need. Create your account, fund it, run the bot. The rest is automatic.

OPEN POLYMARKET BOT SETUP GUIDE
Not financial advice. Trading prediction markets involves substantial risk. Past performance is not indicative of future results. Only trade with capital you can afford to lose entirely.