Agent Dojo / PM-02 Arb Scanner Setup
Free Guide

Set Up Your Polymarket Arbitrage Scanner

A step-by-step walkthrough for the cross-platform arb scanner. Monitors Polymarket + Kalshi simultaneously, calculates profit after fees, and alerts you the moment a real opportunity opens. Zero directional risk required.

📖 6 chapters⏱ 30 min setup✅ No coding required💰 Zero risk per trade
Chapter 01

What the Arb Scanner Does

PM-02 watches Polymarket and Kalshi simultaneously, every 3 minutes. When the same event is priced differently across platforms — and the gap is large enough to profit after fees — it fires a Telegram alert with exactly what to buy on which platform.

With AUTO_EXECUTE=true it places both legs simultaneously, locking in the profit before the window closes.

  • 1

    Every 3 minutes

    Fetches all active markets from both Polymarket and Kalshi. Uses fuzzy AI matching to find the same event on both platforms.

  • 2

    Calculates net profit after fees

    Accounts for Polymarket's ~2% maker fee and Kalshi's 7% profit fee. Only alerts on opportunities where net profit > your minimum (default 3¢).

  • 3

    Fires Telegram alert

    Tells you exactly: buy YES on [platform] @ [price] + buy NO on [platform] @ [price]. Net profit: $X on $Y deployed.

  • 4

    Optional auto-execute

    Places both legs simultaneously the moment the arb is detected. No manual action needed.

Key difference from PM-01: PM-02 doesn't care what happens. Fed cuts or doesn't cut — you profit either way. It's purely mechanical. The only question is whether the spread is wide enough after fees.
Chapter 02

What You Need

Accounts

  • Polymarket account with USDC funded — same as PM-01
  • Kalshi account with USD funded — kalshi.com (US-regulated, takes 5 min)
  • Telegram bot — same bot as PM-01 if you have it

Capital strategy

Unlike PM-01, arb requires capital on both platforms simultaneously. Split your capital between Polymarket and Kalshi. The scanner handles one side on each per arb.

Kalshi funding: Kalshi uses USD (not USDC). Fund via bank transfer or debit card. Minimum $10 to open an account. Recommended starting capital: $200-500 per platform side for meaningful arb sizes.
Chapter 03

Install & Configure

Unzip PM-02 and run the setup wizard:

cd pm-02-arb-scanner
python3 setup.py

The wizard will ask for:

  • Polymarket API Key, Secret, Passphrase, Private Key, Wallet address
  • Kalshi API key — get from kalshi.com → Account → API Keys
  • Telegram bot token + chat ID
  • MIN_SPREAD — minimum net profit to alert (recommend 0.03)
  • MAX_ARB_POSITION — max $ per side per arb (recommend 100-500)
  • AUTO_EXECUTE — true/false (start false, go true when comfortable)
Kalshi API key: Log into kalshi.com → click your name → API Keys → Generate Key. Copy it immediately — you can't retrieve it again.
Chapter 04

Test Your Connection

python3 src/test_connection.py

Expected output:

✓ Polymarket public API reachable
✓ CLOB API key valid
✓ Kalshi API key valid and markets reachable
✓ Telegram message sent — check your phone!
✓ POLYMARKET_API_KEY is set
✓ KALSHI_API_KEY is set

All checks passed. Ready to scan for arbs.
Kalshi 401? Your API key is wrong or expired. Go back to kalshi.com → API Keys → generate a new one. Make sure there are no spaces around it in your .env file.
Chapter 05

Dry Run — Watch It Find Arbs

python3 src/arb_scanner.py --dry-run

You'll see the scanner working in real time:

[CYCLE 1] 00:14:22
Fetching Polymarket... 187 markets
Fetching Kalshi... 143 markets
Matching markets... 31 pairs found

[DRY RUN] ARB FOUND
Polymarket: Will Fed cut 25bps? → YES @ 44¢
Kalshi:     Will Fed cut 25bps? → YES @ 37¢

Action: BUY YES on Kalshi @ 37¢ + BUY NO on Polymarket @ 56¢
Spread: 7¢ | Net profit after fees: $55 on $1000
Match score: 0.91

→ Would execute (dry run — skipped)

Next scan in 3 min.
No arbs in first few cycles? Completely normal. Arbs appear 2-8x per day on average, more on news days. The scanner is working — it's just being selective. Check back after a few hours or watch on a Fed/election day for peak action.
Chapter 06

Go Live + 24/7 Daemon

Drop the dry-run flag:

python3 src/arb_scanner.py

Install the 24/7 background service:

./scripts/setup_launchd.sh

Monitor the log:

tail -f /tmp/arb_scanner.log
Best days to watch: Fed decision days, election days, major economic data releases. Spreads can hit 15-25¢ when platforms reprice at different speeds. Those are your biggest paydays.
Running PM-01 too? You're now printing from two angles.

PM-01 takes directional positions with edge. PM-02 takes zero-risk arb positions. Independent profit streams, same platform.

GET THE BUNDLE — $597 →