spartanlabsxyz/simmer-sdk/polymarket-mert-sniper

Claude Code and agent skill by spartanlabsxyz/simmer-sdk

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Trade near-expiry Polymarket markets, filter by topic, cap bet size, or require strongly skewed odds before entry. Scans final-minute markets and places bounded trades against the under-priced side. Defaults: $10 max per trade, 5 trades/run, 8-minute expiry window, dry-run unless `--live`.

Install

npx vskill@latest install spartanlabsxyz/simmer-sdk/polymarket-mert-sniper

SKILL.md

Mert Sniper

Near-expiry conviction trading on Polymarket. The skill scans markets in their final minutes of pricing, filters for strongly-skewed splits, and places bounded trades against the under-priced side.

๐Ÿšจ Framework, not a production trading system. Read DISCLAIMER.md before connecting to a wallet with real funds. Dry-run is the default; --live is required for any real-USDC trade. Defaults: $10 max per trade, 60/40 split minimum, 8-minute expiry window, 5 trades per scan cycle โ€” adjust deliberately before scaling.
This is a template. The default logic (expiry + split filter) is a starting point โ€” remix it with your own filters, timing rules, or market selection criteria. The skill handles all the plumbing (market discovery, trade execution, safeguards). Your agent provides the alpha.
Strategy attribution: @mert โ€” see source thread for the original methodology (topic filter, near-expiry timing, strong-split entry).
News-recency veto. Optional guard that checks Simmer's macro-news schedule before order placement and skips matching news-resolution markets inside the first 30 seconds after CPI, BLS jobs/unemployment, FOMC, nonfarm payrolls, or quarterly earnings events. Continuous-feed crypto Up/Down markets are not blocked by this veto. Default is off until internal positive backfill coverage exists; set enable_news_veto=true to enable it.

Setup Flow

  1. Install the Simmer SDK

``bash pip install simmer-sdk ``

  1. Ask for Simmer API key
  • Get it from simmer.markets/dashboard -> SDK tab
  • Store in environment as SIMMER_API_KEY
  1. Ask for wallet private key (required for live trading)
  • This is the private key for their Polymarket wallet (the wallet that holds USDC)
  • Store in environment as WALLET_PRIVATE_KEY
  • The SDK uses this to sign orders client-side automatically โ€” no manual signing needed
  1. Ask about settings (or confirm defaults)
  • Market filter: Which markets to scan (default: all)
  • Max bet: Maximum per trade (default $10)
  • Expiry window: How close to resolution (default 8 minutes)
  • Min split: Minimum odds skew (default 60/40)
  1. Save settings to config.json or environment variables

Configuration

SettingEnvironment VariableDefaultDescription
Market filterSIMMER_MERT_FILTER(all)Tag or keyword filter (e.g. solana, crypto)
Max betSIMMER_MERT_MAX_BET_USD10.00Maximum USD per trade
Expiry windowSIMMER_MERT_EXPIRY_MINUTES8Only trade markets resolving within N minutes
Min splitSIMMER_MERT_MIN_SPLIT0.60Only trade when YES or NO >= this (e.g. 0.60 = 60/40)
Max trades/runSIMMER_MERT_MAX_TRADES_PER_RUN5Maximum trades per scan cycle
Smart sizing %SIMMER_MERT_SIZING_PCT0.05% of balance per trade
Fee bufferSIMMER_MERT_FEE_BUFFER0.02Extra alpha required above entry fee; only applies when SIMMER_MERT_MIN_EDGE is set
Declared edgeSIMMER_MERT_MIN_EDGE0.00Your signal's claimed edge above market price (probability units). At 0 (default): fee is logged but gate is advisory only. Set to X to block trades where entry fee > X โ€” e.g. 0.05 requires your signal to clear at least 5ยข above market after fees
News-recency vetoSIMMER_MERT_ENABLE_NEWS_VETOfalseSkip matching news-resolution markets within 30s of scheduled macro/news releases

Quick Commands

bash
# Check account balance and positions
python scripts/status.py
# Detailed position list
python scripts/status.py --positions

