spartanlabsxyz/simmer-sdk/polymarket-mert-sniper
Claude Code and agent skill by spartanlabsxyz/simmer-sdk
- community
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-sniperSKILL.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;--liveis 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; setenable_news_veto=trueto enable it.
Setup Flow
- Install the Simmer SDK
``bash pip install simmer-sdk ``
- Ask for Simmer API key
- Get it from simmer.markets/dashboard -> SDK tab
- Store in environment as
SIMMER_API_KEY
- 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
- 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)
- Save settings to config.json or environment variables
Configuration
| Setting | Environment Variable | Default | Description | |
|---|---|---|---|---|
| Market filter | SIMMER_MERT_FILTER | (all) | Tag or keyword filter (e.g. solana, crypto) | |
| Max bet | SIMMER_MERT_MAX_BET_USD | 10.00 | Maximum USD per trade | |
| Expiry window | SIMMER_MERT_EXPIRY_MINUTES | 8 | Only trade markets resolving within N minutes | |
| Min split | SIMMER_MERT_MIN_SPLIT | 0.60 | Only trade when YES or NO >= this (e.g. 0.60 = 60/40) | |
| Max trades/run | SIMMER_MERT_MAX_TRADES_PER_RUN | 5 | Maximum trades per scan cycle | |
| Smart sizing % | SIMMER_MERT_SIZING_PCT | 0.05 | % of balance per trade | |
| Fee buffer | SIMMER_MERT_FEE_BUFFER | 0.02 | Extra alpha required above entry fee; only applies when SIMMER_MERT_MIN_EDGE is set | |
| Declared edge | SIMMER_MERT_MIN_EDGE | 0.00 | Your 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 veto | SIMMER_MERT_ENABLE_NEWS_VETO | false | Skip matching news-resolution markets within 30s of scheduled macro/news releases |
Quick Commands
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
How It Works
Each cycle the script:
- Fetches active markets from Simmer API (optionally filtered by tag/keyword)
- Filters to markets resolving within the expiry window (default 8 minutes)
- Checks the price split -- only trades when one side >= min_split (default 60%)
- Determines direction: backs the favored side (higher probability)
- Fee logging: prints entry-fee cost per market (
POLY_FEE_RATE_CRYPTO ร p ร (1-p), entry only โ redemption is free). IfSIMMER_MERT_MIN_EDGE > 0, gates out markets where declared edge < entry fee + buffer - Safeguards: Checks context for flip-flop warnings, slippage, market status
- Execution: Places trade on the favored side, capped at max bet
- Reports summary of scanned, filtered, and traded markets
Example Output
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
endDateis 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_KEYis 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
- SKILL.md in the repositoryCheckingskills/polymarket-mert-sniper/SKILL.md
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
[](https://verified-skill.com/skills/spartanlabsxyz/simmer-sdk/polymarket-mert-sniper)