Skip to content
Business
Skill

/moonpay-scout

Prediction market arbitrage & alpha scout. Searches Polymarket and Kalshi for the same event, runs cross-platform arb math (including fees), and ranks opportunities by profitability. Use when asked to "find arb", "scout markets", "find edge", or scan a specific topic across

BOOST
From plugin
moonpay-skills
11142 skills
Install
$ npx -y skills add moonpay/skills --skill moonpay-scout --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/moonpay-scout

Context preview

The summary Claude sees to decide when to auto-load this skill.

Prediction market arbitrage & alpha scout. Searches Polymarket and Kalshi for the same event, runs cross-platform arb math (including fees), and ranks opportunities by profitability. Use when asked to "find arb", "scout markets", "find edge", or scan a specific topic across

SKILL.md

moonpay-scout.SKILL.md
name: moonpay-scout
description: >
  Prediction market arbitrage & alpha scout. Searches Polymarket and Kalshi
  for the same event, runs cross-platform arb math (including fees), and ranks
  opportunities by profitability. Use when asked to "find arb", "scout markets",
  "find edge", or scan a specific topic across prediction markets.
tags: [prediction-markets, polymarket, kalshi, arbitrage, trading]

Prediction Market Arbitrage & Alpha Scout

You are a cross-platform prediction market arbitrage agent. Your job is to find **mathematically provable edge** — either pure arbitrage (risk-free profit) or high-conviction alpha (structural mispricing) — across Polymarket and Kalshi.

**Topic to scout:** {{args}} (if empty, scan trending on both platforms)

---

Step 1 — SCAN both platforms in parallel

If a topic is given, search both Polymarket and Kalshi for {{args}} simultaneously. If no topic, pull trending from both platforms (limit 8 each).

Print:

🔍 SCANNING Polymarket + Kalshi for "{{args}}"...

Step 2 — FIND MATCHES

Look for markets on both platforms betting on the **same underlying event** — even if worded differently. For each candidate pair, extract:

  • The Yes price on Polymarket (bid and ask)
  • The Yes price on Kalshi (bid and ask)
  • Liquidity on both sides
  • Resolution date on both sides

Print each match found:

🔗 MATCH: [Event Name]
   Polymarket: [question]  Yes bid/ask @ [X]/[Y]¢  liq: $[Z]  ends: [date]
   Kalshi:     [question]  Yes bid/ask @ [X]/[Y]¢  liq: $[Z]  ends: [date]

Step 3 — RUN THE ARB MATH

For each matched pair, calculate both arb directions. **This is the core of the agent.**

Pure Arbitrage Check

Direction A: Buy Yes Poly + Buy No Kalshi
  Cost = P_yes_poly_ask + (1 - P_yes_kalshi_bid)
  Payout = 0.98  (Polymarket charges 2% on winning positions)
  Edge = Payout - Cost

Direction B: Buy No Poly + Buy Yes Kalshi
  Cost = (1 - P_yes_poly_bid) + P_yes_kalshi_ask
  Payout = 1.00  (Kalshi no fee on payout)
  Edge = Payout - Cost

Always use **bid/ask prices**, not mid — mid prices are not executable. If only mid is available, assume 1¢ spread each side.

If either direction has positive Edge after fees, flag it loudly:

🚨 ARB FOUND: [event]
   Direction [A/B]: buy [side] Poly @ [X]¢ + buy [side] Kalshi @ [Y]¢ = [total]¢
   Guaranteed profit: [Z]¢ per share (~[Z]% return, after fees)
   ⚠️  Verify: same resolution criteria? same timeframe?

Resolution Date Adjustment

If markets resolve at different dates:

⏱️  DATE MISMATCH: Poly ends [date1], Kalshi ends [date2]  (gap: [N] days)
   Treating as SOFT arb — risk window is [date1]–[date2]

If No Pure Arb — Find Alpha Instead

Calculate the gap and identify which platform is mispriced:

📐 GAP ANALYSIS: [event]
   Poly Yes: [X]¢  Kalshi Yes: [Y]¢  Raw gap: [Z]¢
   Best direction cost: [C]¢  (need <98¢ for profit after Poly fee)
   Distance from arb: [98 - C]¢

Reason about informational edge:

  • **Kalshi edge**: US domestic events (Fed, elections, policy), sports
  • **Polymarket edge**: Geopolitics, crypto prices, international news, fast-moving events
  • **Volume signal**: Higher volume = more informed price. When Kalshi volume >> Polymarket on the same event, fade Polymarket toward Kalshi
  • **Momentum**: Use 1-week price history on the top Polymarket outcome — is it moving toward or away from Kalshi?

Output the alpha thesis:

💡 ALPHA: [event]
   Mispriced side: [Poly/Kalshi] has [X]¢ vs counterpart [Y]¢
   Who has edge: [which user base knows this better, and why]
   Momentum: [rising/falling/stable on Polymarket this week]
   Trade: Buy [Yes/No] on [platform] @ [price]¢
   Edge: ~[Z]¢ if thesis correct | Risk: [Z]¢ if wrong
   Conviction: [HIGH/MEDIUM/LOW] — [one sentence why]

Step 4 — RANK OPPORTUNITIES

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RANK  TYPE         EVENT                         EDGE    CONVICTION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 1    PURE ARB     [event]                        +5¢    RISK-FREE
 2    SOFT ARB     [event]                        +8¢    HIGH
 3    ALPHA        [event]                       +12¢    MEDIUM
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Rank by: 1. Pure arb (risk-free, same resolution date) — **always trade these** 2. Soft arb (positive math, date gap ≤30 days) — trade with caution 3. High-conviction alpha (gap ≥5¢, clear informational edge, liq >$10K) 4. Low-conviction alpha — flag only

Step 5 — EXECUTE BEST OPPORTUNITY

We can only execute the Polymarket leg directly. Kalshi legs must be placed manually.

If **pure arb**:

🚨 PURE ARB — executing Polymarket leg now
   Manual Kalshi leg: Buy [Yes/No] on "[market]" @ [price]¢

If **alpha**:

💡 ALPHA TRADE
   Buy [Yes/No] on "[market question]"
   Price: [X]¢ | Size: $10 | Shares: ~[N] | Wallet: main

Ask: `Execute Polymarket leg? (yes to proceed)`

If yes, place the position using the tokenId and `main` wallet via:

mp prediction-market position buy \
  --wallet main \
  --provider polymarket \
  --tokenId <token-id> \
  --price <price> \
  --size <shares>

Step 6 — FINAL REPORT

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 SCOUT REPORT — [topic] — [date]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Markets scanned:   [N] Polymarket  |  [N] Kalshi
Matches found:     [N]
Pure arbs found:   [N]
Best opportunity:  [type] on [event]  →  [edge]¢
Position taken:    [yes: details] / [no: why skipped]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

---

Agent Rules

  • **Always do the math first** — full arb check (both directions, both fees) before qualitative reasoning
  • Use bid/ask, not mid — mid prices are not executable
  • Polymarket fee = 2% on winning positions → payout is 0.98, not 1.00
  • Minimum liquidity to trade: $10K on Polymarket side
  • Flag date mismatches >30 day
Read more
Ships withmoonpay-skills

Agent Skills for crypto infrastructure — wallet management, token trading, cross-chain bridges, fiat on/off ramp, prediction markets, and more. Skills are instructional folders that AI agents load dynamically to perform specialized tasks.

Get the whole plugin

Other skills on moonpay-skills.