API Reference:

  • Base URL: https://api.simmer.markets
  • Auth: Authorization: Bearer $SIMMER_API_KEY
  • Portfolio: GET /api/sdk/portfolio
  • Positions: GET /api/sdk/positions

Running the Skill

bash
# Dry run (default -- shows opportunities, no trades)
python mert_sniper.py
# Execute real trades
python mert_sniper.py --live
# Filter to specific markets
python mert_sniper.py --filter solana
# Custom expiry window (5 minutes)
python mert_sniper.py --expiry 5
# With smart position sizing (uses portfolio balance)
python mert_sniper.py --live --smart-sizing
# Check positions only
python mert_sniper.py --positions
# View config
python mert_sniper.py --config
# Disable safeguards (not recommended)
python mert_sniper.py --no-safeguards

How It Works

Each cycle the script:

  1. Fetches active markets from Simmer API (optionally filtered by tag/keyword)
  2. Filters to markets resolving within the expiry window (default 8 minutes)
  3. Checks the price split -- only trades when one side >= min_split (default 60%)
  4. Determines direction: backs the favored side (higher probability)
  5. Fee logging: prints entry-fee cost per market (POLY_FEE_RATE_CRYPTO ร— p ร— (1-p), entry only โ€” redemption is free). If SIMMER_MERT_MIN_EDGE > 0, gates out markets where declared edge < entry fee + buffer
  6. Safeguards: Checks context for flip-flop warnings, slippage, market status
  7. Execution: Places trade on the favored side, capped at max bet
  8. Reports summary of scanned, filtered, and traded markets

Example Output

๐ŸŽฏ Mert Sniper - Near-Expiry Conviction Trading
==================================================
[DRY RUN] No trades will be executed. Use --live to enable trading.
Configuration:
Filter: solana
Max bet: $10.00
Expiry window: 8 minutes
Min split: 60/40
Max trades: 5
Smart sizing: Disabled
Safeguards: Enabled
Fetching markets (filter: solana)...
Found 12 active markets
Markets expiring within 8 minutes: 2
SOL highest price on Feb 10?
Resolves in: 1m 34s
Split: YES 72% / NO 28%
Side: YES (72% >= 60%)
[DRY RUN] Would buy $10.00 on YES
Summary:
Markets scanned: 12
Near expiry: 2
Strong split: 1
Trades executed: 0
[DRY RUN MODE - no real trades executed]

Troubleshooting

"No markets found"

  • Check your filter -- try without a filter first
  • Markets may not be available (check simmer.markets)

"No markets expiring within window"

  • Increase expiry window: --expiry 10 (10 minutes)
  • Or run more frequently (cron every minute)

"Split too narrow"

  • Lower the min split: --set min_split=0.55
  • This trades more often but with less conviction

"Resolves in: 17h" on 15-min markets

  • Polymarket's endDate is the event-level end-of-day, not the individual market close time
  • For 15-min crypto markets (e.g. "BTC Up or Down - Feb 8, 11PM ET"), the actual close time is in the question text but not in the API
  • This is a Polymarket data limitation โ€” widen the expiry window (--expiry 1080) as a workaround, or use the split filter to find conviction opportunities regardless of timing

"External wallet requires a pre-signed order"

  • WALLET_PRIVATE_KEY is not set in the environment
  • The SDK signs orders automatically when this env var is present โ€” no manual signing code needed
  • Fix: export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>
  • Do NOT attempt to sign orders manually or modify the skill code โ€” the SDK handles it

"Balance shows $0 but I have funds on Polygon"

  • Polymarket V2 (live 2026-04-28) uses pUSD (PolyUSD, 1:1 backed by USDC.e). If your wallet holds USDC.e, migrate at simmer.markets/dashboard with one click (~30s)
  • If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD
  • Full migration guide: docs.simmer.markets/v2-migration

"API key invalid"

  • Get new key from simmer.markets/dashboard -> SDK tab

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
52
Repository forks
18
7-day trend score
19

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/spartanlabsxyz/simmer-sdk/polymarket-mert-sniper/badge)](https://verified-skill.com/skills/spartanlabsxyz/simmer-sdk/polymarket-mert-sniper)

Something wrong with this skill or its page? Tell us.