{"id":"48631ed2-963e-4ac6-a1e8-3d47c4c9522c","entityType":"agent","slug":"clawhub-simmer-polymarket-fast-loop","name":"polymarket-fast-loop","canonicalUrl":"https://www.xpersona.co/agent/clawhub-simmer-polymarket-fast-loop","canonicalPath":"/agent/clawhub-simmer-polymarket-fast-loop","generatedAt":"2026-10-09T07:20:14.924Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T02:29:29.658Z","emptyReason":null},"description":"Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 9.3K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s17eez0vajry6hjb97y9mbtv2s85wekv:polymarket-fast-loop","sourceUrl":"https://clawhub.ai/simmer/polymarket-fast-loop","homepage":"https://clawhub.ai/simmer/skills/polymarket-fast-loop","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/simmer/polymarket-fast-loop","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/simmer/skills/polymarket-fast-loop","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":79,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"polymarket-fast-loop technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T02:29:29.658Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T02:29:29.658Z","emptyReason":null},"stars":null,"forks":null,"downloads":9302,"packageName":null,"latestVersion":"1.7.4","tractionLabel":"9.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T02:29:29.658Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T02:29:29.658Z","lastCrawledAt":"2026-10-09T02:29:29.658Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T02:29:29.658Z","lastVerifiedAt":null,"highlights":[{"version":"1.7.4","createdAt":"2026-09-06T01:13:26.481Z","changelog":"**Minor update with maintenance and cleanup.** - Bumped version to 1.7.4. - Updated documentation in SKILL.md (no functional/behavioral changes described). - Removed obsolete skill-card.md file.","fileCount":9,"zipByteSize":32947},{"version":"1.7.3","createdAt":"2026-08-09T06:52:24.358Z","changelog":"CORRECTION to the 1.7.1 release note. No code change in this version. 1.7.1 said the inverted book read skipped liquid markets 'while trading near-empty ones'. The second half was wrong: worst-ask minus worst-bid is always >= the touch spread, so the gate could only ever be too STRICT, never too loose - over-trading was not a reachable outcome. Measured on 96 live books, the old read rejected 96 of 96 where a correct read passes 24: about 25 percent of tradeable books skipped, and ZERO thin books wrongly traded. The harm was missed opportunity, not adverse selection. Your past fills were not affected.","fileCount":9,"zipByteSize":33043},{"version":"1.7.2","createdAt":"2026-08-09T06:22:19.592Z","changelog":"Fail closed when the order book cannot be fetched. A failed book fetch previously skipped the liquidity gate and traded anyway; the skill now skips the trade and records a book unavailable skip reason.","fileCount":9,"zipByteSize":32970},{"version":"1.7.1","createdAt":"2026-08-09T04:58:41.861Z","changelog":"Fix inverted book-liquidity gate: sort the CLOB book before reading best bid/ask. The book returns bids LOW-HIGH and asks HIGH-LOW, so index [0] was the worst price on each side - the spread gate computed the full book width and skipped liquid markets as illiquid while trading near-empty ones. Depth now sums the five levels nearest the touch.","fileCount":9,"zipByteSize":32728},{"version":"1.7.0","createdAt":"2026-06-13T02:27:37.851Z","changelog":"**Adds optional news-recency veto to skip trades after major scheduled news events.** - New setting: `enable_news_veto` (default: false). When enabled, skips matching fast markets within 30 seconds of scheduled macro/news releases. - News veto covers events like CPI, BLS jobs/unemployment, FOMC, nonfarm payrolls, and quarterly earnings. - Updated SKILL.md with news veto documentation and setting details. - Removed obsolete `skill-card.md` file.","fileCount":8,"zipByteSize":29856},{"version":"1.6.6","createdAt":"2026-05-24T03:02:41.998Z","changelog":"SIM-2374: align tunable env-var names between clawhub.json and CONFIG_SCHEMA","fileCount":8,"zipByteSize":26244},{"version":"1.6.4","createdAt":"2026-05-18T03:42:19.556Z","changelog":"**Changelog for version 1.6.4** - Updated explanation of Polymarket fast market fees in the documentation, clarifying the new taker (3.5%–6.6%) and maker (-20% rebate) structure. - Improved accuracy and transparency regarding fee calculations and their impact on trade edge. - No code or logic changes; update is documentation only.","fileCount":5,"zipByteSize":22097},{"version":"1.6.3","createdAt":"2026-04-25T09:20:21.749Z","changelog":"Migrate Gamma fallback path to /markets/keyset (Polymarket deprecation deadline May 1, 2026).","fileCount":5,"zipByteSize":22018}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17eez0vajry6hjb97y9mbtv2s85wekv:polymarket-fast-loop","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17eez0vajry6hjb97y9mbtv2s85wekv:polymarket-fast-loop` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/simmer/polymarket-fast-loop before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T07:20:14.920Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-simmer-polymarket-fast-loop/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T02:29:29.658Z","emptyReason":null},"readme":"Skill: polymarket-fast-loop\n\nOwner: simmer\n\nSummary: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\n\nTags: latest:1.7.4\n\nVersion history:\n\nv1.7.4 | 2026-09-06T01:13:26.481Z | auto\n\n**Minor update with maintenance and cleanup.**\n\n- Bumped version to 1.7.4.\n- Updated documentation in SKILL.md (no functional/behavioral changes described).\n- Removed obsolete skill-card.md file.\n\nv1.7.3 | 2026-08-09T06:52:24.358Z | user\n\nCORRECTION to the 1.7.1 release note. No code change in this version. 1.7.1 said the inverted book read skipped liquid markets 'while trading near-empty ones'. The second half was wrong: worst-ask minus worst-bid is always >= the touch spread, so the gate could only ever be too STRICT, never too loose - over-trading was not a reachable outcome. Measured on 96 live books, the old read rejected 96 of 96 where a correct read passes 24: about 25 percent of tradeable books skipped, and ZERO thin books wrongly traded. The harm was missed opportunity, not adverse selection. Your past fills were not affected.\n\nv1.7.2 | 2026-08-09T06:22:19.592Z | user\n\nFail closed when the order book cannot be fetched. A failed book fetch previously skipped the liquidity gate and traded anyway; the skill now skips the trade and records a book unavailable skip reason.\n\nv1.7.1 | 2026-08-09T04:58:41.861Z | user\n\nFix inverted book-liquidity gate: sort the CLOB book before reading best bid/ask. The book returns bids LOW-HIGH and asks HIGH-LOW, so index [0] was the worst price on each side - the spread gate computed the full book width and skipped liquid markets as illiquid while trading near-empty ones. Depth now sums the five levels nearest the touch.\n\nv1.7.0 | 2026-06-13T02:27:37.851Z | auto\n\n**Adds optional news-recency veto to skip trades after major scheduled news events.**\n\n- New setting: `enable_news_veto` (default: false). When enabled, skips matching fast markets within 30 seconds of scheduled macro/news releases.\n- News veto covers events like CPI, BLS jobs/unemployment, FOMC, nonfarm payrolls, and quarterly earnings.\n- Updated SKILL.md with news veto documentation and setting details.\n- Removed obsolete `skill-card.md` file.\n\nv1.6.6 | 2026-05-24T03:02:41.998Z | user\n\nSIM-2374: align tunable env-var names between clawhub.json and CONFIG_SCHEMA\n\nv1.6.4 | 2026-05-18T03:42:19.556Z | auto\n\n**Changelog for version 1.6.4**\n\n- Updated explanation of Polymarket fast market fees in the documentation, clarifying the new taker (3.5%–6.6%) and maker (-20% rebate) structure.\n- Improved accuracy and transparency regarding fee calculations and their impact on trade edge.\n- No code or logic changes; update is documentation only.\n\nv1.6.3 | 2026-04-25T09:20:21.749Z | user\n\nMigrate Gamma fallback path to /markets/keyset (Polymarket deprecation deadline May 1, 2026).\n\nv1.6.2 | 2026-04-24T10:06:11.767Z | auto\n\nVersion 1.6.2\n\n- Updated version metadata to 1.6.2.\n- Minor documentation updates and formatting improvements in SKILL.md.\n- No breaking changes to core trading logic or configuration.\n\nv1.6.1 | 2026-04-23T05:56:39.818Z | user\n\nV2 migration (2026-04-28): updated troubleshooting copy to point users at the Wrap USDC.e → pUSD flow at simmer.markets/dashboard + docs.simmer.markets/v2-migration. Also refines clawhub.json envVars schema (WALLET_PRIVATE_KEY now correctly optional for managed-wallet users).\n\nv1.5.5 | 2026-04-22T09:15:26.472Z | user\n\nSchema fix: primaryEnv + envVars with required:false for optional credentials. Clears OpenClaw 'disproportionate requirements' verdict.\n\nv1.5.4 | 2026-04-22T08:25:21.086Z | user\n\nDeclare WALLET_PRIVATE_KEY in requires.env for OpenClaw moderation alignment.\n\nv1.5.3 | 2026-04-16T10:05:28.009Z | user\n\nAdd pip install simmer-sdk to setup flow\n\nv1.5.2 | 2026-04-03T02:47:07.179Z | user\n\nAdd auto_redeem() call at start of each cycle for external wallet support\n\nv1.5.1 | 2026-03-29T07:04:04.037Z | auto\n\n## polymarket-fast-loop v1.5.1 Changelog\n\n- Internal improvements and minor fixes in `fastloop_trader.py`.\n- No changes to user-facing features, configuration, or skill documentation.\n\nv1.5.0 | 2026-03-26T17:04:51.115Z | auto\n\nVersion 1.5.0 of polymarket-fast-loop\n\n- Removed legacy metadata file `_meta.json`.\n- Updated documentation in SKILL.md for new version.\n- Internal improvements to `fastloop_trader.py` (details not specified).\n- Prepares for improved versioning and maintenance.\n\nv1.4.3 | 2026-03-25T08:48:47.464Z | auto\n\n- Added _meta.json file for enhanced metadata and platform compatibility.\n- Made updates to fastloop_trader.py (details not specified).\n- No user-facing documentation or skill description changes.\n- Internal improvements only; no changes to usage, configuration, or features.\n\nv1.4.2 | 2026-03-17T09:41:05.232Z | auto\n\n- Improved parameter parsing robustness in fastloop_trader.py to handle unexpected or invalid CLI input values without crashing.\n- Now ignores unknown parameters and provides clearer error messages for invalid types.\n\nv1.4.1 | 2026-03-16T13:26:42.089Z | user\n\nFix: use GTC order type instead of FAK for 5-min markets\n\nv1.4.0 | 2026-03-15T09:32:36.558Z | auto\n\nv1.4.0\n\n- Add support for 15-minute Polymarket fast market windows in addition to 5-minute markets\n- Update documentation to clarify new window options and improve setup instructions\n- Minor improvements to configuration and scheduling guidance\n\nv1.3.5 | 2026-03-12T15:13:50.659Z | user\n\nFix env var drift: align CONFIG_SCHEMA with clawhub.json tunables for autotune compatibility\n\nv1.3.4 | 2026-03-06T06:50:03.802Z | auto\n\n- Added prominent warning that Simmer's stop-loss/take-profit risk monitor does not function on 5m or 15m fast markets.\n- Clarified that automated risk settings from the Simmer dashboard are ignored for fast market trades; sizing should be done manually.\n- Incremented metadata version to 1.3.4.\n\nv1.3.3 | 2026-03-05T19:13:49.206Z | auto\n\n## Polymarket FastLoop Trader v1.3.3\n\n- Updated documentation in SKILL.md for clarification and current usage.\n- Bumped version to 1.3.3 in metadata.\n- No trading logic or core functional changes.\n\nv1.3.2 | 2026-03-05T18:01:06.384Z | auto\n\npolymarket-fast-loop 1.3.2\n\n- Updated SKILL.md to clarify documentation and settings.\n- Internal improvements to fastloop_trader.py (details not specified).\n- No breaking changes or new user-facing features.\n\nv1.3.1 | 2026-03-03T02:53:05.914Z | user\n\nAgentSkills format — moved platform config to clawhub.json for cross-agent compatibility\n\nv1.3.0 | 2026-03-02T06:12:10.727Z | auto\n\nPolymarket FastLoop Trader v1.3.0\n\n- Updated metadata tunables and environment variable mappings for configuration and thresholds.\n- Improved SKILL.md documentation for clarity on setup, configuration, and usage.\n- Enhanced configuration section to match updated environment variables and tunables.\n- No changes to core trading logic or CLI interface.\n\nv1.2.5 | 2026-02-27T10:07:19.973Z | auto\n\nVersion 1.2.5\n\n- Updated SKILL.md to include \"difficulty: advanced\" in metadata.\n- No functional changes to code or features; documentation only.\n\nv1.2.4 | 2026-02-27T05:55:14.148Z | auto\n\n## Polymarket FastLoop Trader — v1.2.4 Changelog\n\n- No code or documentation changes detected in this version.\n- Version bump only; functionality and documentation remain the same as previous release.\n\nv1.2.3 | 2026-02-27T05:52:36.536Z | auto\n\n**Minor update for improved trading interval logic.**\n\n- Fixed cycle timing in `fastloop_trader.py` to avoid duplicate trading within the same fast market window.\n- Now skips trading if a position was just opened within the current fast window, improving capital efficiency and reducing erroneous trades.\n\nv1.2.2 | 2026-02-27T03:55:40.177Z | user\n\nAdd is_live_now field to Market dataclass; forward-compatible filter to skip not-yet-open markets\n\nv1.2.1 | 2026-02-26T14:59:55.228Z | auto\n\nNo file changes detected for version 1.2.1.\n\n- No updates or modifications in this release.\n- Functionality remains unchanged from version 1.2.0.\n\nv1.2.0 | 2026-02-26T13:45:33.092Z | auto\n\n**v1.2.0 Summary:**  \nThis version updates configuration tunables and settings, and may include improvements to parameter flexibility and clarity.\n\n- Expanded or adjusted configuration tunables and their defaults in metadata (SKILL.md), providing finer control over entry threshold, momentum threshold, position sizing, and other trade parameters.\n- Updated documentation and examples to match new and renamed environment variables, especially for tunables.\n- No user-facing breaking changes; usage and CLI workflow remain the same.\n- Improved clarity and consistency in config naming for easier user experience.\n\nv1.1.2 | 2026-02-26T01:45:47.222Z | auto\n\n- Version bump to 1.1.2.\n- No functional or behavioral changes; documentation updated only.\n- SKILL.md updated to reflect the new version number.\n\nv1.1.1 | 2026-02-26T01:44:11.640Z | auto\n\nVersion 1.1.1\n\n- Documentation (SKILL.md) updated with expanded setup instructions, usage notes, and config details.\n- No logic or code changes; user-facing documentation only.\n\nv1.1.0 | 2026-02-26T01:43:16.389Z | auto\n\nPolymarket FastLoop Trader v1.1.0\n\n- Adds support for tunable configuration via environment variables, enabling easier adjustment of strategy parameters.\n- Introduces tunables for entry threshold, momentum threshold, max position size, lookback window, min time between trades, daily budget, and volatility confidence.\n- Improves metadata to include tunable settings, enhancing integration with orchestrators and management environments.\n- No changes to trading logic or core features—update focuses on enabling user-friendly configuration and automation.\n\nv1.0.15 | 2026-02-25T13:43:52.054Z | auto\n\nVersion 1.0.15\n\n- Bump version to 1.0.15 in SKILL.md.\n- No functional or feature changes — documentation update only.\n\nv1.0.14 | 2026-02-25T10:01:34.361Z | user\n\nDynamic min_time_remaining (auto-scales to 10% of window), removed broken CoinGecko fallback, better skip logging\n\nv1.0.13 | 2026-02-24T13:04:13.922Z | auto\n\n- Added Automaton metadata to SKILL.md to enable OpenClaw automation management and entrypoint definition.\n- Updated skill version and metadata in SKILL.md for better compatibility with automation frameworks.\n- No changes to trading logic or user-facing configuration.\n\nv1.0.12 | 2026-02-17T12:48:15.442Z | auto\n\nNo user-facing changes in this release.\n\n- Version bumped to 1.0.12 with no file modifications.\n- No feature updates, bug fixes, or documentation changes detected.\n\nv1.0.11 | 2026-02-17T09:25:02.771Z | auto\n\n- Updated version to 1.0.10 in SKILL.md.\n- Removed \"WALLET_PRIVATE_KEY\" from the required environment variables in the metadata section.\n- No changes to core logic or user workflow.\n\nv1.0.10 | 2026-02-17T07:53:30.468Z | auto\n\nNo user-facing changes; documentation was updated only.\n\n- SKILL.md was updated without impacting code, logic, or functionality.\n- Version and published status remain unchanged.\n\nv1.0.9 | 2026-02-17T06:34:47.451Z | auto\n\n- Added requirement for the user to provide their Polymarket wallet private key (`WALLET_PRIVATE_KEY`) for live trading.\n- Updated setup instructions and metadata to reflect the new required environment variable.\n- Clarified that the wallet private key is used for client-side order signing and is needed in addition to the Simmer API key.\n\nv1.0.8 | 2026-02-17T03:46:31.935Z | auto\n\n- Skill now queries Polymarket directly (Gamma API) for live fast markets, enabling real-time market discovery beyond Simmer's inventory.\n- Adds support for ETH and SOL fast markets alongside BTC; configurable via asset setting.\n- Updated dependencies in metadata to require simmer-sdk via pip.\n- SKILL.md revamped for clarity, emphasizing customization and modularity—encourages users to plug in their own momentum or sentiment signals.\n- Improved instructions and documentation on setup, configuration, and signal customization.\n\nv1.0.7 | 2026-02-16T09:02:29.697Z | user\n\nAdd daily budget tracking (default 10/day), lower min_momentum_pct to 0.2 for better sensitivity\n\nv1.0.6 | 2026-02-14T18:51:43.365Z | auto\n\nVersion 1.0.6\n\n- Updated version number to 1.0.6 in SKILL.md.\n- No user-facing logic or configuration changes; documentation and metadata refresh only.\n- No impact on functionality or usage.\n\nv1.0.5 | 2026-02-14T13:43:38.259Z | auto\n\n- Added comprehensive SKILL.md with detailed setup, usage, and configuration instructions for Polymarket FastLoop Trader.\n- Clarified purpose: trade BTC 5m/15m Polymarket fast markets using Binance momentum signals via Simmer API.\n- Outlined installation, environment variable setup, and all available CLI/configuration options.\n- Provided example cron/heartbeat setups for automated trading loops.\n- Documented default signal logic, customizable settings, and suggestions for advanced signal enhancements.\n- Added troubleshooting section and explained source tagging for trade tracking.\n\nArchive index:\n\nArchive v1.7.4: 9 files, 32947 bytes\n\nFiles: clawhub.json (2570b), config.json (228b), DISCLAIMER.md (1925b), fastloop_trader.py (65771b), skill-card.md (2469b), SKILL.md (11602b), tests/test_fastloop_orderbook_summary.py (5682b), tests/test_fastloop_preflight_gate.py (5908b), _meta.json (139b)\n\nFile v1.7.4:SKILL.md\n\n---\nname: polymarket-fast-loop\ndescription: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\nmetadata:\n  author: Simmer (@simmer_markets)\n  version: \"1.7.4\"\n  displayName: Polymarket FastLoop Trader\n  difficulty: advanced\n---\n# Polymarket FastLoop Trader\n\nTrade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.\n\n> **Polymarket only.** All trades execute on Polymarket with real USDC. Use `--live` for real trades, dry-run is the default.\n\n> **This is a template.** The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.\n\n> ⚠️ Fast markets carry Polymarket's crypto taker fee (`is_paid: true`). Effective rate is 3.5% at 50¢, up to ~6.6% on cheap shares (e.g. 5¢ NO). Makers pay 0% and earn a 20% rebate from collected taker fees. Factor this into your edge calculations.\n\n> ⚠️ **Risk monitoring does not apply to sub-15-minute markets.** Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.\n\n> **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.\n\n## How It Finds Markets\n\n- Queries **Polymarket directly** (Gamma API) for live fast markets — doesn't depend on Simmer's market inventory\n- Discovers new markets as they appear, every cycle\n- Works with BTC, ETH, or SOL — just change the asset (`--set asset=ETH`) or ask your bot to look for whatever market you want\n- Runs every 5 minutes to catch each trading window (or every 1 minute for mid-window opportunities)\n\n**You don't need to wait for markets to show up in Simmer.** FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.\n\n> 🚨 **Framework, not a production trading system.** Read [DISCLAIMER.md](./DISCLAIMER.md) before connecting to a wallet with real funds.\n\n## When to Use This Skill\n\nUse this skill when the user wants to:\n- Trade crypto sprint/fast markets (5-minute or 15-minute) on any supported asset\n- Automate short-term crypto prediction trading\n- Use CEX price momentum (or any custom signal) as a Polymarket signal\n- Monitor sprint market positions\n\n## Setup Flow\n\nWhen user asks to install or configure this skill:\n\n1. **Install the Simmer SDK**\n   ```bash\n   pip install simmer-sdk\n   ```\n\n2. **Ask for Simmer API key**\n   - Get from simmer.markets/dashboard → SDK tab\n   - Store in environment as `SIMMER_API_KEY`\n\n3. **Ask for wallet private key** (required for live trading)\n   - This is the private key for their Polymarket wallet (the wallet that holds USDC)\n   - Store in environment as `WALLET_PRIVATE_KEY`\n   - The SDK uses this to sign orders client-side automatically — no manual signing needed\n\n4. **Ask about settings** (or confirm defaults)\n   - Asset: BTC, ETH, or SOL (default BTC)\n   - Entry threshold: Min divergence to trade (default 5¢)\n   - Max position: Amount per trade (default $5.00)\n   - Window: 5m or 15m (default 5m)\n\n5. **Set up cron or loop** (user drives scheduling — see \"How to Run on a Loop\")\n\n## Quick Start\n\n```bash\n# Set your API key\nexport SIMMER_API_KEY=\"your-key-here\"\n\n# Dry run — see what would happen\npython fastloop_trader.py\n\n# Go live\npython fastloop_trader.py --live\n\n# Live + quiet (for cron/heartbeat loops)\npython fastloop_trader.py --live --quiet\n\n# Live + smart sizing (5% of balance per trade)\npython fastloop_trader.py --live --smart-sizing --quiet\n```\n\n## How to Run on a Loop\n\nThe script runs **one cycle** — your bot drives the loop. Set up a cron job or heartbeat:\n\n**Linux crontab** (local/VPS installs):\n```\n# Every 5 minutes (one per fast market window)\n*/5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n\n# Every 1 minute (more aggressive, catches mid-window opportunities)\n* * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n```\n\n**OpenClaw native cron** (containerized or OpenClaw-managed setups):\n```bash\nopenclaw cron add \\\n  --name \"Fast Loop Trader\" \\\n  --cron \"*/5 * * * *\" \\\n  --tz \"UTC\" \\\n  --session isolated \\\n  --message \"Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary.\" \\\n  --announce\n```\n\n**Via OpenClaw heartbeat:** Add to your HEARTBEAT.md:\n```\nRun: cd /path/to/fast market && python fastloop_trader.py --live --quiet\n```\n\n## Configuration\n\nConfigure via `config.json`, environment variables, or `--set`:\n\n```bash\n# Change entry threshold\npython fastloop_trader.py --set entry_threshold=0.08\n\n# Trade ETH instead of BTC\npython fastloop_trader.py --set asset=ETH\n\n# Multiple settings\npython fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10\n```\n\n### Settings\n\n| Setting | Default | Env Var | Description |\n|---------|---------|---------|-------------|\n| `entry_threshold` | 0.05 | `SIMMER_SPRINT_ENTRY` | Min price divergence from 50¢ to trigger |\n| `min_momentum_pct` | 0.5 | `SIMMER_SPRINT_MOMENTUM` | Min BTC % move to trigger |\n| `max_position` | 5.0 | `SIMMER_SPRINT_MAX_POSITION` | Max $ per trade |\n| `signal_source` | binance | `SIMMER_SPRINT_SIGNAL` | Price feed (binance, coingecko) |\n| `lookback_minutes` | 5 | `SIMMER_SPRINT_LOOKBACK` | Minutes of price history |\n| `min_time_remaining` | 60 | `SIMMER_SPRINT_MIN_TIME` | Skip fast markets with less time left (seconds) |\n| `asset` | BTC | `SIMMER_SPRINT_ASSET` | Asset to trade (BTC, ETH, SOL) |\n| `window` | 5m | `SIMMER_SPRINT_WINDOW` | Market window duration (5m or 15m) |\n| `volume_confidence` | true | `SIMMER_SPRINT_VOL_CONF` | Weight signal by Binance volume |\n| `enable_news_veto` | false | `SIMMER_FASTLOOP_ENABLE_NEWS_VETO` | Skip matching news-resolution markets within 30s of scheduled macro/news releases |\n\n### Example config.json\n\n```json\n{\n  \"entry_threshold\": 0.08,\n  \"min_momentum_pct\": 0.3,\n  \"max_position\": 10.0,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"enable_news_veto\": false\n}\n```\n\n## CLI Options\n\n```bash\npython fastloop_trader.py                    # Dry run\npython fastloop_trader.py --live             # Real trades\npython fastloop_trader.py --live --quiet     # Silent except trades/errors\npython fastloop_trader.py --smart-sizing     # Portfolio-based sizing\npython fastloop_trader.py --positions        # Show open fast market positions\npython fastloop_trader.py --config           # Show current config\npython fastloop_trader.py --set KEY=VALUE    # Update config\n```\n\n## Signal Logic\n\nDefault signal (Binance momentum):\n\n1. Fetch last 5 one-minute candles from Binance (`BTCUSDT`)\n2. Calculate momentum: `(price_now - price_5min_ago) / price_5min_ago`\n3. Compare momentum direction to current Polymarket odds\n4. Trade when:\n   - Momentum ≥ `min_momentum_pct` (default 0.5%)\n   - Price diverges from 50¢ by ≥ `entry_threshold` (default 5¢)\n   - Volume ratio > 0.5x average (filters out thin moves)\n\n**Example:** BTC up 0.8% in last 5 min, but fast market YES price is only $0.52. The 3¢ divergence from the expected ~$0.55 → buy YES.\n\n### Remix It: Plug In Your Own Signal\n\n**This skill is a template.** The default Binance momentum signal is just a starting point. The skill handles all the boring parts (market discovery, import, order execution, budget tracking). You bring the signal.\n\nIdeas for custom signals:\n- **Multi-exchange spreads:** Compare prices across Binance, Kraken, Bitfinex — divergence between exchanges can predict CLOB direction\n- **Sentiment:** Layer in Twitter/social signals — a viral tweet can move fast markets before the CLOB adjusts\n- **Technical indicators:** RSI, VWAP, order flow analysis from your favorite data source\n- **News:** Breaking news correlation — use your agent's reasoning to interpret headlines\n- **On-chain data:** Whale movements, funding rates, liquidation levels\n\nTo customize, edit `get_momentum()` in `fastloop_trader.py` or add your own signal function. The rest of the skill (discovery, import, sizing, fee-aware EV check) stays the same.\n\n## Example Output\n\n```\n⚡ Simmer FastLoop Trading Skill\n==================================================\n\n  [DRY RUN] No trades will be executed. Use --live to enable trading.\n\n⚙️  Configuration:\n  Asset:            BTC\n  Entry threshold:  0.05 (min divergence from 50¢)\n  Min momentum:     0.5% (min price move)\n  Max position:     $5.00\n  Signal source:    binance\n  Lookback:         5 minutes\n  Min time left:    60s\n  Volume weighting: ✓\n\n🔍 Discovering BTC fast markets...\n  Found 3 active fast markets\n\n🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET\n  Expires in: 185s\n  Current YES price: $0.480\n\n📈 Fetching BTC price signal (binance)...\n  Price: $97,234.50 (was $96,812.30)\n  Momentum: +0.436%\n  Direction: up\n  Volume ratio: 1.45x avg\n\n🧠 Analyzing...\n  ⏸️  Momentum 0.436% < minimum 0.500% — skip\n\n📊 Summary: No trade (momentum too weak: 0.436%)\n```\n\n## Source Tagging\n\nAll trades are tagged with `source: \"sdk:fastloop\"`. This means:\n- Portfolio shows breakdown by strategy\n- Other skills won't interfere with your fast market positions\n- You can track fast market P&L separately\n\n## Troubleshooting\n\n**\"No active fast markets found\"**\n- Fast markets may not be running (off-hours, weekends)\n- Check Polymarket directly for active BTC fast markets\n\n**\"No fast markets with >60s remaining\"**\n- Current window is about to expire, next one isn't live yet\n- Reduce `min_time_remaining` if you want to trade closer to expiry\n\n**\"Import failed: Rate limit exceeded\"**\n- Free tier: 10 imports/day. Pro: 50/day\n- Fast market trading needs Pro for reasonable frequency\n\n**\"Failed to fetch price data\"**\n- Binance API may be down or rate limited\n- Try `--set signal_source=coingecko` as fallback\n\n**\"Trade failed: no liquidity\"**\n- Fast market has thin book, try smaller position size\n\n**\"External wallet requires a pre-signed order\"**\n- `WALLET_PRIVATE_KEY` is not set in the environment\n- The SDK signs orders automatically when this env var is present — no manual signing code needed\n- Fix: `export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>`\n- Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n**\"Balance shows $0 but I have funds on Polygon\"**\n- 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](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill) with one click (~30s)\n- If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD\n- Full migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v1.7.4:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"polymarket-fast-loop\",\n  \"version\": \"1.7.4\",\n  \"publishedAt\": 1788657206481\n}\n\nFile v1.7.4:DISCLAIMER.md\n\n# Disclaimer\n\nThis skill is a **framework**, not a production trading system. Read this\nin full before connecting it to a wallet with real funds.\n\n## No financial advice\n\nNothing in this skill constitutes financial, investment, or trading\nadvice. The default strategy implemented here is a starting point, not a\ntested edge. Suitability for any account size or risk tolerance is your\nresponsibility to assess.\n\n## Default parameters are not validated\n\nDefault parameters are calibrated for testing the plumbing, not for live\nprofit. They have not been validated to produce positive returns under\ncurrent market conditions. Run paper mode for an extended period before\nscaling beyond default position sizes.\n\n## Automated trading carries irreversible risk\n\nWhen this skill runs with `--live`, it places real on-chain orders.\nOn-chain trades cannot be recalled. Strategy errors, signal lag, market\nregime shifts, and operator misconfiguration can produce losses\nexceeding any specific position size.\n\n## Risk monitoring may not apply to all market types\n\nStop-loss and take-profit monitors run on a fixed schedule. Markets that\nresolve faster than the monitor cycle cannot be exited automatically.\nPosition sizing is the only risk control on these markets — set it\nconservatively.\n\n## Use of this skill is at your own risk\n\nBy installing and running this skill you agree that the authors are not\nliable for any losses, direct or indirect, that arise from its use. This\napplies regardless of skill provenance — official Simmer skills,\ncommunity skills, and skills imported from external repositories all\ncarry this same disclaimer.\n\n## Where to learn more before going live\n\n- The skill's own `SKILL.md` documents the strategy and parameters\n- Your trading venue's documentation covers fee structure, order types,\n  and resolution rules\n- Simmer SDK documentation covers paper mode, dry-run flags, and\n  position monitoring\n\nFile v1.7.4:skill-card.md\n\n## Description:\n\nTrade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[simmer](https://clawhub.ai/user/simmer)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and trading operators use this skill to configure an agent that discovers Polymarket fast crypto markets, evaluates short-window CEX momentum signals, and proposes or executes trades through Simmer. It is intended for users who understand automated trading risk and can review strategy parameters before live execution.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Live mode can place real Polymarket orders and the security review flags stale GTC cleanup behavior that may cancel orders not definitively tied to this skill.\n\nMitigation: Review or disable stale GTC cleanup before live use, and run in dry-run or an isolated account with small limits until behavior is verified.\n\nRisk: The release depends on an unpinned simmer-sdk range for trading execution.\n\nMitigation: Pin the exact reviewed simmer-sdk version before deployment and re-review behavior before upgrading.\n\nRisk: Fast markets may resolve before scheduled stop-loss or take-profit monitors can act.\n\nMitigation: Use conservative position sizing, daily budgets, and dry-run observation rather than relying on automated stop-losses for 5-minute or 15-minute markets.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/simmer/skills/polymarket-fast-loop)\n- [Simmer dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill)\n- [Simmer Polymarket V2 migration guide](https://docs.simmer.markets/v2-migration)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands, configuration values, and trading run summaries]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Dry-run is the default; live trading requires explicit --live use and Simmer credentials.]\n\n## Skill Version(s):\n\n1.7.4 (source: server evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.7.4:clawhub.json\n\n{\n  \"emoji\": \"\\u26a1\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk>=0.17.32\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key \\u2014 get from simmer.markets/dashboard\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Only needed for external-wallet self-custody trading. Not required when using managed wallets.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": true,\n    \"entrypoint\": \"fastloop_trader.py\"\n  },\n  \"tunables\": [\n    {\n      \"env\": \"SIMMER_FASTLOOP_ENTRY_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.3\n      ],\n      \"step\": 0.01,\n      \"label\": \"Entry edge threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MOMENTUM_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.03,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Momentum threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MAX_POSITION_USD\",\n      \"type\": \"number\",\n      \"default\": 10,\n      \"range\": [\n        1,\n        50\n      ],\n      \"step\": 5,\n      \"label\": \"Max position size\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_LOOKBACK_MINUTES\",\n      \"type\": \"number\",\n      \"default\": 30,\n      \"range\": [\n        5,\n        120\n      ],\n      \"step\": 5,\n      \"label\": \"Lookback window (minutes)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_DAILY_BUDGET_USD\",\n      \"type\": \"number\",\n      \"default\": 50,\n      \"range\": [\n        10,\n        100\n      ],\n      \"step\": 10,\n      \"label\": \"Daily budget\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_VOL_CONFIDENCE_MIN\",\n      \"type\": \"number\",\n      \"default\": 0.5,\n      \"range\": [\n        0.1,\n        1.0\n      ],\n      \"step\": 0.05,\n      \"label\": \"Minimum volatility confidence\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FAIR_VALUE\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"label\": \"Use N(d) fair-value model\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FV_MIN_EDGE\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Fair-value min edge (fraction)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_ANNUAL_VOL\",\n      \"type\": \"number\",\n      \"default\": 0.55,\n      \"range\": [\n        0.3,\n        1.5\n      ],\n      \"step\": 0.05,\n      \"label\": \"BTC annual volatility for N(d) model\"\n    }\n  ]\n}\n\nFile v1.7.4:config.json\n\n{\n  \"entry_threshold\": 0.05,\n  \"min_momentum_pct\": 0.5,\n  \"max_position\": 5.0,\n  \"lookback_minutes\": 5,\n  \"min_time_remaining\": 60,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"volume_confidence\": true\n}\n\nArchive v1.7.3: 9 files, 33043 bytes\n\nFiles: clawhub.json (2570b), config.json (228b), DISCLAIMER.md (1925b), fastloop_trader.py (65767b), skill-card.md (2648b), SKILL.md (11602b), tests/test_fastloop_orderbook_summary.py (5682b), tests/test_fastloop_preflight_gate.py (5908b), _meta.json (139b)\n\nFile v1.7.3:SKILL.md\n\n---\nname: polymarket-fast-loop\ndescription: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\nmetadata:\n  author: Simmer (@simmer_markets)\n  version: \"1.7.3\"\n  displayName: Polymarket FastLoop Trader\n  difficulty: advanced\n---\n# Polymarket FastLoop Trader\n\nTrade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.\n\n> **Polymarket only.** All trades execute on Polymarket with real USDC. Use `--live` for real trades, dry-run is the default.\n\n> **This is a template.** The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.\n\n> ⚠️ Fast markets carry Polymarket's crypto taker fee (`is_paid: true`). Effective rate is 3.5% at 50¢, up to ~6.6% on cheap shares (e.g. 5¢ NO). Makers pay 0% and earn a 20% rebate from collected taker fees. Factor this into your edge calculations.\n\n> ⚠️ **Risk monitoring does not apply to sub-15-minute markets.** Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.\n\n> **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.\n\n## How It Finds Markets\n\n- Queries **Polymarket directly** (Gamma API) for live fast markets — doesn't depend on Simmer's market inventory\n- Discovers new markets as they appear, every cycle\n- Works with BTC, ETH, or SOL — just change the asset (`--set asset=ETH`) or ask your bot to look for whatever market you want\n- Runs every 5 minutes to catch each trading window (or every 1 minute for mid-window opportunities)\n\n**You don't need to wait for markets to show up in Simmer.** FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.\n\n> 🚨 **Framework, not a production trading system.** Read [DISCLAIMER.md](./DISCLAIMER.md) before connecting to a wallet with real funds.\n\n## When to Use This Skill\n\nUse this skill when the user wants to:\n- Trade crypto sprint/fast markets (5-minute or 15-minute) on any supported asset\n- Automate short-term crypto prediction trading\n- Use CEX price momentum (or any custom signal) as a Polymarket signal\n- Monitor sprint market positions\n\n## Setup Flow\n\nWhen user asks to install or configure this skill:\n\n1. **Install the Simmer SDK**\n   ```bash\n   pip install simmer-sdk\n   ```\n\n2. **Ask for Simmer API key**\n   - Get from simmer.markets/dashboard → SDK tab\n   - Store in environment as `SIMMER_API_KEY`\n\n3. **Ask for wallet private key** (required for live trading)\n   - This is the private key for their Polymarket wallet (the wallet that holds USDC)\n   - Store in environment as `WALLET_PRIVATE_KEY`\n   - The SDK uses this to sign orders client-side automatically — no manual signing needed\n\n4. **Ask about settings** (or confirm defaults)\n   - Asset: BTC, ETH, or SOL (default BTC)\n   - Entry threshold: Min divergence to trade (default 5¢)\n   - Max position: Amount per trade (default $5.00)\n   - Window: 5m or 15m (default 5m)\n\n5. **Set up cron or loop** (user drives scheduling — see \"How to Run on a Loop\")\n\n## Quick Start\n\n```bash\n# Set your API key\nexport SIMMER_API_KEY=\"your-key-here\"\n\n# Dry run — see what would happen\npython fastloop_trader.py\n\n# Go live\npython fastloop_trader.py --live\n\n# Live + quiet (for cron/heartbeat loops)\npython fastloop_trader.py --live --quiet\n\n# Live + smart sizing (5% of balance per trade)\npython fastloop_trader.py --live --smart-sizing --quiet\n```\n\n## How to Run on a Loop\n\nThe script runs **one cycle** — your bot drives the loop. Set up a cron job or heartbeat:\n\n**Linux crontab** (local/VPS installs):\n```\n# Every 5 minutes (one per fast market window)\n*/5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n\n# Every 1 minute (more aggressive, catches mid-window opportunities)\n* * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n```\n\n**OpenClaw native cron** (containerized or OpenClaw-managed setups):\n```bash\nopenclaw cron add \\\n  --name \"Fast Loop Trader\" \\\n  --cron \"*/5 * * * *\" \\\n  --tz \"UTC\" \\\n  --session isolated \\\n  --message \"Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary.\" \\\n  --announce\n```\n\n**Via OpenClaw heartbeat:** Add to your HEARTBEAT.md:\n```\nRun: cd /path/to/fast market && python fastloop_trader.py --live --quiet\n```\n\n## Configuration\n\nConfigure via `config.json`, environment variables, or `--set`:\n\n```bash\n# Change entry threshold\npython fastloop_trader.py --set entry_threshold=0.08\n\n# Trade ETH instead of BTC\npython fastloop_trader.py --set asset=ETH\n\n# Multiple settings\npython fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10\n```\n\n### Settings\n\n| Setting | Default | Env Var | Description |\n|---------|---------|---------|-------------|\n| `entry_threshold` | 0.05 | `SIMMER_SPRINT_ENTRY` | Min price divergence from 50¢ to trigger |\n| `min_momentum_pct` | 0.5 | `SIMMER_SPRINT_MOMENTUM` | Min BTC % move to trigger |\n| `max_position` | 5.0 | `SIMMER_SPRINT_MAX_POSITION` | Max $ per trade |\n| `signal_source` | binance | `SIMMER_SPRINT_SIGNAL` | Price feed (binance, coingecko) |\n| `lookback_minutes` | 5 | `SIMMER_SPRINT_LOOKBACK` | Minutes of price history |\n| `min_time_remaining` | 60 | `SIMMER_SPRINT_MIN_TIME` | Skip fast markets with less time left (seconds) |\n| `asset` | BTC | `SIMMER_SPRINT_ASSET` | Asset to trade (BTC, ETH, SOL) |\n| `window` | 5m | `SIMMER_SPRINT_WINDOW` | Market window duration (5m or 15m) |\n| `volume_confidence` | true | `SIMMER_SPRINT_VOL_CONF` | Weight signal by Binance volume |\n| `enable_news_veto` | false | `SIMMER_FASTLOOP_ENABLE_NEWS_VETO` | Skip matching news-resolution markets within 30s of scheduled macro/news releases |\n\n### Example config.json\n\n```json\n{\n  \"entry_threshold\": 0.08,\n  \"min_momentum_pct\": 0.3,\n  \"max_position\": 10.0,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"enable_news_veto\": false\n}\n```\n\n## CLI Options\n\n```bash\npython fastloop_trader.py                    # Dry run\npython fastloop_trader.py --live             # Real trades\npython fastloop_trader.py --live --quiet     # Silent except trades/errors\npython fastloop_trader.py --smart-sizing     # Portfolio-based sizing\npython fastloop_trader.py --positions        # Show open fast market positions\npython fastloop_trader.py --config           # Show current config\npython fastloop_trader.py --set KEY=VALUE    # Update config\n```\n\n## Signal Logic\n\nDefault signal (Binance momentum):\n\n1. Fetch last 5 one-minute candles from Binance (`BTCUSDT`)\n2. Calculate momentum: `(price_now - price_5min_ago) / price_5min_ago`\n3. Compare momentum direction to current Polymarket odds\n4. Trade when:\n   - Momentum ≥ `min_momentum_pct` (default 0.5%)\n   - Price diverges from 50¢ by ≥ `entry_threshold` (default 5¢)\n   - Volume ratio > 0.5x average (filters out thin moves)\n\n**Example:** BTC up 0.8% in last 5 min, but fast market YES price is only $0.52. The 3¢ divergence from the expected ~$0.55 → buy YES.\n\n### Remix It: Plug In Your Own Signal\n\n**This skill is a template.** The default Binance momentum signal is just a starting point. The skill handles all the boring parts (market discovery, import, order execution, budget tracking). You bring the signal.\n\nIdeas for custom signals:\n- **Multi-exchange spreads:** Compare prices across Binance, Kraken, Bitfinex — divergence between exchanges can predict CLOB direction\n- **Sentiment:** Layer in Twitter/social signals — a viral tweet can move fast markets before the CLOB adjusts\n- **Technical indicators:** RSI, VWAP, order flow analysis from your favorite data source\n- **News:** Breaking news correlation — use your agent's reasoning to interpret headlines\n- **On-chain data:** Whale movements, funding rates, liquidation levels\n\nTo customize, edit `get_momentum()` in `fastloop_trader.py` or add your own signal function. The rest of the skill (discovery, import, sizing, fee-aware EV check) stays the same.\n\n## Example Output\n\n```\n⚡ Simmer FastLoop Trading Skill\n==================================================\n\n  [DRY RUN] No trades will be executed. Use --live to enable trading.\n\n⚙️  Configuration:\n  Asset:            BTC\n  Entry threshold:  0.05 (min divergence from 50¢)\n  Min momentum:     0.5% (min price move)\n  Max position:     $5.00\n  Signal source:    binance\n  Lookback:         5 minutes\n  Min time left:    60s\n  Volume weighting: ✓\n\n🔍 Discovering BTC fast markets...\n  Found 3 active fast markets\n\n🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET\n  Expires in: 185s\n  Current YES price: $0.480\n\n📈 Fetching BTC price signal (binance)...\n  Price: $97,234.50 (was $96,812.30)\n  Momentum: +0.436%\n  Direction: up\n  Volume ratio: 1.45x avg\n\n🧠 Analyzing...\n  ⏸️  Momentum 0.436% < minimum 0.500% — skip\n\n📊 Summary: No trade (momentum too weak: 0.436%)\n```\n\n## Source Tagging\n\nAll trades are tagged with `source: \"sdk:fastloop\"`. This means:\n- Portfolio shows breakdown by strategy\n- Other skills won't interfere with your fast market positions\n- You can track fast market P&L separately\n\n## Troubleshooting\n\n**\"No active fast markets found\"**\n- Fast markets may not be running (off-hours, weekends)\n- Check Polymarket directly for active BTC fast markets\n\n**\"No fast markets with >60s remaining\"**\n- Current window is about to expire, next one isn't live yet\n- Reduce `min_time_remaining` if you want to trade closer to expiry\n\n**\"Import failed: Rate limit exceeded\"**\n- Free tier: 10 imports/day. Pro: 50/day\n- Fast market trading needs Pro for reasonable frequency\n\n**\"Failed to fetch price data\"**\n- Binance API may be down or rate limited\n- Try `--set signal_source=coingecko` as fallback\n\n**\"Trade failed: no liquidity\"**\n- Fast market has thin book, try smaller position size\n\n**\"External wallet requires a pre-signed order\"**\n- `WALLET_PRIVATE_KEY` is not set in the environment\n- The SDK signs orders automatically when this env var is present — no manual signing code needed\n- Fix: `export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>`\n- Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n**\"Balance shows $0 but I have funds on Polygon\"**\n- 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](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill) with one click (~30s)\n- If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD\n- Full migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v1.7.3:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"polymarket-fast-loop\",\n  \"version\": \"1.7.3\",\n  \"publishedAt\": 1786258344358\n}\n\nFile v1.7.3:DISCLAIMER.md\n\n# Disclaimer\n\nThis skill is a **framework**, not a production trading system. Read this\nin full before connecting it to a wallet with real funds.\n\n## No financial advice\n\nNothing in this skill constitutes financial, investment, or trading\nadvice. The default strategy implemented here is a starting point, not a\ntested edge. Suitability for any account size or risk tolerance is your\nresponsibility to assess.\n\n## Default parameters are not validated\n\nDefault parameters are calibrated for testing the plumbing, not for live\nprofit. They have not been validated to produce positive returns under\ncurrent market conditions. Run paper mode for an extended period before\nscaling beyond default position sizes.\n\n## Automated trading carries irreversible risk\n\nWhen this skill runs with `--live`, it places real on-chain orders.\nOn-chain trades cannot be recalled. Strategy errors, signal lag, market\nregime shifts, and operator misconfiguration can produce losses\nexceeding any specific position size.\n\n## Risk monitoring may not apply to all market types\n\nStop-loss and take-profit monitors run on a fixed schedule. Markets that\nresolve faster than the monitor cycle cannot be exited automatically.\nPosition sizing is the only risk control on these markets — set it\nconservatively.\n\n## Use of this skill is at your own risk\n\nBy installing and running this skill you agree that the authors are not\nliable for any losses, direct or indirect, that arise from its use. This\napplies regardless of skill provenance — official Simmer skills,\ncommunity skills, and skills imported from external repositories all\ncarry this same disclaimer.\n\n## Where to learn more before going live\n\n- The skill's own `SKILL.md` documents the strategy and parameters\n- Your trading venue's documentation covers fee structure, order types,\n  and resolution rules\n- Simmer SDK documentation covers paper mode, dry-run flags, and\n  position monitoring\n\nFile v1.7.3:skill-card.md\n\n## Description:\n\nTrade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[simmer](https://clawhub.ai/user/simmer)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and trading operators use this skill to configure and run an agent-managed Polymarket fast-market trading loop using crypto price momentum signals.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Live execution can place real Polymarket orders and expose funds to trading losses.\n\nMitigation: Start in paper or dry-run mode, use small max-position and daily-budget limits, and enable --live only after reviewing the configuration and wallet setup.\n\nRisk: The security evidence reports account-level redemption behavior that may change financial state even when the user expects read-only operation.\n\nMitigation: Review or remove the auto_redeem step before treating dry-run as strictly read-only, and run the skill with a wallet funded only for the intended strategy.\n\nRisk: A leaked WALLET_PRIVATE_KEY can compromise the wallet used for live trading.\n\nMitigation: Keep WALLET_PRIVATE_KEY out of chat logs and shared files, prefer managed-wallet operation when appropriate, and isolate credentials to the runtime environment.\n\nRisk: Sub-15-minute markets may resolve before stop-loss or take-profit monitors can act.\n\nMitigation: Use conservative sizing and daily budgets because position sizing is the primary risk control for these fast markets.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/simmer/skills/polymarket-fast-loop)\n- [Simmer Dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill)\n- [Simmer V2 Migration Guide](https://docs.simmer.markets/v2-migration)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell commands, configuration examples, and command output summaries]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Can guide setup, update configuration, report paper-mode opportunities, and execute live order workflows only when configured and invoked for live trading.]\n\n## Skill Version(s):\n\n1.7.3 (source: evidence.release.version and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.7.3:clawhub.json\n\n{\n  \"emoji\": \"\\u26a1\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk>=0.17.32\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key \\u2014 get from simmer.markets/dashboard\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Only needed for external-wallet self-custody trading. Not required when using managed wallets.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": true,\n    \"entrypoint\": \"fastloop_trader.py\"\n  },\n  \"tunables\": [\n    {\n      \"env\": \"SIMMER_FASTLOOP_ENTRY_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.3\n      ],\n      \"step\": 0.01,\n      \"label\": \"Entry edge threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MOMENTUM_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.03,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Momentum threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MAX_POSITION_USD\",\n      \"type\": \"number\",\n      \"default\": 10,\n      \"range\": [\n        1,\n        50\n      ],\n      \"step\": 5,\n      \"label\": \"Max position size\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_LOOKBACK_MINUTES\",\n      \"type\": \"number\",\n      \"default\": 30,\n      \"range\": [\n        5,\n        120\n      ],\n      \"step\": 5,\n      \"label\": \"Lookback window (minutes)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_DAILY_BUDGET_USD\",\n      \"type\": \"number\",\n      \"default\": 50,\n      \"range\": [\n        10,\n        100\n      ],\n      \"step\": 10,\n      \"label\": \"Daily budget\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_VOL_CONFIDENCE_MIN\",\n      \"type\": \"number\",\n      \"default\": 0.5,\n      \"range\": [\n        0.1,\n        1.0\n      ],\n      \"step\": 0.05,\n      \"label\": \"Minimum volatility confidence\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FAIR_VALUE\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"label\": \"Use N(d) fair-value model\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FV_MIN_EDGE\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Fair-value min edge (fraction)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_ANNUAL_VOL\",\n      \"type\": \"number\",\n      \"default\": 0.55,\n      \"range\": [\n        0.3,\n        1.5\n      ],\n      \"step\": 0.05,\n      \"label\": \"BTC annual volatility for N(d) model\"\n    }\n  ]\n}\n\nFile v1.7.3:config.json\n\n{\n  \"entry_threshold\": 0.05,\n  \"min_momentum_pct\": 0.5,\n  \"max_position\": 5.0,\n  \"lookback_minutes\": 5,\n  \"min_time_remaining\": 60,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"volume_confidence\": true\n}\n\nArchive v1.7.2: 9 files, 32970 bytes\n\nFiles: clawhub.json (2570b), config.json (228b), DISCLAIMER.md (1925b), fastloop_trader.py (65767b), skill-card.md (2453b), SKILL.md (11602b), tests/test_fastloop_orderbook_summary.py (5682b), tests/test_fastloop_preflight_gate.py (5908b), _meta.json (139b)\n\nFile v1.7.2:SKILL.md\n\n---\nname: polymarket-fast-loop\ndescription: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\nmetadata:\n  author: Simmer (@simmer_markets)\n  version: \"1.7.2\"\n  displayName: Polymarket FastLoop Trader\n  difficulty: advanced\n---\n# Polymarket FastLoop Trader\n\nTrade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.\n\n> **Polymarket only.** All trades execute on Polymarket with real USDC. Use `--live` for real trades, dry-run is the default.\n\n> **This is a template.** The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.\n\n> ⚠️ Fast markets carry Polymarket's crypto taker fee (`is_paid: true`). Effective rate is 3.5% at 50¢, up to ~6.6% on cheap shares (e.g. 5¢ NO). Makers pay 0% and earn a 20% rebate from collected taker fees. Factor this into your edge calculations.\n\n> ⚠️ **Risk monitoring does not apply to sub-15-minute markets.** Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.\n\n> **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.\n\n## How It Finds Markets\n\n- Queries **Polymarket directly** (Gamma API) for live fast markets — doesn't depend on Simmer's market inventory\n- Discovers new markets as they appear, every cycle\n- Works with BTC, ETH, or SOL — just change the asset (`--set asset=ETH`) or ask your bot to look for whatever market you want\n- Runs every 5 minutes to catch each trading window (or every 1 minute for mid-window opportunities)\n\n**You don't need to wait for markets to show up in Simmer.** FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.\n\n> 🚨 **Framework, not a production trading system.** Read [DISCLAIMER.md](./DISCLAIMER.md) before connecting to a wallet with real funds.\n\n## When to Use This Skill\n\nUse this skill when the user wants to:\n- Trade crypto sprint/fast markets (5-minute or 15-minute) on any supported asset\n- Automate short-term crypto prediction trading\n- Use CEX price momentum (or any custom signal) as a Polymarket signal\n- Monitor sprint market positions\n\n## Setup Flow\n\nWhen user asks to install or configure this skill:\n\n1. **Install the Simmer SDK**\n   ```bash\n   pip install simmer-sdk\n   ```\n\n2. **Ask for Simmer API key**\n   - Get from simmer.markets/dashboard → SDK tab\n   - Store in environment as `SIMMER_API_KEY`\n\n3. **Ask for wallet private key** (required for live trading)\n   - This is the private key for their Polymarket wallet (the wallet that holds USDC)\n   - Store in environment as `WALLET_PRIVATE_KEY`\n   - The SDK uses this to sign orders client-side automatically — no manual signing needed\n\n4. **Ask about settings** (or confirm defaults)\n   - Asset: BTC, ETH, or SOL (default BTC)\n   - Entry threshold: Min divergence to trade (default 5¢)\n   - Max position: Amount per trade (default $5.00)\n   - Window: 5m or 15m (default 5m)\n\n5. **Set up cron or loop** (user drives scheduling — see \"How to Run on a Loop\")\n\n## Quick Start\n\n```bash\n# Set your API key\nexport SIMMER_API_KEY=\"your-key-here\"\n\n# Dry run — see what would happen\npython fastloop_trader.py\n\n# Go live\npython fastloop_trader.py --live\n\n# Live + quiet (for cron/heartbeat loops)\npython fastloop_trader.py --live --quiet\n\n# Live + smart sizing (5% of balance per trade)\npython fastloop_trader.py --live --smart-sizing --quiet\n```\n\n## How to Run on a Loop\n\nThe script runs **one cycle** — your bot drives the loop. Set up a cron job or heartbeat:\n\n**Linux crontab** (local/VPS installs):\n```\n# Every 5 minutes (one per fast market window)\n*/5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n\n# Every 1 minute (more aggressive, catches mid-window opportunities)\n* * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n```\n\n**OpenClaw native cron** (containerized or OpenClaw-managed setups):\n```bash\nopenclaw cron add \\\n  --name \"Fast Loop Trader\" \\\n  --cron \"*/5 * * * *\" \\\n  --tz \"UTC\" \\\n  --session isolated \\\n  --message \"Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary.\" \\\n  --announce\n```\n\n**Via OpenClaw heartbeat:** Add to your HEARTBEAT.md:\n```\nRun: cd /path/to/fast market && python fastloop_trader.py --live --quiet\n```\n\n## Configuration\n\nConfigure via `config.json`, environment variables, or `--set`:\n\n```bash\n# Change entry threshold\npython fastloop_trader.py --set entry_threshold=0.08\n\n# Trade ETH instead of BTC\npython fastloop_trader.py --set asset=ETH\n\n# Multiple settings\npython fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10\n```\n\n### Settings\n\n| Setting | Default | Env Var | Description |\n|---------|---------|---------|-------------|\n| `entry_threshold` | 0.05 | `SIMMER_SPRINT_ENTRY` | Min price divergence from 50¢ to trigger |\n| `min_momentum_pct` | 0.5 | `SIMMER_SPRINT_MOMENTUM` | Min BTC % move to trigger |\n| `max_position` | 5.0 | `SIMMER_SPRINT_MAX_POSITION` | Max $ per trade |\n| `signal_source` | binance | `SIMMER_SPRINT_SIGNAL` | Price feed (binance, coingecko) |\n| `lookback_minutes` | 5 | `SIMMER_SPRINT_LOOKBACK` | Minutes of price history |\n| `min_time_remaining` | 60 | `SIMMER_SPRINT_MIN_TIME` | Skip fast markets with less time left (seconds) |\n| `asset` | BTC | `SIMMER_SPRINT_ASSET` | Asset to trade (BTC, ETH, SOL) |\n| `window` | 5m | `SIMMER_SPRINT_WINDOW` | Market window duration (5m or 15m) |\n| `volume_confidence` | true | `SIMMER_SPRINT_VOL_CONF` | Weight signal by Binance volume |\n| `enable_news_veto` | false | `SIMMER_FASTLOOP_ENABLE_NEWS_VETO` | Skip matching news-resolution markets within 30s of scheduled macro/news releases |\n\n### Example config.json\n\n```json\n{\n  \"entry_threshold\": 0.08,\n  \"min_momentum_pct\": 0.3,\n  \"max_position\": 10.0,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"enable_news_veto\": false\n}\n```\n\n## CLI Options\n\n```bash\npython fastloop_trader.py                    # Dry run\npython fastloop_trader.py --live             # Real trades\npython fastloop_trader.py --live --quiet     # Silent except trades/errors\npython fastloop_trader.py --smart-sizing     # Portfolio-based sizing\npython fastloop_trader.py --positions        # Show open fast market positions\npython fastloop_trader.py --config           # Show current config\npython fastloop_trader.py --set KEY=VALUE    # Update config\n```\n\n## Signal Logic\n\nDefault signal (Binance momentum):\n\n1. Fetch last 5 one-minute candles from Binance (`BTCUSDT`)\n2. Calculate momentum: `(price_now - price_5min_ago) / price_5min_ago`\n3. Compare momentum direction to current Polymarket odds\n4. Trade when:\n   - Momentum ≥ `min_momentum_pct` (default 0.5%)\n   - Price diverges from 50¢ by ≥ `entry_threshold` (default 5¢)\n   - Volume ratio > 0.5x average (filters out thin moves)\n\n**Example:** BTC up 0.8% in last 5 min, but fast market YES price is only $0.52. The 3¢ divergence from the expected ~$0.55 → buy YES.\n\n### Remix It: Plug In Your Own Signal\n\n**This skill is a template.** The default Binance momentum signal is just a starting point. The skill handles all the boring parts (market discovery, import, order execution, budget tracking). You bring the signal.\n\nIdeas for custom signals:\n- **Multi-exchange spreads:** Compare prices across Binance, Kraken, Bitfinex — divergence between exchanges can predict CLOB direction\n- **Sentiment:** Layer in Twitter/social signals — a viral tweet can move fast markets before the CLOB adjusts\n- **Technical indicators:** RSI, VWAP, order flow analysis from your favorite data source\n- **News:** Breaking news correlation — use your agent's reasoning to interpret headlines\n- **On-chain data:** Whale movements, funding rates, liquidation levels\n\nTo customize, edit `get_momentum()` in `fastloop_trader.py` or add your own signal function. The rest of the skill (discovery, import, sizing, fee-aware EV check) stays the same.\n\n## Example Output\n\n```\n⚡ Simmer FastLoop Trading Skill\n==================================================\n\n  [DRY RUN] No trades will be executed. Use --live to enable trading.\n\n⚙️  Configuration:\n  Asset:            BTC\n  Entry threshold:  0.05 (min divergence from 50¢)\n  Min momentum:     0.5% (min price move)\n  Max position:     $5.00\n  Signal source:    binance\n  Lookback:         5 minutes\n  Min time left:    60s\n  Volume weighting: ✓\n\n🔍 Discovering BTC fast markets...\n  Found 3 active fast markets\n\n🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET\n  Expires in: 185s\n  Current YES price: $0.480\n\n📈 Fetching BTC price signal (binance)...\n  Price: $97,234.50 (was $96,812.30)\n  Momentum: +0.436%\n  Direction: up\n  Volume ratio: 1.45x avg\n\n🧠 Analyzing...\n  ⏸️  Momentum 0.436% < minimum 0.500% — skip\n\n📊 Summary: No trade (momentum too weak: 0.436%)\n```\n\n## Source Tagging\n\nAll trades are tagged with `source: \"sdk:fastloop\"`. This means:\n- Portfolio shows breakdown by strategy\n- Other skills won't interfere with your fast market positions\n- You can track fast market P&L separately\n\n## Troubleshooting\n\n**\"No active fast markets found\"**\n- Fast markets may not be running (off-hours, weekends)\n- Check Polymarket directly for active BTC fast markets\n\n**\"No fast markets with >60s remaining\"**\n- Current window is about to expire, next one isn't live yet\n- Reduce `min_time_remaining` if you want to trade closer to expiry\n\n**\"Import failed: Rate limit exceeded\"**\n- Free tier: 10 imports/day. Pro: 50/day\n- Fast market trading needs Pro for reasonable frequency\n\n**\"Failed to fetch price data\"**\n- Binance API may be down or rate limited\n- Try `--set signal_source=coingecko` as fallback\n\n**\"Trade failed: no liquidity\"**\n- Fast market has thin book, try smaller position size\n\n**\"External wallet requires a pre-signed order\"**\n- `WALLET_PRIVATE_KEY` is not set in the environment\n- The SDK signs orders automatically when this env var is present — no manual signing code needed\n- Fix: `export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>`\n- Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n**\"Balance shows $0 but I have funds on Polygon\"**\n- 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](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill) with one click (~30s)\n- If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD\n- Full migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v1.7.2:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"polymarket-fast-loop\",\n  \"version\": \"1.7.2\",\n  \"publishedAt\": 1786256539592\n}\n\nFile v1.7.2:DISCLAIMER.md\n\n# Disclaimer\n\nThis skill is a **framework**, not a production trading system. Read this\nin full before connecting it to a wallet with real funds.\n\n## No financial advice\n\nNothing in this skill constitutes financial, investment, or trading\nadvice. The default strategy implemented here is a starting point, not a\ntested edge. Suitability for any account size or risk tolerance is your\nresponsibility to assess.\n\n## Default parameters are not validated\n\nDefault parameters are calibrated for testing the plumbing, not for live\nprofit. They have not been validated to produce positive returns under\ncurrent market conditions. Run paper mode for an extended period before\nscaling beyond default position sizes.\n\n## Automated trading carries irreversible risk\n\nWhen this skill runs with `--live`, it places real on-chain orders.\nOn-chain trades cannot be recalled. Strategy errors, signal lag, market\nregime shifts, and operator misconfiguration can produce losses\nexceeding any specific position size.\n\n## Risk monitoring may not apply to all market types\n\nStop-loss and take-profit monitors run on a fixed schedule. Markets that\nresolve faster than the monitor cycle cannot be exited automatically.\nPosition sizing is the only risk control on these markets — set it\nconservatively.\n\n## Use of this skill is at your own risk\n\nBy installing and running this skill you agree that the authors are not\nliable for any losses, direct or indirect, that arise from its use. This\napplies regardless of skill provenance — official Simmer skills,\ncommunity skills, and skills imported from external repositories all\ncarry this same disclaimer.\n\n## Where to learn more before going live\n\n- The skill's own `SKILL.md` documents the strategy and parameters\n- Your trading venue's documentation covers fee structure, order types,\n  and resolution rules\n- Simmer SDK documentation covers paper mode, dry-run flags, and\n  position monitoring\n\nFile v1.7.2:skill-card.md\n\n## Description:\n\nAutomates Polymarket BTC 5-minute and 15-minute fast-market trading using CEX price momentum signals through the Simmer API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[simmer](https://clawhub.ai/user/simmer)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and trading automation developers use this skill to discover Polymarket fast markets, evaluate CEX momentum signals, configure dry-run or live execution, and monitor short-duration positions.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Live mode can place recurring real-money Polymarket orders.\n\nMitigation: Start in dry-run mode, enable `--live` only after reviewing behavior, and use conservative position and daily-budget limits.\n\nRisk: Sensitive wallet credentials may be exposed if `WALLET_PRIVATE_KEY` is configured unnecessarily.\n\nMitigation: Prefer managed-wallet mode and only provide `WALLET_PRIVATE_KEY` when external-wallet self-custody trading is required.\n\nRisk: Automated account actions, including redemption and GTC order-cancellation behavior, may affect funds or open orders.\n\nMitigation: Review those behaviors before enabling cron or heartbeat automation.\n\nRisk: Fast markets can resolve before scheduled stop-loss or take-profit monitoring can react.\n\nMitigation: Treat position sizing as the primary control for sub-15-minute markets and size trades conservatively.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/simmer/skills/polymarket-fast-loop)\n- [Skill documentation](artifact/SKILL.md)\n- [Disclaimer](artifact/DISCLAIMER.md)\n- [Simmer V2 migration guide](https://docs.simmer.markets/v2-migration)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands, configuration values, and runtime text output from the trading script]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Dry-run is the default; live mode can place real Polymarket orders when explicitly enabled.]\n\n## Skill Version(s):\n\n1.7.2 (source: server release metadata and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.7.2:clawhub.json\n\n{\n  \"emoji\": \"\\u26a1\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk>=0.17.32\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key \\u2014 get from simmer.markets/dashboard\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Only needed for external-wallet self-custody trading. Not required when using managed wallets.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": true,\n    \"entrypoint\": \"fastloop_trader.py\"\n  },\n  \"tunables\": [\n    {\n      \"env\": \"SIMMER_FASTLOOP_ENTRY_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.3\n      ],\n      \"step\": 0.01,\n      \"label\": \"Entry edge threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MOMENTUM_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.03,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Momentum threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MAX_POSITION_USD\",\n      \"type\": \"number\",\n      \"default\": 10,\n      \"range\": [\n        1,\n        50\n      ],\n      \"step\": 5,\n      \"label\": \"Max position size\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_LOOKBACK_MINUTES\",\n      \"type\": \"number\",\n      \"default\": 30,\n      \"range\": [\n        5,\n        120\n      ],\n      \"step\": 5,\n      \"label\": \"Lookback window (minutes)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_DAILY_BUDGET_USD\",\n      \"type\": \"number\",\n      \"default\": 50,\n      \"range\": [\n        10,\n        100\n      ],\n      \"step\": 10,\n      \"label\": \"Daily budget\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_VOL_CONFIDENCE_MIN\",\n      \"type\": \"number\",\n      \"default\": 0.5,\n      \"range\": [\n        0.1,\n        1.0\n      ],\n      \"step\": 0.05,\n      \"label\": \"Minimum volatility confidence\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FAIR_VALUE\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"label\": \"Use N(d) fair-value model\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FV_MIN_EDGE\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Fair-value min edge (fraction)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_ANNUAL_VOL\",\n      \"type\": \"number\",\n      \"default\": 0.55,\n      \"range\": [\n        0.3,\n        1.5\n      ],\n      \"step\": 0.05,\n      \"label\": \"BTC annual volatility for N(d) model\"\n    }\n  ]\n}\n\nFile v1.7.2:config.json\n\n{\n  \"entry_threshold\": 0.05,\n  \"min_momentum_pct\": 0.5,\n  \"max_position\": 5.0,\n  \"lookback_minutes\": 5,\n  \"min_time_remaining\": 60,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"volume_confidence\": true\n}\n\nArchive v1.7.1: 9 files, 32728 bytes\n\nFiles: clawhub.json (2570b), config.json (228b), DISCLAIMER.md (1925b), fastloop_trader.py (65205b), skill-card.md (2597b), SKILL.md (11602b), tests/test_fastloop_orderbook_summary.py (5682b), tests/test_fastloop_preflight_gate.py (5908b), _meta.json (139b)\n\nFile v1.7.1:SKILL.md\n\n---\nname: polymarket-fast-loop\ndescription: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\nmetadata:\n  author: Simmer (@simmer_markets)\n  version: \"1.7.1\"\n  displayName: Polymarket FastLoop Trader\n  difficulty: advanced\n---\n# Polymarket FastLoop Trader\n\nTrade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.\n\n> **Polymarket only.** All trades execute on Polymarket with real USDC. Use `--live` for real trades, dry-run is the default.\n\n> **This is a template.** The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.\n\n> ⚠️ Fast markets carry Polymarket's crypto taker fee (`is_paid: true`). Effective rate is 3.5% at 50¢, up to ~6.6% on cheap shares (e.g. 5¢ NO). Makers pay 0% and earn a 20% rebate from collected taker fees. Factor this into your edge calculations.\n\n> ⚠️ **Risk monitoring does not apply to sub-15-minute markets.** Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.\n\n> **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.\n\n## How It Finds Markets\n\n- Queries **Polymarket directly** (Gamma API) for live fast markets — doesn't depend on Simmer's market inventory\n- Discovers new markets as they appear, every cycle\n- Works with BTC, ETH, or SOL — just change the asset (`--set asset=ETH`) or ask your bot to look for whatever market you want\n- Runs every 5 minutes to catch each trading window (or every 1 minute for mid-window opportunities)\n\n**You don't need to wait for markets to show up in Simmer.** FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.\n\n> 🚨 **Framework, not a production trading system.** Read [DISCLAIMER.md](./DISCLAIMER.md) before connecting to a wallet with real funds.\n\n## When to Use This Skill\n\nUse this skill when the user wants to:\n- Trade crypto sprint/fast markets (5-minute or 15-minute) on any supported asset\n- Automate short-term crypto prediction trading\n- Use CEX price momentum (or any custom signal) as a Polymarket signal\n- Monitor sprint market positions\n\n## Setup Flow\n\nWhen user asks to install or configure this skill:\n\n1. **Install the Simmer SDK**\n   ```bash\n   pip install simmer-sdk\n   ```\n\n2. **Ask for Simmer API key**\n   - Get from simmer.markets/dashboard → SDK tab\n   - Store in environment as `SIMMER_API_KEY`\n\n3. **Ask for wallet private key** (required for live trading)\n   - This is the private key for their Polymarket wallet (the wallet that holds USDC)\n   - Store in environment as `WALLET_PRIVATE_KEY`\n   - The SDK uses this to sign orders client-side automatically — no manual signing needed\n\n4. **Ask about settings** (or confirm defaults)\n   - Asset: BTC, ETH, or SOL (default BTC)\n   - Entry threshold: Min divergence to trade (default 5¢)\n   - Max position: Amount per trade (default $5.00)\n   - Window: 5m or 15m (default 5m)\n\n5. **Set up cron or loop** (user drives scheduling — see \"How to Run on a Loop\")\n\n## Quick Start\n\n```bash\n# Set your API key\nexport SIMMER_API_KEY=\"your-key-here\"\n\n# Dry run — see what would happen\npython fastloop_trader.py\n\n# Go live\npython fastloop_trader.py --live\n\n# Live + quiet (for cron/heartbeat loops)\npython fastloop_trader.py --live --quiet\n\n# Live + smart sizing (5% of balance per trade)\npython fastloop_trader.py --live --smart-sizing --quiet\n```\n\n## How to Run on a Loop\n\nThe script runs **one cycle** — your bot drives the loop. Set up a cron job or heartbeat:\n\n**Linux crontab** (local/VPS installs):\n```\n# Every 5 minutes (one per fast market window)\n*/5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n\n# Every 1 minute (more aggressive, catches mid-window opportunities)\n* * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n```\n\n**OpenClaw native cron** (containerized or OpenClaw-managed setups):\n```bash\nopenclaw cron add \\\n  --name \"Fast Loop Trader\" \\\n  --cron \"*/5 * * * *\" \\\n  --tz \"UTC\" \\\n  --session isolated \\\n  --message \"Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary.\" \\\n  --announce\n```\n\n**Via OpenClaw heartbeat:** Add to your HEARTBEAT.md:\n```\nRun: cd /path/to/fast market && python fastloop_trader.py --live --quiet\n```\n\n## Configuration\n\nConfigure via `config.json`, environment variables, or `--set`:\n\n```bash\n# Change entry threshold\npython fastloop_trader.py --set entry_threshold=0.08\n\n# Trade ETH instead of BTC\npython fastloop_trader.py --set asset=ETH\n\n# Multiple settings\npython fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10\n```\n\n### Settings\n\n| Setting | Default | Env Var | Description |\n|---------|---------|---------|-------------|\n| `entry_threshold` | 0.05 | `SIMMER_SPRINT_ENTRY` | Min price divergence from 50¢ to trigger |\n| `min_momentum_pct` | 0.5 | `SIMMER_SPRINT_MOMENTUM` | Min BTC % move to trigger |\n| `max_position` | 5.0 | `SIMMER_SPRINT_MAX_POSITION` | Max $ per trade |\n| `signal_source` | binance | `SIMMER_SPRINT_SIGNAL` | Price feed (binance, coingecko) |\n| `lookback_minutes` | 5 | `SIMMER_SPRINT_LOOKBACK` | Minutes of price history |\n| `min_time_remaining` | 60 | `SIMMER_SPRINT_MIN_TIME` | Skip fast markets with less time left (seconds) |\n| `asset` | BTC | `SIMMER_SPRINT_ASSET` | Asset to trade (BTC, ETH, SOL) |\n| `window` | 5m | `SIMMER_SPRINT_WINDOW` | Market window duration (5m or 15m) |\n| `volume_confidence` | true | `SIMMER_SPRINT_VOL_CONF` | Weight signal by Binance volume |\n| `enable_news_veto` | false | `SIMMER_FASTLOOP_ENABLE_NEWS_VETO` | Skip matching news-resolution markets within 30s of scheduled macro/news releases |\n\n### Example config.json\n\n```json\n{\n  \"entry_threshold\": 0.08,\n  \"min_momentum_pct\": 0.3,\n  \"max_position\": 10.0,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"enable_news_veto\": false\n}\n```\n\n## CLI Options\n\n```bash\npython fastloop_trader.py                    # Dry run\npython fastloop_trader.py --live             # Real trades\npython fastloop_trader.py --live --quiet     # Silent except trades/errors\npython fastloop_trader.py --smart-sizing     # Portfolio-based sizing\npython fastloop_trader.py --positions        # Show open fast market positions\npython fastloop_trader.py --config           # Show current config\npython fastloop_trader.py --set KEY=VALUE    # Update config\n```\n\n## Signal Logic\n\nDefault signal (Binance momentum):\n\n1. Fetch last 5 one-minute candles from Binance (`BTCUSDT`)\n2. Calculate momentum: `(price_now - price_5min_ago) / price_5min_ago`\n3. Compare momentum direction to current Polymarket odds\n4. Trade when:\n   - Momentum ≥ `min_momentum_pct` (default 0.5%)\n   - Price diverges from 50¢ by ≥ `entry_threshold` (default 5¢)\n   - Volume ratio > 0.5x average (filters out thin moves)\n\n**Example:** BTC up 0.8% in last 5 min, but fast market YES price is only $0.52. The 3¢ divergence from the expected ~$0.55 → buy YES.\n\n### Remix It: Plug In Your Own Signal\n\n**This skill is a template.** The default Binance momentum signal is just a starting point. The skill handles all the boring parts (market discovery, import, order execution, budget tracking). You bring the signal.\n\nIdeas for custom signals:\n- **Multi-exchange spreads:** Compare prices across Binance, Kraken, Bitfinex — divergence between exchanges can predict CLOB direction\n- **Sentiment:** Layer in Twitter/social signals — a viral tweet can move fast markets before the CLOB adjusts\n- **Technical indicators:** RSI, VWAP, order flow analysis from your favorite data source\n- **News:** Breaking news correlation — use your agent's reasoning to interpret headlines\n- **On-chain data:** Whale movements, funding rates, liquidation levels\n\nTo customize, edit `get_momentum()` in `fastloop_trader.py` or add your own signal function. The rest of the skill (discovery, import, sizing, fee-aware EV check) stays the same.\n\n## Example Output\n\n```\n⚡ Simmer FastLoop Trading Skill\n==================================================\n\n  [DRY RUN] No trades will be executed. Use --live to enable trading.\n\n⚙️  Configuration:\n  Asset:            BTC\n  Entry threshold:  0.05 (min divergence from 50¢)\n  Min momentum:     0.5% (min price move)\n  Max position:     $5.00\n  Signal source:    binance\n  Lookback:         5 minutes\n  Min time left:    60s\n  Volume weighting: ✓\n\n🔍 Discovering BTC fast markets...\n  Found 3 active fast markets\n\n🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET\n  Expires in: 185s\n  Current YES price: $0.480\n\n📈 Fetching BTC price signal (binance)...\n  Price: $97,234.50 (was $96,812.30)\n  Momentum: +0.436%\n  Direction: up\n  Volume ratio: 1.45x avg\n\n🧠 Analyzing...\n  ⏸️  Momentum 0.436% < minimum 0.500% — skip\n\n📊 Summary: No trade (momentum too weak: 0.436%)\n```\n\n## Source Tagging\n\nAll trades are tagged with `source: \"sdk:fastloop\"`. This means:\n- Portfolio shows breakdown by strategy\n- Other skills won't interfere with your fast market positions\n- You can track fast market P&L separately\n\n## Troubleshooting\n\n**\"No active fast markets found\"**\n- Fast markets may not be running (off-hours, weekends)\n- Check Polymarket directly for active BTC fast markets\n\n**\"No fast markets with >60s remaining\"**\n- Current window is about to expire, next one isn't live yet\n- Reduce `min_time_remaining` if you want to trade closer to expiry\n\n**\"Import failed: Rate limit exceeded\"**\n- Free tier: 10 imports/day. Pro: 50/day\n- Fast market trading needs Pro for reasonable frequency\n\n**\"Failed to fetch price data\"**\n- Binance API may be down or rate limited\n- Try `--set signal_source=coingecko` as fallback\n\n**\"Trade failed: no liquidity\"**\n- Fast market has thin book, try smaller position size\n\n**\"External wallet requires a pre-signed order\"**\n- `WALLET_PRIVATE_KEY` is not set in the environment\n- The SDK signs orders automatically when this env var is present — no manual signing code needed\n- Fix: `export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>`\n- Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n**\"Balance shows $0 but I have funds on Polygon\"**\n- 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](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill) with one click (~30s)\n- If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD\n- Full migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v1.7.1:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"polymarket-fast-loop\",\n  \"version\": \"1.7.1\",\n  \"publishedAt\": 1786251521861\n}\n\nFile v1.7.1:DISCLAIMER.md\n\n# Disclaimer\n\nThis skill is a **framework**, not a production trading system. Read this\nin full before connecting it to a wallet with real funds.\n\n## No financial advice\n\nNothing in this skill constitutes financial, investment, or trading\nadvice. The default strategy implemented here is a starting point, not a\ntested edge. Suitability for any account size or risk tolerance is your\nresponsibility to assess.\n\n## Default parameters are not validated\n\nDefault parameters are calibrated for testing the plumbing, not for live\nprofit. They have not been validated to produce positive returns under\ncurrent market conditions. Run paper mode for an extended period before\nscaling beyond default position sizes.\n\n## Automated trading carries irreversible risk\n\nWhen this skill runs with `--live`, it places real on-chain orders.\nOn-chain trades cannot be recalled. Strategy errors, signal lag, market\nregime shifts, and operator misconfiguration can produce losses\nexceeding any specific position size.\n\n## Risk monitoring may not apply to all market types\n\nStop-loss and take-profit monitors run on a fixed schedule. Markets that\nresolve faster than the monitor cycle cannot be exited automatically.\nPosition sizing is the only risk control on these markets — set it\nconservatively.\n\n## Use of this skill is at your own risk\n\nBy installing and running this skill you agree that the authors are not\nliable for any losses, direct or indirect, that arise from its use. This\napplies regardless of skill provenance — official Simmer skills,\ncommunity skills, and skills imported from external repositories all\ncarry this same disclaimer.\n\n## Where to learn more before going live\n\n- The skill's own `SKILL.md` documents the strategy and parameters\n- Your trading venue's documentation covers fee structure, order types,\n  and resolution rules\n- Simmer SDK documentation covers paper mode, dry-run flags, and\n  position monitoring\n\nFile v1.7.1:skill-card.md\n\n## Description:\n\nTrade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[simmer](https://clawhub.ai/user/simmer)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and trading-automation developers use this skill to configure and run an agent-assisted Polymarket fast-market strategy based on CEX price momentum signals. It supports dry runs, live trading, market discovery, configurable sizing, and position checks for short-window crypto prediction markets.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Live mode can place real Polymarket orders and automated loops can repeat trades without close supervision.\n\nMitigation: Start in dry run, avoid live cron until behavior is tested, and set conservative daily and per-trade limits.\n\nRisk: External-wallet live trading may require private-key access.\n\nMitigation: Prefer managed wallets or a dedicated low-balance trading wallet, and never paste a main wallet private key into chat or store it in plaintext in shared environments.\n\nRisk: Fast markets can resolve before scheduled stop-loss or take-profit monitors can act.\n\nMitigation: Treat position sizing as the primary control for sub-15-minute markets and do not rely on automated exits for these positions.\n\nRisk: Default strategy parameters are not validated as profitable.\n\nMitigation: Use paper mode for an extended period and validate the strategy before increasing position sizes.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/simmer/skills/polymarket-fast-loop)\n- [Simmer dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill)\n- [Simmer V2 migration guide](https://docs.simmer.markets/v2-migration)\n- [DISCLAIMER.md](artifact/DISCLAIMER.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, Code, Text]\n\n**Output Format:** [Markdown guidance with inline shell commands, JSON configuration, and console text output]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Default execution is dry run; live trading requires explicit --live mode and configured credentials.]\n\n## Skill Version(s):\n\n1.7.1 (source: release evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.7.1:clawhub.json\n\n{\n  \"emoji\": \"\\u26a1\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk>=0.17.32\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key \\u2014 get from simmer.markets/dashboard\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Only needed for external-wallet self-custody trading. Not required when using managed wallets.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": true,\n    \"entrypoint\": \"fastloop_trader.py\"\n  },\n  \"tunables\": [\n    {\n      \"env\": \"SIMMER_FASTLOOP_ENTRY_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.3\n      ],\n      \"step\": 0.01,\n      \"label\": \"Entry edge threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MOMENTUM_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.03,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Momentum threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MAX_POSITION_USD\",\n      \"type\": \"number\",\n      \"default\": 10,\n      \"range\": [\n        1,\n        50\n      ],\n      \"step\": 5,\n      \"label\": \"Max position size\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_LOOKBACK_MINUTES\",\n      \"type\": \"number\",\n      \"default\": 30,\n      \"range\": [\n        5,\n        120\n      ],\n      \"step\": 5,\n      \"label\": \"Lookback window (minutes)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_DAILY_BUDGET_USD\",\n      \"type\": \"number\",\n      \"default\": 50,\n      \"range\": [\n        10,\n        100\n      ],\n      \"step\": 10,\n      \"label\": \"Daily budget\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_VOL_CONFIDENCE_MIN\",\n      \"type\": \"number\",\n      \"default\": 0.5,\n      \"range\": [\n        0.1,\n        1.0\n      ],\n      \"step\": 0.05,\n      \"label\": \"Minimum volatility confidence\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FAIR_VALUE\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"label\": \"Use N(d) fair-value model\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FV_MIN_EDGE\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Fair-value min edge (fraction)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_ANNUAL_VOL\",\n      \"type\": \"number\",\n      \"default\": 0.55,\n      \"range\": [\n        0.3,\n        1.5\n      ],\n      \"step\": 0.05,\n      \"label\": \"BTC annual volatility for N(d) model\"\n    }\n  ]\n}\n\nFile v1.7.1:config.json\n\n{\n  \"entry_threshold\": 0.05,\n  \"min_momentum_pct\": 0.5,\n  \"max_position\": 5.0,\n  \"lookback_minutes\": 5,\n  \"min_time_remaining\": 60,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"volume_confidence\": true\n}\n\nArchive v1.7.0: 8 files, 29856 bytes\n\nFiles: clawhub.json (2570b), config.json (228b), DISCLAIMER.md (1925b), fastloop_trader.py (64068b), skill-card.md (2749b), SKILL.md (11565b), tests/test_fastloop_preflight_gate.py (5908b), _meta.json (139b)\n\nFile v1.7.0:SKILL.md\n\n---\nname: polymarket-fast-loop\ndescription: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\nmetadata:\n  author: Simmer (@simmer_markets)\n  version: \"1.7.0\"\n  displayName: Polymarket FastLoop Trader\n  difficulty: advanced\n---\n# Polymarket FastLoop Trader\n\nTrade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.\n\n> **Polymarket only.** All trades execute on Polymarket with real USDC. Use `--live` for real trades, dry-run is the default.\n\n> **This is a template.** The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.\n\n> ⚠️ Fast markets carry Polymarket's crypto taker fee (`is_paid: true`). Effective rate is 3.5% at 50¢, up to ~6.6% on cheap shares (e.g. 5¢ NO). Makers pay 0% and earn a 20% rebate from collected taker fees. Factor this into your edge calculations.\n\n> ⚠️ **Risk monitoring does not apply to sub-15-minute markets.** Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.\n\n> **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.\n\n## How It Finds Markets\n\n- Queries **Polymarket directly** (Gamma API) for live fast markets — doesn't depend on Simmer's market inventory\n- Discovers new markets as they appear, every cycle\n- Works with BTC, ETH, or SOL — just change the asset (`--set asset=ETH`) or ask your bot to look for whatever market you want\n- Runs every 5 minutes to catch each trading window (or every 1 minute for mid-window opportunities)\n\n**You don't need to wait for markets to show up in Simmer.** FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.\n\n> 🚨 **Framework, not a production trading system.** Read [DISCLAIMER.md](./DISCLAIMER.md) before connecting to a wallet with real funds.\n\n## When to Use This Skill\n\nUse this skill when the user wants to:\n- Trade crypto sprint/fast markets (5-minute or 15-minute) on any supported asset\n- Automate short-term crypto prediction trading\n- Use CEX price momentum (or any custom signal) as a Polymarket signal\n- Monitor sprint market positions\n\n## Setup Flow\n\nWhen user asks to install or configure this skill:\n\n1. **Install the Simmer SDK**\n   ```bash\n   pip install simmer-sdk\n   ```\n\n2. **Ask for Simmer API key**\n   - Get from simmer.markets/dashboard → SDK tab\n   - Store in environment as `SIMMER_API_KEY`\n\n3. **Ask for wallet private key** (required for live trading)\n   - This is the private key for their Polymarket wallet (the wallet that holds USDC)\n   - Store in environment as `WALLET_PRIVATE_KEY`\n   - The SDK uses this to sign orders client-side automatically — no manual signing needed\n\n4. **Ask about settings** (or confirm defaults)\n   - Asset: BTC, ETH, or SOL (default BTC)\n   - Entry threshold: Min divergence to trade (default 5¢)\n   - Max position: Amount per trade (default $5.00)\n   - Window: 5m or 15m (default 5m)\n\n5. **Set up cron or loop** (user drives scheduling — see \"How to Run on a Loop\")\n\n## Quick Start\n\n```bash\n# Set your API key\nexport SIMMER_API_KEY=\"your-key-here\"\n\n# Dry run — see what would happen\npython fastloop_trader.py\n\n# Go live\npython fastloop_trader.py --live\n\n# Live + quiet (for cron/heartbeat loops)\npython fastloop_trader.py --live --quiet\n\n# Live + smart sizing (5% of balance per trade)\npython fastloop_trader.py --live --smart-sizing --quiet\n```\n\n## How to Run on a Loop\n\nThe script runs **one cycle** — your bot drives the loop. Set up a cron job or heartbeat:\n\n**Linux crontab** (local/VPS installs):\n```\n# Every 5 minutes (one per fast market window)\n*/5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n\n# Every 1 minute (more aggressive, catches mid-window opportunities)\n* * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n```\n\n**OpenClaw native cron** (containerized or OpenClaw-managed setups):\n```bash\nopenclaw cron add \\\n  --name \"Fast Loop Trader\" \\\n  --cron \"*/5 * * * *\" \\\n  --tz \"UTC\" \\\n  --session isolated \\\n  --message \"Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary.\" \\\n  --announce\n```\n\n**Via OpenClaw heartbeat:** Add to your HEARTBEAT.md:\n```\nRun: cd /path/to/fast market && python fastloop_trader.py --live --quiet\n```\n\n## Configuration\n\nConfigure via `config.json`, environment variables, or `--set`:\n\n```bash\n# Change entry threshold\npython fastloop_trader.py --set entry_threshold=0.08\n\n# Trade ETH instead of BTC\npython fastloop_trader.py --set asset=ETH\n\n# Multiple settings\npython fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10\n```\n\n### Settings\n\n| Setting | Default | Env Var | Description |\n|---------|---------|---------|-------------|\n| `entry_threshold` | 0.05 | `SIMMER_SPRINT_ENTRY` | Min price divergence from 50¢ to trigger |\n| `min_momentum_pct` | 0.5 | `SIMMER_SPRINT_MOMENTUM` | Min BTC % move to trigger |\n| `max_position` | 5.0 | `SIMMER_SPRINT_MAX_POSITION` | Max $ per trade |\n| `signal_source` | binance | `SIMMER_SPRINT_SIGNAL` | Price feed (binance, coingecko) |\n| `lookback_minutes` | 5 | `SIMMER_SPRINT_LOOKBACK` | Minutes of price history |\n| `min_time_remaining` | 60 | `SIMMER_SPRINT_MIN_TIME` | Skip fast markets with less time left (seconds) |\n| `asset` | BTC | `SIMMER_SPRINT_ASSET` | Asset to trade (BTC, ETH, SOL) |\n| `window` | 5m | `SIMMER_SPRINT_WINDOW` | Market window duration (5m or 15m) |\n| `volume_confidence` | true | `SIMMER_SPRINT_VOL_CONF` | Weight signal by Binance volume |\n| `enable_news_veto` | false | `SIMMER_FASTLOOP_ENABLE_NEWS_VETO` | Skip matching news-resolution markets within 30s of scheduled macro/news releases |\n\n### Example config.json\n\n```json\n{\n  \"entry_threshold\": 0.08,\n  \"min_momentum_pct\": 0.3,\n  \"max_position\": 10.0,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"enable_news_veto\": false\n}\n```\n\n## CLI Options\n\n```bash\npython fastloop_trader.py                    # Dry run\npython fastloop_trader.py --live             # Real trades\npython fastloop_trader.py --live --quiet     # Silent except trades/errors\npython fastloop_trader.py --smart-sizing     # Portfolio-based sizing\npython fastloop_trader.py --positions        # Show open fast market positions\npython fastloop_trader.py --config           # Show current config\npython fastloop_trader.py --set KEY=VALUE    # Update config\n```\n\n## Signal Logic\n\nDefault signal (Binance momentum):\n\n1. Fetch last 5 one-minute candles from Binance (`BTCUSDT`)\n2. Calculate momentum: `(price_now - price_5min_ago) / price_5min_ago`\n3. Compare momentum direction to current Polymarket odds\n4. Trade when:\n   - Momentum ≥ `min_momentum_pct` (default 0.5%)\n   - Price diverges from 50¢ by ≥ `entry_threshold` (default 5¢)\n   - Volume ratio > 0.5x average (filters out thin moves)\n\n**Example:** BTC up 0.8% in last 5 min, but fast market YES price is only $0.52. The 3¢ divergence from the expected ~$0.55 → buy YES.\n\n### Remix It: Plug In Your Own Signal\n\n**This skill is a template.** The default Binance momentum signal is just a starting point. The skill handles all the boring parts (market discovery, import, order execution, budget tracking). You bring the signal.\n\nIdeas for custom signals:\n- **Multi-exchange spreads:** Compare prices across Binance, Kraken, Bitfinex — divergence between exchanges can predict CLOB direction\n- **Sentiment:** Layer in Twitter/social signals — a viral tweet can move fast markets before the CLOB adjusts\n- **Technical indicators:** RSI, VWAP, order flow analysis from your favorite data source\n- **News:** Breaking news correlation — use your agent's reasoning to interpret headlines\n- **On-chain data:** Whale movements, funding rates, liquidation levels\n\nTo customize, edit `get_momentum()` in `fastloop_trader.py` or add your own signal function. The rest of the skill (discovery, import, sizing, fee-aware EV check) stays the same.\n\n## Example Output\n\n```\n⚡ Simmer FastLoop Trading Skill\n==================================================\n\n  [DRY RUN] No trades will be executed. Use --live to enable trading.\n\n⚙️  Configuration:\n  Asset:            BTC\n  Entry threshold:  0.05 (min divergence from 50¢)\n  Min momentum:     0.5% (min price move)\n  Max position:     $5.00\n  Signal source:    binance\n  Lookback:         5 minutes\n  Min time left:    60s\n  Volume weighting: ✓\n\n🔍 Discovering BTC fast markets...\n  Found 3 active fast markets\n\n🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET\n  Expires in: 185s\n  Current YES price: $0.480\n\n📈 Fetching BTC price signal (binance)...\n  Price: $97,234.50 (was $96,812.30)\n  Momentum: +0.436%\n  Direction: up\n  Volume ratio: 1.45x avg\n\n🧠 Analyzing...\n  ⏸️  Momentum 0.436% < minimum 0.500% — skip\n\n📊 Summary: No trade (momentum too weak: 0.436%)\n```\n\n## Source Tagging\n\nAll trades are tagged with `source: \"sdk:fastloop\"`. This means:\n- Portfolio shows breakdown by strategy\n- Other skills won't interfere with your fast market positions\n- You can track fast market P&L separately\n\n## Troubleshooting\n\n**\"No active fast markets found\"**\n- Fast markets may not be running (off-hours, weekends)\n- Check Polymarket directly for active BTC fast markets\n\n**\"No fast markets with >60s remaining\"**\n- Current window is about to expire, next one isn't live yet\n- Reduce `min_time_remaining` if you want to trade closer to expiry\n\n**\"Import failed: Rate limit exceeded\"**\n- Free tier: 10 imports/day. Pro: 50/day\n- Fast market trading needs Pro for reasonable frequency\n\n**\"Failed to fetch price data\"**\n- Binance API may be down or rate limited\n- Try `--set signal_source=coingecko` as fallback\n\n**\"Trade failed: no liquidity\"**\n- Fast market has thin book, try smaller position size\n\n**\"External wallet requires a pre-signed order\"**\n- `WALLET_PRIVATE_KEY` is not set in the environment\n- The SDK signs orders automatically when this env var is present — no manual signing code needed\n- Fix: `export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>`\n- Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n**\"Balance shows $0 but I have funds on Polygon\"**\n- 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](https://simmer.markets/dashboard) with one click (~30s)\n- If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD\n- Full migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v1.7.0:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"polymarket-fast-loop\",\n  \"version\": \"1.7.0\",\n  \"publishedAt\": 1781317657851\n}\n\nFile v1.7.0:DISCLAIMER.md\n\n# Disclaimer\n\nThis skill is a **framework**, not a production trading system. Read this\nin full before connecting it to a wallet with real funds.\n\n## No financial advice\n\nNothing in this skill constitutes financial, investment, or trading\nadvice. The default strategy implemented here is a starting point, not a\ntested edge. Suitability for any account size or risk tolerance is your\nresponsibility to assess.\n\n## Default parameters are not validated\n\nDefault parameters are calibrated for testing the plumbing, not for live\nprofit. They have not been validated to produce positive returns under\ncurrent market conditions. Run paper mode for an extended period before\nscaling beyond default position sizes.\n\n## Automated trading carries irreversible risk\n\nWhen this skill runs with `--live`, it places real on-chain orders.\nOn-chain trades cannot be recalled. Strategy errors, signal lag, market\nregime shifts, and operator misconfiguration can produce losses\nexceeding any specific position size.\n\n## Risk monitoring may not apply to all market types\n\nStop-loss and take-profit monitors run on a fixed schedule. Markets that\nresolve faster than the monitor cycle cannot be exited automatically.\nPosition sizing is the only risk control on these markets — set it\nconservatively.\n\n## Use of this skill is at your own risk\n\nBy installing and running this skill you agree that the authors are not\nliable for any losses, direct or indirect, that arise from its use. This\napplies regardless of skill provenance — official Simmer skills,\ncommunity skills, and skills imported from external repositories all\ncarry this same disclaimer.\n\n## Where to learn more before going live\n\n- The skill's own `SKILL.md` documents the strategy and parameters\n- Your trading venue's documentation covers fee structure, order types,\n  and resolution rules\n- Simmer SDK documentation covers paper mode, dry-run flags, and\n  position monitoring\n\nFile v1.7.0:skill-card.md\n\n## Description: <br>\nTrade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[simmer](https://clawhub.ai/user/simmer) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal developers and trading agents use this skill to discover Polymarket crypto fast markets, evaluate short-term CEX momentum signals, and run dry-run or live order flows through Simmer. It is intended for users who understand automated prediction-market trading, wallet custody, and position-size controls. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can place real-money Polymarket trades when run live. <br>\nMitigation: Start in dry-run mode, use live mode only after reviewing budget, position size, order behavior, and stop conditions. <br>\nRisk: Live trading may require sensitive wallet credentials. <br>\nMitigation: Use a managed wallet or a tightly funded dedicated wallet, and do not paste a main-wallet private key into chat or plaintext configuration. <br>\nRisk: Fast markets may resolve before scheduled stop-loss or take-profit monitoring can act. <br>\nMitigation: Treat conservative position sizing and daily budgets as primary controls for 5-minute and 15-minute markets. <br>\nRisk: Automated loop or cron execution can repeatedly trade before an operator reviews outcomes. <br>\nMitigation: Avoid unattended live loops until budget limits, max position size, and expected skip conditions have been tested in dry-run mode. <br>\n\n\n## Reference(s): <br>\n- [ClawHub release page](https://clawhub.ai/simmer/polymarket-fast-loop) <br>\n- [Skill documentation](artifact/SKILL.md) <br>\n- [Risk disclaimer](artifact/DISCLAIMER.md) <br>\n- [Simmer dashboard](https://simmer.markets/dashboard) <br>\n- [Simmer V2 migration guide](https://docs.simmer.markets/v2-migration) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with inline shell commands, configuration examples, and Python execution output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Dry-run is the default; live trading requires explicit command flags and credentials.] <br>\n\n## Skill Version(s): <br>\n1.7.0 (source: server release metadata and SKILL.md frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.7.0:clawhub.json\n\n{\n  \"emoji\": \"\\u26a1\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk>=0.17.32\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key \\u2014 get from simmer.markets/dashboard\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Only needed for external-wallet self-custody trading. Not required when using managed wallets.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": true,\n    \"entrypoint\": \"fastloop_trader.py\"\n  },\n  \"tunables\": [\n    {\n      \"env\": \"SIMMER_FASTLOOP_ENTRY_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.3\n      ],\n      \"step\": 0.01,\n      \"label\": \"Entry edge threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MOMENTUM_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.03,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Momentum threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MAX_POSITION_USD\",\n      \"type\": \"number\",\n      \"default\": 10,\n      \"range\": [\n        1,\n        50\n      ],\n      \"step\": 5,\n      \"label\": \"Max position size\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_LOOKBACK_MINUTES\",\n      \"type\": \"number\",\n      \"default\": 30,\n      \"range\": [\n        5,\n        120\n      ],\n      \"step\": 5,\n      \"label\": \"Lookback window (minutes)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_DAILY_BUDGET_USD\",\n      \"type\": \"number\",\n      \"default\": 50,\n      \"range\": [\n        10,\n        100\n      ],\n      \"step\": 10,\n      \"label\": \"Daily budget\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_VOL_CONFIDENCE_MIN\",\n      \"type\": \"number\",\n      \"default\": 0.5,\n      \"range\": [\n        0.1,\n        1.0\n      ],\n      \"step\": 0.05,\n      \"label\": \"Minimum volatility confidence\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FAIR_VALUE\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"label\": \"Use N(d) fair-value model\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FV_MIN_EDGE\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Fair-value min edge (fraction)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_ANNUAL_VOL\",\n      \"type\": \"number\",\n      \"default\": 0.55,\n      \"range\": [\n        0.3,\n        1.5\n      ],\n      \"step\": 0.05,\n      \"label\": \"BTC annual volatility for N(d) model\"\n    }\n  ]\n}\n\nFile v1.7.0:config.json\n\n{\n  \"entry_threshold\": 0.05,\n  \"min_momentum_pct\": 0.5,\n  \"max_position\": 5.0,\n  \"lookback_minutes\": 5,\n  \"min_time_remaining\": 60,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"volume_confidence\": true\n}\n\nArchive v1.6.6: 8 files, 26244 bytes\n\nFiles: clawhub.json (2569b), config.json (228b), DISCLAIMER.md (1925b), fastloop_trader.py (53592b), skill-card.md (2406b), SKILL.md (10944b), tests/test_fastloop_preflight_gate.py (4658b), _meta.json (139b)\n\nFile v1.6.6:SKILL.md\n\n---\nname: polymarket-fast-loop\ndescription: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\nmetadata:\n  author: Simmer (@simmer_markets)\n  version: \"1.6.6\"\n  displayName: Polymarket FastLoop Trader\n  difficulty: advanced\n---\n# Polymarket FastLoop Trader\n\nTrade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.\n\n> **Polymarket only.** All trades execute on Polymarket with real USDC. Use `--live` for real trades, dry-run is the default.\n\n> **This is a template.** The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.\n\n> ⚠️ Fast markets carry Polymarket's crypto taker fee (`is_paid: true`). Effective rate is 3.5% at 50¢, up to ~6.6% on cheap shares (e.g. 5¢ NO). Makers pay 0% and earn a 20% rebate from collected taker fees. Factor this into your edge calculations.\n\n> ⚠️ **Risk monitoring does not apply to sub-15-minute markets.** Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.\n\n## How It Finds Markets\n\n- Queries **Polymarket directly** (Gamma API) for live fast markets — doesn't depend on Simmer's market inventory\n- Discovers new markets as they appear, every cycle\n- Works with BTC, ETH, or SOL — just change the asset (`--set asset=ETH`) or ask your bot to look for whatever market you want\n- Runs every 5 minutes to catch each trading window (or every 1 minute for mid-window opportunities)\n\n**You don't need to wait for markets to show up in Simmer.** FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.\n\n> 🚨 **Framework, not a production trading system.** Read [DISCLAIMER.md](./DISCLAIMER.md) before connecting to a wallet with real funds.\n\n## When to Use This Skill\n\nUse this skill when the user wants to:\n- Trade crypto sprint/fast markets (5-minute or 15-minute) on any supported asset\n- Automate short-term crypto prediction trading\n- Use CEX price momentum (or any custom signal) as a Polymarket signal\n- Monitor sprint market positions\n\n## Setup Flow\n\nWhen user asks to install or configure this skill:\n\n1. **Install the Simmer SDK**\n   ```bash\n   pip install simmer-sdk\n   ```\n\n2. **Ask for Simmer API key**\n   - Get from simmer.markets/dashboard → SDK tab\n   - Store in environment as `SIMMER_API_KEY`\n\n3. **Ask for wallet private key** (required for live trading)\n   - This is the private key for their Polymarket wallet (the wallet that holds USDC)\n   - Store in environment as `WALLET_PRIVATE_KEY`\n   - The SDK uses this to sign orders client-side automatically — no manual signing needed\n\n4. **Ask about settings** (or confirm defaults)\n   - Asset: BTC, ETH, or SOL (default BTC)\n   - Entry threshold: Min divergence to trade (default 5¢)\n   - Max position: Amount per trade (default $5.00)\n   - Window: 5m or 15m (default 5m)\n\n5. **Set up cron or loop** (user drives scheduling — see \"How to Run on a Loop\")\n\n## Quick Start\n\n```bash\n# Set your API key\nexport SIMMER_API_KEY=\"your-key-here\"\n\n# Dry run — see what would happen\npython fastloop_trader.py\n\n# Go live\npython fastloop_trader.py --live\n\n# Live + quiet (for cron/heartbeat loops)\npython fastloop_trader.py --live --quiet\n\n# Live + smart sizing (5% of balance per trade)\npython fastloop_trader.py --live --smart-sizing --quiet\n```\n\n## How to Run on a Loop\n\nThe script runs **one cycle** — your bot drives the loop. Set up a cron job or heartbeat:\n\n**Linux crontab** (local/VPS installs):\n```\n# Every 5 minutes (one per fast market window)\n*/5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n\n# Every 1 minute (more aggressive, catches mid-window opportunities)\n* * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n```\n\n**OpenClaw native cron** (containerized or OpenClaw-managed setups):\n```bash\nopenclaw cron add \\\n  --name \"Fast Loop Trader\" \\\n  --cron \"*/5 * * * *\" \\\n  --tz \"UTC\" \\\n  --session isolated \\\n  --message \"Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary.\" \\\n  --announce\n```\n\n**Via OpenClaw heartbeat:** Add to your HEARTBEAT.md:\n```\nRun: cd /path/to/fast market && python fastloop_trader.py --live --quiet\n```\n\n## Configuration\n\nConfigure via `config.json`, environment variables, or `--set`:\n\n```bash\n# Change entry threshold\npython fastloop_trader.py --set entry_threshold=0.08\n\n# Trade ETH instead of BTC\npython fastloop_trader.py --set asset=ETH\n\n# Multiple settings\npython fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10\n```\n\n### Settings\n\n| Setting | Default | Env Var | Description |\n|---------|---------|---------|-------------|\n| `entry_threshold` | 0.05 | `SIMMER_SPRINT_ENTRY` | Min price divergence from 50¢ to trigger |\n| `min_momentum_pct` | 0.5 | `SIMMER_SPRINT_MOMENTUM` | Min BTC % move to trigger |\n| `max_position` | 5.0 | `SIMMER_SPRINT_MAX_POSITION` | Max $ per trade |\n| `signal_source` | binance | `SIMMER_SPRINT_SIGNAL` | Price feed (binance, coingecko) |\n| `lookback_minutes` | 5 | `SIMMER_SPRINT_LOOKBACK` | Minutes of price history |\n| `min_time_remaining` | 60 | `SIMMER_SPRINT_MIN_TIME` | Skip fast markets with less time left (seconds) |\n| `asset` | BTC | `SIMMER_SPRINT_ASSET` | Asset to trade (BTC, ETH, SOL) |\n| `window` | 5m | `SIMMER_SPRINT_WINDOW` | Market window duration (5m or 15m) |\n| `volume_confidence` | true | `SIMMER_SPRINT_VOL_CONF` | Weight signal by Binance volume |\n\n### Example config.json\n\n```json\n{\n  \"entry_threshold\": 0.08,\n  \"min_momentum_pct\": 0.3,\n  \"max_position\": 10.0,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\"\n}\n```\n\n## CLI Options\n\n```bash\npython fastloop_trader.py                    # Dry run\npython fastloop_trader.py --live             # Real trades\npython fastloop_trader.py --live --quiet     # Silent except trades/errors\npython fastloop_trader.py --smart-sizing     # Portfolio-based sizing\npython fastloop_trader.py --positions        # Show open fast market positions\npython fastloop_trader.py --config           # Show current config\npython fastloop_trader.py --set KEY=VALUE    # Update config\n```\n\n## Signal Logic\n\nDefault signal (Binance momentum):\n\n1. Fetch last 5 one-minute candles from Binance (`BTCUSDT`)\n2. Calculate momentum: `(price_now - price_5min_ago) / price_5min_ago`\n3. Compare momentum direction to current Polymarket odds\n4. Trade when:\n   - Momentum ≥ `min_momentum_pct` (default 0.5%)\n   - Price diverges from 50¢ by ≥ `entry_threshold` (default 5¢)\n   - Volume ratio > 0.5x average (filters out thin moves)\n\n**Example:** BTC up 0.8% in last 5 min, but fast market YES price is only $0.52. The 3¢ divergence from the expected ~$0.55 → buy YES.\n\n### Remix It: Plug In Your Own Signal\n\n**This skill is a template.** The default Binance momentum signal is just a starting point. The skill handles all the boring parts (market discovery, import, order execution, budget tracking). You bring the signal.\n\nIdeas for custom signals:\n- **Multi-exchange spreads:** Compare prices across Binance, Kraken, Bitfinex — divergence between exchanges can predict CLOB direction\n- **Sentiment:** Layer in Twitter/social signals — a viral tweet can move fast markets before the CLOB adjusts\n- **Technical indicators:** RSI, VWAP, order flow analysis from your favorite data source\n- **News:** Breaking news correlation — use your agent's reasoning to interpret headlines\n- **On-chain data:** Whale movements, funding rates, liquidation levels\n\nTo customize, edit `get_momentum()` in `fastloop_trader.py` or add your own signal function. The rest of the skill (discovery, import, sizing, fee-aware EV check) stays the same.\n\n## Example Output\n\n```\n⚡ Simmer FastLoop Trading Skill\n==================================================\n\n  [DRY RUN] No trades will be executed. Use --live to enable trading.\n\n⚙️  Configuration:\n  Asset:            BTC\n  Entry threshold:  0.05 (min divergence from 50¢)\n  Min momentum:     0.5% (min price move)\n  Max position:     $5.00\n  Signal source:    binance\n  Lookback:         5 minutes\n  Min time left:    60s\n  Volume weighting: ✓\n\n🔍 Discovering BTC fast markets...\n  Found 3 active fast markets\n\n🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET\n  Expires in: 185s\n  Current YES price: $0.480\n\n📈 Fetching BTC price signal (binance)...\n  Price: $97,234.50 (was $96,812.30)\n  Momentum: +0.436%\n  Direction: up\n  Volume ratio: 1.45x avg\n\n🧠 Analyzing...\n  ⏸️  Momentum 0.436% < minimum 0.500% — skip\n\n📊 Summary: No trade (momentum too weak: 0.436%)\n```\n\n## Source Tagging\n\nAll trades are tagged with `source: \"sdk:fastloop\"`. This means:\n- Portfolio shows breakdown by strategy\n- Other skills won't interfere with your fast market positions\n- You can track fast market P&L separately\n\n## Troubleshooting\n\n**\"No active fast markets found\"**\n- Fast markets may not be running (off-hours, weekends)\n- Check Polymarket directly for active BTC fast markets\n\n**\"No fast markets with >60s remaining\"**\n- Current window is about to expire, next one isn't live yet\n- Reduce `min_time_remaining` if you want to trade closer to expiry\n\n**\"Import failed: Rate limit exceeded\"**\n- Free tier: 10 imports/day. Pro: 50/day\n- Fast market trading needs Pro for reasonable frequency\n\n**\"Failed to fetch price data\"**\n- Binance API may be down or rate limited\n- Try `--set signal_source=coingecko` as fallback\n\n**\"Trade failed: no liquidity\"**\n- Fast market has thin book, try smaller position size\n\n**\"External wallet requires a pre-signed order\"**\n- `WALLET_PRIVATE_KEY` is not set in the environment\n- The SDK signs orders automatically when this env var is present — no manual signing code needed\n- Fix: `export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>`\n- Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n**\"Balance shows $0 but I have funds on Polygon\"**\n- 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](https://simmer.markets/dashboard) with one click (~30s)\n- If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD\n- Full migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v1.6.6:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"polymarket-fast-loop\",\n  \"version\": \"1.6.6\",\n  \"publishedAt\": 1779591761998\n}\n\nFile v1.6.6:DISCLAIMER.md\n\n# Disclaimer\n\nThis skill is a **framework**, not a production trading system. Read this\nin full before connecting it to a wallet with real funds.\n\n## No financial advice\n\nNothing in this skill constitutes financial, investment, or trading\nadvice. The default strategy implemented here is a starting point, not a\ntested edge. Suitability for any account size or risk tolerance is your\nresponsibility to assess.\n\n## Default parameters are not validated\n\nDefault parameters are calibrated for testing the plumbing, not for live\nprofit. They have not been validated to produce positive returns under\ncurrent market conditions. Run paper mode for an extended period before\nscaling beyond default position sizes.\n\n## Automated trading carries irreversible risk\n\nWhen this skill runs with `--live`, it places real on-chain orders.\nOn-chain trades cannot be recalled. Strategy errors, signal lag, market\nregime shifts, and operator misconfiguration can produce losses\nexceeding any specific position size.\n\n## Risk monitoring may not apply to all market types\n\nStop-loss and take-profit monitors run on a fixed schedule. Markets that\nresolve faster than the monitor cycle cannot be exited automatically.\nPosition sizing is the only risk control on these markets — set it\nconservatively.\n\n## Use of this skill is at your own risk\n\nBy installing and running this skill you agree that the authors are not\nliable for any losses, direct or indirect, that arise from its use. This\napplies regardless of skill provenance — official Simmer skills,\ncommunity skills, and skills imported from external repositories all\ncarry this same disclaimer.\n\n## Where to learn more before going live\n\n- The skill's own `SKILL.md` documents the strategy and parameters\n- Your trading venue's documentation covers fee structure, order types,\n  and resolution rules\n- Simmer SDK documentation covers paper mode, dry-run flags, and\n  position monitoring\n\nFile v1.6.6:skill-card.md\n\n## Description: <br>\nTrade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[simmer](https://clawhub.ai/user/simmer) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal developers and trading agents use this skill to configure and run an automated Polymarket fast-market trading loop for BTC, ETH, or SOL using Simmer API execution and CEX momentum signals. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Live mode can place real Polymarket orders using wallet credentials and real funds. <br>\nMitigation: Start in dry-run mode, use managed-wallet flows when possible, and use a dedicated low-balance wallet if WALLET_PRIVATE_KEY is provided. <br>\nRisk: Fast-market positions can resolve before scheduled stop-loss or take-profit monitoring can act. <br>\nMitigation: Do not rely on automated stop-losses for 5-minute or 15-minute markets; size positions conservatively. <br>\nRisk: Default strategy parameters are a template and are not validated to produce profitable live trading results. <br>\nMitigation: Run paper or dry-run mode for an extended period and review edge, fees, liquidity, and cron or heartbeat commands before enabling live automation. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/simmer/polymarket-fast-loop) <br>\n- [Disclaimer](DISCLAIMER.md) <br>\n- [Simmer V2 migration guide](https://docs.simmer.markets/v2-migration) <br>\n- [Simmer dashboard](https://simmer.markets/dashboard) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Shell commands, Configuration, Text, Code] <br>\n**Output Format:** [Markdown guidance with inline shell commands, JSON configuration, and Python script execution output] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Dry-run is the default; live trading requires explicit --live mode and appropriate credentials.] <br>\n\n## Skill Version(s): <br>\n1.6.6 (source: release evidence and skill frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.6.6:clawhub.json\n\n{\n  \"emoji\": \"\\u26a1\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk>=0.11.1\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key \\u2014 get from simmer.markets/dashboard\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Only needed for external-wallet self-custody trading. Not required when using managed wallets.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": true,\n    \"entrypoint\": \"fastloop_trader.py\"\n  },\n  \"tunables\": [\n    {\n      \"env\": \"SIMMER_FASTLOOP_ENTRY_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.3\n      ],\n      \"step\": 0.01,\n      \"label\": \"Entry edge threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MOMENTUM_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.03,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Momentum threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MAX_POSITION_USD\",\n      \"type\": \"number\",\n      \"default\": 10,\n      \"range\": [\n        1,\n        50\n      ],\n      \"step\": 5,\n      \"label\": \"Max position size\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_LOOKBACK_MINUTES\",\n      \"type\": \"number\",\n      \"default\": 30,\n      \"range\": [\n        5,\n        120\n      ],\n      \"step\": 5,\n      \"label\": \"Lookback window (minutes)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_DAILY_BUDGET_USD\",\n      \"type\": \"number\",\n      \"default\": 50,\n      \"range\": [\n        10,\n        100\n      ],\n      \"step\": 10,\n      \"label\": \"Daily budget\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_VOL_CONFIDENCE_MIN\",\n      \"type\": \"number\",\n      \"default\": 0.5,\n      \"range\": [\n        0.1,\n        1.0\n      ],\n      \"step\": 0.05,\n      \"label\": \"Minimum volatility confidence\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FAIR_VALUE\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"label\": \"Use N(d) fair-value model\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FV_MIN_EDGE\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Fair-value min edge (fraction)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_ANNUAL_VOL\",\n      \"type\": \"number\",\n      \"default\": 0.55,\n      \"range\": [\n        0.3,\n        1.5\n      ],\n      \"step\": 0.05,\n      \"label\": \"BTC annual volatility for N(d) model\"\n    }\n  ]\n}\n\nFile v1.6.6:config.json\n\n{\n  \"entry_threshold\": 0.05,\n  \"min_momentum_pct\": 0.5,\n  \"max_position\": 5.0,\n  \"lookback_minutes\": 5,\n  \"min_time_remaining\": 60,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"volume_confidence\": true\n}\n\nArchive v1.6.4: 5 files, 22097 bytes\n\nFiles: clawhub.json (2806b), config.json (228b), fastloop_trader.py (53013b), SKILL.md (10803b), _meta.json (139b)\n\nFile v1.6.4:SKILL.md\n\n---\nname: polymarket-fast-loop\ndescription: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\nmetadata:\n  author: Simmer (@simmer_markets)\n  version: \"1.6.4\"\n  displayName: Polymarket FastLoop Trader\n  difficulty: advanced\n---\n# Polymarket FastLoop Trader\n\nTrade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.\n\n> **Polymarket only.** All trades execute on Polymarket with real USDC. Use `--live` for real trades, dry-run is the default.\n\n> **This is a template.** The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.\n\n> ⚠️ Fast markets carry Polymarket's crypto taker fee (`is_paid: true`). Effective rate is 3.5% at 50¢, up to ~6.6% on cheap shares (e.g. 5¢ NO). Makers pay 0% and earn a 20% rebate from collected taker fees. Factor this into your edge calculations.\n\n> ⚠️ **Risk monitoring does not apply to sub-15-minute markets.** Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.\n\n## How It Finds Markets\n\n- Queries **Polymarket directly** (Gamma API) for live fast markets — doesn't depend on Simmer's market inventory\n- Discovers new markets as they appear, every cycle\n- Works with BTC, ETH, or SOL — just change the asset (`--set asset=ETH`) or ask your bot to look for whatever market you want\n- Runs every 5 minutes to catch each trading window (or every 1 minute for mid-window opportunities)\n\n**You don't need to wait for markets to show up in Simmer.** FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.\n\n## When to Use This Skill\n\nUse this skill when the user wants to:\n- Trade crypto sprint/fast markets (5-minute or 15-minute) on any supported asset\n- Automate short-term crypto prediction trading\n- Use CEX price momentum (or any custom signal) as a Polymarket signal\n- Monitor sprint market positions\n\n## Setup Flow\n\nWhen user asks to install or configure this skill:\n\n1. **Install the Simmer SDK**\n   ```bash\n   pip install simmer-sdk\n   ```\n\n2. **Ask for Simmer API key**\n   - Get from simmer.markets/dashboard → SDK tab\n   - Store in environment as `SIMMER_API_KEY`\n\n3. **Ask for wallet private key** (required for live trading)\n   - This is the private key for their Polymarket wallet (the wallet that holds USDC)\n   - Store in environment as `WALLET_PRIVATE_KEY`\n   - The SDK uses this to sign orders client-side automatically — no manual signing needed\n\n4. **Ask about settings** (or confirm defaults)\n   - Asset: BTC, ETH, or SOL (default BTC)\n   - Entry threshold: Min divergence to trade (default 5¢)\n   - Max position: Amount per trade (default $5.00)\n   - Window: 5m or 15m (default 5m)\n\n5. **Set up cron or loop** (user drives scheduling — see \"How to Run on a Loop\")\n\n## Quick Start\n\n```bash\n# Set your API key\nexport SIMMER_API_KEY=\"your-key-here\"\n\n# Dry run — see what would happen\npython fastloop_trader.py\n\n# Go live\npython fastloop_trader.py --live\n\n# Live + quiet (for cron/heartbeat loops)\npython fastloop_trader.py --live --quiet\n\n# Live + smart sizing (5% of balance per trade)\npython fastloop_trader.py --live --smart-sizing --quiet\n```\n\n## How to Run on a Loop\n\nThe script runs **one cycle** — your bot drives the loop. Set up a cron job or heartbeat:\n\n**Linux crontab** (local/VPS installs):\n```\n# Every 5 minutes (one per fast market window)\n*/5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n\n# Every 1 minute (more aggressive, catches mid-window opportunities)\n* * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n```\n\n**OpenClaw native cron** (containerized or OpenClaw-managed setups):\n```bash\nopenclaw cron add \\\n  --name \"Fast Loop Trader\" \\\n  --cron \"*/5 * * * *\" \\\n  --tz \"UTC\" \\\n  --session isolated \\\n  --message \"Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary.\" \\\n  --announce\n```\n\n**Via OpenClaw heartbeat:** Add to your HEARTBEAT.md:\n```\nRun: cd /path/to/fast market && python fastloop_trader.py --live --quiet\n```\n\n## Configuration\n\nConfigure via `config.json`, environment variables, or `--set`:\n\n```bash\n# Change entry threshold\npython fastloop_trader.py --set entry_threshold=0.08\n\n# Trade ETH instead of BTC\npython fastloop_trader.py --set asset=ETH\n\n# Multiple settings\npython fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10\n```\n\n### Settings\n\n| Setting | Default | Env Var | Description |\n|---------|---------|---------|-------------|\n| `entry_threshold` | 0.05 | `SIMMER_SPRINT_ENTRY` | Min price divergence from 50¢ to trigger |\n| `min_momentum_pct` | 0.5 | `SIMMER_SPRINT_MOMENTUM` | Min BTC % move to trigger |\n| `max_position` | 5.0 | `SIMMER_SPRINT_MAX_POSITION` | Max $ per trade |\n| `signal_source` | binance | `SIMMER_SPRINT_SIGNAL` | Price feed (binance, coingecko) |\n| `lookback_minutes` | 5 | `SIMMER_SPRINT_LOOKBACK` | Minutes of price history |\n| `min_time_remaining` | 60 | `SIMMER_SPRINT_MIN_TIME` | Skip fast markets with less time left (seconds) |\n| `asset` | BTC | `SIMMER_SPRINT_ASSET` | Asset to trade (BTC, ETH, SOL) |\n| `window` | 5m | `SIMMER_SPRINT_WINDOW` | Market window duration (5m or 15m) |\n| `volume_confidence` | true | `SIMMER_SPRINT_VOL_CONF` | Weight signal by Binance volume |\n\n### Example config.json\n\n```json\n{\n  \"entry_threshold\": 0.08,\n  \"min_momentum_pct\": 0.3,\n  \"max_position\": 10.0,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\"\n}\n```\n\n## CLI Options\n\n```bash\npython fastloop_trader.py                    # Dry run\npython fastloop_trader.py --live             # Real trades\npython fastloop_trader.py --live --quiet     # Silent except trades/errors\npython fastloop_trader.py --smart-sizing     # Portfolio-based sizing\npython fastloop_trader.py --positions        # Show open fast market positions\npython fastloop_trader.py --config           # Show current config\npython fastloop_trader.py --set KEY=VALUE    # Update config\n```\n\n## Signal Logic\n\nDefault signal (Binance momentum):\n\n1. Fetch last 5 one-minute candles from Binance (`BTCUSDT`)\n2. Calculate momentum: `(price_now - price_5min_ago) / price_5min_ago`\n3. Compare momentum direction to current Polymarket odds\n4. Trade when:\n   - Momentum ≥ `min_momentum_pct` (default 0.5%)\n   - Price diverges from 50¢ by ≥ `entry_threshold` (default 5¢)\n   - Volume ratio > 0.5x average (filters out thin moves)\n\n**Example:** BTC up 0.8% in last 5 min, but fast market YES price is only $0.52. The 3¢ divergence from the expected ~$0.55 → buy YES.\n\n### Remix It: Plug In Your Own Signal\n\n**This skill is a template.** The default Binance momentum signal is just a starting point. The skill handles all the boring parts (market discovery, import, order execution, budget tracking). You bring the signal.\n\nIdeas for custom signals:\n- **Multi-exchange spreads:** Compare prices across Binance, Kraken, Bitfinex — divergence between exchanges can predict CLOB direction\n- **Sentiment:** Layer in Twitter/social signals — a viral tweet can move fast markets before the CLOB adjusts\n- **Technical indicators:** RSI, VWAP, order flow analysis from your favorite data source\n- **News:** Breaking news correlation — use your agent's reasoning to interpret headlines\n- **On-chain data:** Whale movements, funding rates, liquidation levels\n\nTo customize, edit `get_momentum()` in `fastloop_trader.py` or add your own signal function. The rest of the skill (discovery, import, sizing, fee-aware EV check) stays the same.\n\n## Example Output\n\n```\n⚡ Simmer FastLoop Trading Skill\n==================================================\n\n  [DRY RUN] No trades will be executed. Use --live to enable trading.\n\n⚙️  Configuration:\n  Asset:            BTC\n  Entry threshold:  0.05 (min divergence from 50¢)\n  Min momentum:     0.5% (min price move)\n  Max position:     $5.00\n  Signal source:    binance\n  Lookback:         5 minutes\n  Min time left:    60s\n  Volume weighting: ✓\n\n🔍 Discovering BTC fast markets...\n  Found 3 active fast markets\n\n🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET\n  Expires in: 185s\n  Current YES price: $0.480\n\n📈 Fetching BTC price signal (binance)...\n  Price: $97,234.50 (was $96,812.30)\n  Momentum: +0.436%\n  Direction: up\n  Volume ratio: 1.45x avg\n\n🧠 Analyzing...\n  ⏸️  Momentum 0.436% < minimum 0.500% — skip\n\n📊 Summary: No trade (momentum too weak: 0.436%)\n```\n\n## Source Tagging\n\nAll trades are tagged with `source: \"sdk:fastloop\"`. This means:\n- Portfolio shows breakdown by strategy\n- Other skills won't interfere with your fast market positions\n- You can track fast market P&L separately\n\n## Troubleshooting\n\n**\"No active fast markets found\"**\n- Fast markets may not be running (off-hours, weekends)\n- Check Polymarket directly for active BTC fast markets\n\n**\"No fast markets with >60s remaining\"**\n- Current window is about to expire, next one isn't live yet\n- Reduce `min_time_remaining` if you want to trade closer to expiry\n\n**\"Import failed: Rate limit exceeded\"**\n- Free tier: 10 imports/day. Pro: 50/day\n- Fast market trading needs Pro for reasonable frequency\n\n**\"Failed to fetch price data\"**\n- Binance API may be down or rate limited\n- Try `--set signal_source=coingecko` as fallback\n\n**\"Trade failed: no liquidity\"**\n- Fast market has thin book, try smaller position size\n\n**\"External wallet requires a pre-signed order\"**\n- `WALLET_PRIVATE_KEY` is not set in the environment\n- The SDK signs orders automatically when this env var is present — no manual signing code needed\n- Fix: `export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>`\n- Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n**\"Balance shows $0 but I have funds on Polygon\"**\n- 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](https://simmer.markets/dashboard) with one click (~30s)\n- If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD\n- Full migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v1.6.4:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"polymarket-fast-loop\",\n  \"version\": \"1.6.4\",\n  \"publishedAt\": 1779075739556\n}\n\nFile v1.6.4:clawhub.json\n\n{\n  \"emoji\": \"\\u26a1\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk>=0.11.1\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key \\u2014 get from simmer.markets/dashboard\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Only needed for external-wallet self-custody trading. Not required when using managed wallets.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": true,\n    \"entrypoint\": \"fastloop_trader.py\"\n  },\n  \"tunables\": [\n    {\n      \"env\": \"SIMMER_FASTLOOP_ENTRY_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.3\n      ],\n      \"step\": 0.01,\n      \"label\": \"Entry edge threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MOMENTUM_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.03,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Momentum threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MAX_POSITION_USD\",\n      \"type\": \"number\",\n      \"default\": 10,\n      \"range\": [\n        1,\n        50\n      ],\n      \"step\": 5,\n      \"label\": \"Max position size\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_LOOKBACK_MINUTES\",\n      \"type\": \"number\",\n      \"default\": 30,\n      \"range\": [\n        5,\n        120\n      ],\n      \"step\": 5,\n      \"label\": \"Lookback window (minutes)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MIN_TIME_BETWEEN_TRADES_SEC\",\n      \"type\": \"number\",\n      \"default\": 60,\n      \"range\": [\n        10,\n        600\n      ],\n      \"step\": 10,\n      \"label\": \"Min time between trades (seconds)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_DAILY_BUDGET_USD\",\n      \"type\": \"number\",\n      \"default\": 50,\n      \"range\": [\n        10,\n        100\n      ],\n      \"step\": 10,\n      \"label\": \"Daily budget\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_VOL_CONFIDENCE_MIN\",\n      \"type\": \"number\",\n      \"default\": 0.5,\n      \"range\": [\n        0.1,\n        1.0\n      ],\n      \"step\": 0.05,\n      \"label\": \"Minimum volatility confidence\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FAIR_VALUE\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"label\": \"Use N(d) fair-value model\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FV_MIN_EDGE\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Fair-value min edge (fraction)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_ANNUAL_VOL\",\n      \"type\": \"number\",\n      \"default\": 0.55,\n      \"range\": [\n        0.3,\n        1.5\n      ],\n      \"step\": 0.05,\n      \"label\": \"BTC annual volatility for N(d) model\"\n    }\n  ]\n}\n\nFile v1.6.4:config.json\n\n{\n  \"entry_threshold\": 0.05,\n  \"min_momentum_pct\": 0.5,\n  \"max_position\": 5.0,\n  \"lookback_minutes\": 5,\n  \"min_time_remaining\": 60,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\",\n  \"volume_confidence\": true\n}\n\nArchive v1.6.3: 5 files, 22018 bytes\n\nFiles: clawhub.json (2806b), config.json (228b), fastloop_trader.py (53078b), SKILL.md (10656b), _meta.json (139b)\n\nFile v1.6.3:SKILL.md\n\n---\nname: polymarket-fast-loop\ndescription: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\nmetadata:\n  author: Simmer (@simmer_markets)\n  version: \"1.6.3\"\n  displayName: Polymarket FastLoop Trader\n  difficulty: advanced\n---\n# Polymarket FastLoop Trader\n\nTrade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.\n\n> **Polymarket only.** All trades execute on Polymarket with real USDC. Use `--live` for real trades, dry-run is the default.\n\n> **This is a template.** The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.\n\n> ⚠️ Fast markets carry Polymarket's 10% fee (`is_paid: true`). Factor this into your edge calculations.\n\n> ⚠️ **Risk monitoring does not apply to sub-15-minute markets.** Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.\n\n## How It Finds Markets\n\n- Queries **Polymarket directly** (Gamma API) for live fast markets — doesn't depend on Simmer's market inventory\n- Discovers new markets as they appear, every cycle\n- Works with BTC, ETH, or SOL — just change the asset (`--set asset=ETH`) or ask your bot to look for whatever market you want\n- Runs every 5 minutes to catch each trading window (or every 1 minute for mid-window opportunities)\n\n**You don't need to wait for markets to show up in Simmer.** FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.\n\n## When to Use This Skill\n\nUse this skill when the user wants to:\n- Trade crypto sprint/fast markets (5-minute or 15-minute) on any supported asset\n- Automate short-term crypto prediction trading\n- Use CEX price momentum (or any custom signal) as a Polymarket signal\n- Monitor sprint market positions\n\n## Setup Flow\n\nWhen user asks to install or configure this skill:\n\n1. **Install the Simmer SDK**\n   ```bash\n   pip install simmer-sdk\n   ```\n\n2. **Ask for Simmer API key**\n   - Get from simmer.markets/dashboard → SDK tab\n   - Store in environment as `SIMMER_API_KEY`\n\n3. **Ask for wallet private key** (required for live trading)\n   - This is the private key for their Polymarket wallet (the wallet that holds USDC)\n   - Store in environment as `WALLET_PRIVATE_KEY`\n   - The SDK uses this to sign orders client-side automatically — no manual signing needed\n\n4. **Ask about settings** (or confirm defaults)\n   - Asset: BTC, ETH, or SOL (default BTC)\n   - Entry threshold: Min divergence to trade (default 5¢)\n   - Max position: Amount per trade (default $5.00)\n   - Window: 5m or 15m (default 5m)\n\n5. **Set up cron or loop** (user drives scheduling — see \"How to Run on a Loop\")\n\n## Quick Start\n\n```bash\n# Set your API key\nexport SIMMER_API_KEY=\"your-key-here\"\n\n# Dry run — see what would happen\npython fastloop_trader.py\n\n# Go live\npython fastloop_trader.py --live\n\n# Live + quiet (for cron/heartbeat loops)\npython fastloop_trader.py --live --quiet\n\n# Live + smart sizing (5% of balance per trade)\npython fastloop_trader.py --live --smart-sizing --quiet\n```\n\n## How to Run on a Loop\n\nThe script runs **one cycle** — your bot drives the loop. Set up a cron job or heartbeat:\n\n**Linux crontab** (local/VPS installs):\n```\n# Every 5 minutes (one per fast market window)\n*/5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n\n# Every 1 minute (more aggressive, catches mid-window opportunities)\n* * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n```\n\n**OpenClaw native cron** (containerized or OpenClaw-managed setups):\n```bash\nopenclaw cron add \\\n  --name \"Fast Loop Trader\" \\\n  --cron \"*/5 * * * *\" \\\n  --tz \"UTC\" \\\n  --session isolated \\\n  --message \"Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary.\" \\\n  --announce\n```\n\n**Via OpenClaw heartbeat:** Add to your HEARTBEAT.md:\n```\nRun: cd /path/to/fast market && python fastloop_trader.py --live --quiet\n```\n\n## Configuration\n\nConfigure via `config.json`, environment variables, or `--set`:\n\n```bash\n# Change entry threshold\npython fastloop_trader.py --set entry_threshold=0.08\n\n# Trade ETH instead of BTC\npython fastloop_trader.py --set asset=ETH\n\n# Multiple settings\npython fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10\n```\n\n### Settings\n\n| Setting | Default | Env Var | Description |\n|---------|---------|---------|-------------|\n| `entry_threshold` | 0.05 | `SIMMER_SPRINT_ENTRY` | Min price divergence from 50¢ to trigger |\n| `min_momentum_pct` | 0.5 | `SIMMER_SPRINT_MOMENTUM` | Min BTC % move to trigger |\n| `max_position` | 5.0 | `SIMMER_SPRINT_MAX_POSITION` | Max $ per trade |\n| `signal_source` | binance | `SIMMER_SPRINT_SIGNAL` | Price feed (binance, coingecko) |\n| `lookback_minutes` | 5 | `SIMMER_SPRINT_LOOKBACK` | Minutes of price history |\n| `min_time_remaining` | 60 | `SIMMER_SPRINT_MIN_TIME` | Skip fast markets with less time left (seconds) |\n| `asset` | BTC | `SIMMER_SPRINT_ASSET` | Asset to trade (BTC, ETH, SOL) |\n| `window` | 5m | `SIMMER_SPRINT_WINDOW` | Market window duration (5m or 15m) |\n| `volume_confidence` | true | `SIMMER_SPRINT_VOL_CONF` | Weight signal by Binance volume |\n\n### Example config.json\n\n```json\n{\n  \"entry_threshold\": 0.08,\n  \"min_momentum_pct\": 0.3,\n  \"max_position\": 10.0,\n  \"asset\": \"BTC\",\n  \"window\": \"5m\",\n  \"signal_source\": \"binance\"\n}\n```\n\n## CLI Options\n\n```bash\npython fastloop_trader.py                    # Dry run\npython fastloop_trader.py --live             # Real trades\npython fastloop_trader.py --live --quiet     # Silent except trades/errors\npython fastloop_trader.py --smart-sizing     # Portfolio-based sizing\npython fastloop_trader.py --positions        # Show open fast market positions\npython fastloop_trader.py --config           # Show current config\npython fastloop_trader.py --set KEY=VALUE    # Update config\n```\n\n## Signal Logic\n\nDefault signal (Binance momentum):\n\n1. Fetch last 5 one-minute candles from Binance (`BTCUSDT`)\n2. Calculate momentum: `(price_now - price_5min_ago) / price_5min_ago`\n3. Compare momentum direction to current Polymarket odds\n4. Trade when:\n   - Momentum ≥ `min_momentum_pct` (default 0.5%)\n   - Price diverges from 50¢ by ≥ `entry_threshold` (default 5¢)\n   - Volume ratio > 0.5x average (filters out thin moves)\n\n**Example:** BTC up 0.8% in last 5 min, but fast market YES price is only $0.52. The 3¢ divergence from the expected ~$0.55 → buy YES.\n\n### Remix It: Plug In Your Own Signal\n\n**This skill is a template.** The default Binance momentum signal is just a starting point. The skill handles all the boring parts (market discovery, import, order execution, budget tracking). You bring the signal.\n\nIdeas for custom signals:\n- **Multi-exchange spreads:** Compare prices across Binance, Kraken, Bitfinex — divergence between exchanges can predict CLOB direction\n- **Sentiment:** Layer in Twitter/social signals — a viral tweet can move fast markets before the CLOB adjusts\n- **Technical indicators:** RSI, VWAP, order flow analysis from your favorite data source\n- **News:** Breaking news correlation — use your agent's reasoning to interpret headlines\n- **On-chain data:** Whale movements, funding rates, liquidation levels\n\nTo customize, edit `get_momentum()` in `fastloop_trader.py` or add your own signal function. The rest of the skill (discovery, import, sizing, fee-aware EV check) stays the same.\n\n## Example Output\n\n```\n⚡ Simmer FastLoop Trading Skill\n==================================================\n\n  [DRY RUN] No trades will be executed. Use --live to enable trading.\n\n⚙️  Configuration:\n  Asset:            BTC\n  Entry threshold:  0.05 (min divergence from 50¢)\n  Min momentum:     0.5% (min price move)\n  Max position:     $5.00\n  Signal source:    binance\n  Lookback:         5 minutes\n  Min time left:    60s\n  Volume weighting: ✓\n\n🔍 Discovering BTC fast markets...\n  Found 3 active fast markets\n\n🎯 Selected: Bitcoin Up or Down - February 15, 5:30AM-5:35AM ET\n  Expires in: 185s\n  Current YES price: $0.480\n\n📈 Fetching BTC price signal (binance)...\n  Price: $97,234.50 (was $96,812.30)\n  Momentum: +0.436%\n  Direction: up\n  Volume ratio: 1.45x avg\n\n🧠 Analyzing...\n  ⏸️  Momentum 0.436% < minimum 0.500% — skip\n\n📊 Summary: No trade (momentum too weak: 0.436%)\n```\n\n## Source Tagging\n\nAll trades are tagged with `source: \"sdk:fastloop\"`. This means:\n- Portfolio shows breakdown by strategy\n- Other skills won't interfere with your fast market positions\n- You can track fast market P&L separately\n\n## Troubleshooting\n\n**\"No active fast markets found\"**\n- Fast markets may not be running (off-hours, weekends)\n- Check Polymarket directly for active BTC fast markets\n\n**\"No fast markets with >60s remaining\"**\n- Current window is about to expire, next one isn't live yet\n- Reduce `min_time_remaining` if you want to trade closer to expiry\n\n**\"Import failed: Rate limit exceeded\"**\n- Free tier: 10 imports/day. Pro: 50/day\n- Fast market trading needs Pro for reasonable frequency\n\n**\"Failed to fetch price data\"**\n- Binance API may be down or rate limited\n- Try `--set signal_source=coingecko` as fallback\n\n**\"Trade failed: no liquidity\"**\n- Fast market has thin book, try smaller position size\n\n**\"External wallet requires a pre-signed order\"**\n- `WALLET_PRIVATE_KEY` is not set in the environment\n- The SDK signs orders automatically when this env var is present — no manual signing code needed\n- Fix: `export WALLET_PRIVATE_KEY=0x<your-polymarket-wallet-private-key>`\n- Do NOT attempt to sign orders manually or modify the skill code — the SDK handles it\n\n**\"Balance shows $0 but I have funds on Polygon\"**\n- 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](https://simmer.markets/dashboard) with one click (~30s)\n- If you bridged native USDC (Circle), swap to USDC.e first, then migrate to pUSD\n- Full migration guide: [docs.simmer.markets/v2-migration](https://docs.simmer.markets/v2-migration)\n\nFile v1.6.3:_meta.json\n\n{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"polymarket-fast-loop\",\n  \"version\": \"1.6.3\",\n  \"publishedAt\": 1777108821749\n}\n\nFile v1.6.3:clawhub.json\n\n{\n  \"emoji\": \"\\u26a1\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk>=0.11.1\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key \\u2014 get from simmer.markets/dashboard\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Only needed for external-wallet self-custody trading. Not required when using managed wallets.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": true,\n    \"entrypoint\": \"fastloop_trader.py\"\n  },\n  \"tunables\": [\n    {\n      \"env\": \"SIMMER_FASTLOOP_ENTRY_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.3\n      ],\n      \"step\": 0.01,\n      \"label\": \"Entry edge threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MOMENTUM_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.03,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Momentum threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MAX_POSITION_USD\",\n      \"type\": \"number\",\n      \"default\": 10,\n      \"range\": [\n        1,\n        50\n      ],\n      \"step\": 5,\n      \"label\": \"Max position size\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_LOOKBACK_MINUTES\",\n      \"type\": \"number\",\n      \"default\": 30,\n      \"range\": [\n        5,\n        120\n      ],\n      \"step\": 5,\n      \"label\": \"Lookback window (minutes)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MIN_TIME_BETWEEN_TRADES_SEC\",\n      \"type\": \"number\",\n      \"default\": 60,\n      \"range\": [\n        10,\n        600\n      ],\n      \"step\": 10,\n      \"label\": \"Min time between trades (seconds)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_DAILY_BUDGET_USD\",\n      \"type\": \"number\",\n      \"default\": 50,\n      \"range\": [\n        10,\n        100\n      ],\n      \"step\": 10,\n      \"label\": \"Daily budget\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_VOL_CONFIDENCE_MIN\",\n      \"type\": \"number\",\n      \"default\": 0.5,\n      \"range\": [\n        0.1,\n        1.0\n      ],\n      \"step\": 0.05,\n      \"label\": \"Minimum volatility confidence\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FAIR_VALUE\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"label\": \"Use N(d) fair-value model\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FV_MIN_EDGE\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n  \n\nArchive v1.6.2: 5 files, 22005 bytes\n\nFiles: clawhub.json (2806b), config.json (228b), fastloop_trader.py (53019b), SKILL.md (10656b), _meta.json (139b)\n\nArchive v1.6.1: 5 files, 21517 bytes\n\nFiles: clawhub.json (2798b), config.json (228b), fastloop_trader.py (51625b), SKILL.md (10656b), _meta.json (139b)","readmeExcerpt":"Skill: polymarket-fast-loop Owner: simmer Summary: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal. Tags: latest:1.7.4 Version history: v1.7.4 | 2026-09-06T01:13:26.481Z | auto **Minor updat","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"pip install simmer-sdk"},{"language":"bash","snippet":"# Set your API key\nexport SIMMER_API_KEY=\"your-key-here\"\n\n# Dry run — see what would happen\npython fastloop_trader.py\n\n# Go live\npython fastloop_trader.py --live\n\n# Live + quiet (for cron/heartbeat loops)\npython fastloop_trader.py --live --quiet\n\n# Live + smart sizing (5% of balance per trade)\npython fastloop_trader.py --live --smart-sizing --quiet"},{"language":"text","snippet":"# Every 5 minutes (one per fast market window)\n*/5 * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet\n\n# Every 1 minute (more aggressive, catches mid-window opportunities)\n* * * * * cd /path/to/skill && python fastloop_trader.py --live --quiet"},{"language":"bash","snippet":"openclaw cron add \\\n  --name \"Fast Loop Trader\" \\\n  --cron \"*/5 * * * *\" \\\n  --tz \"UTC\" \\\n  --session isolated \\\n  --message \"Run fast loop trader: cd /path/to/skill && python fastloop_trader.py --live --quiet. Show the output summary.\" \\\n  --announce"},{"language":"text","snippet":"Run: cd /path/to/fast market && python fastloop_trader.py --live --quiet"},{"language":"bash","snippet":"# Change entry threshold\npython fastloop_trader.py --set entry_threshold=0.08\n\n# Trade ETH instead of BTC\npython fastloop_trader.py --set asset=ETH\n\n# Multiple settings\npython fastloop_trader.py --set min_momentum_pct=0.3 --set max_position=10"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: polymarket-fast-loop\ndescription: Trade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API. Default signal is Binance BTC/USDT klines. Use when user wants to trade sprint/fast markets, automate short-term crypto trading, or use CEX momentum as a Polymarket signal.\nmetadata:\n  author: Simmer (@simmer_markets)\n  version: \"1.7.4\"\n  displayName: Polymarket FastLoop Trader\n  difficulty: advanced\n---\n# Polymarket FastLoop Trader\n\nTrade Polymarket's 5-minute crypto fast markets using real-time price signals. Default: BTC momentum from Binance. Works with ETH and SOL too.\n\n> **Polymarket only.** All trades execute on Polymarket with real USDC. Use `--live` for real trades, dry-run is the default.\n\n> **This is a template.** The default signal (Binance momentum) gets you started — remix it with your own signals, data sources, or strategy. The skill handles all the plumbing (market discovery, import, trade execution). Your agent provides the alpha.\n\n> ⚠️ Fast markets carry Polymarket's crypto taker fee (`is_paid: true`). Effective rate is 3.5% at 50¢, up to ~6.6% on cheap shares (e.g. 5¢ NO). Makers pay 0% and earn a 20% rebate from collected taker fees. Factor this into your edge calculations.\n\n> ⚠️ **Risk monitoring does not apply to sub-15-minute markets.** Simmer's stop-loss and take-profit monitors check positions every 15 minutes — which means they will never fire on 5m or 15m markets before resolution. Any risk settings you configure in the Simmer dashboard have no effect on these positions. Size accordingly and do not rely on automated stop-losses for fast market trades.\n\n> **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.\n\n## How It Finds Markets\n\n- Queries **Polymarket directly** (Gamma API) for live fast markets — doesn't depend on Simmer's market inventory\n- Discovers new markets as they appear, every cycle\n- Works with BTC, ETH, or SOL — just change the asset (`--set asset=ETH`) or ask your bot to look for whatever market you want\n- Runs every 5 minutes to catch each trading window (or every 1 minute for mid-window opportunities)\n\n**You don't need to wait for markets to show up in Simmer.** FastLoop finds them in real-time on Polymarket, then imports and trades them through Simmer.\n\n> 🚨 **Framework, not a production trading system.** Read [DISCLAIMER.md](./DISCLAIMER.md) before connecting to a wallet with real funds.\n\n## When to Use This Skill\n\nUse this skill when the user wants to:\n- Trade crypto sprint/fast markets (5-minute or 15-minute) on any supported asset\n- Automate short-term crypto prediction trad"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7axnp7bzqsf5fkx0z8px7han7zyq1x\",\n  \"slug\": \"polymarket-fast-loop\",\n  \"version\": \"1.7.4\",\n  \"publishedAt\": 1788657206481\n}"},{"path":"DISCLAIMER.md","content":"# Disclaimer\n\nThis skill is a **framework**, not a production trading system. Read this\nin full before connecting it to a wallet with real funds.\n\n## No financial advice\n\nNothing in this skill constitutes financial, investment, or trading\nadvice. The default strategy implemented here is a starting point, not a\ntested edge. Suitability for any account size or risk tolerance is your\nresponsibility to assess.\n\n## Default parameters are not validated\n\nDefault parameters are calibrated for testing the plumbing, not for live\nprofit. They have not been validated to produce positive returns under\ncurrent market conditions. Run paper mode for an extended period before\nscaling beyond default position sizes.\n\n## Automated trading carries irreversible risk\n\nWhen this skill runs with `--live`, it places real on-chain orders.\nOn-chain trades cannot be recalled. Strategy errors, signal lag, market\nregime shifts, and operator misconfiguration can produce losses\nexceeding any specific position size.\n\n## Risk monitoring may not apply to all market types\n\nStop-loss and take-profit monitors run on a fixed schedule. Markets that\nresolve faster than the monitor cycle cannot be exited automatically.\nPosition sizing is the only risk control on these markets — set it\nconservatively.\n\n## Use of this skill is at your own risk\n\nBy installing and running this skill you agree that the authors are not\nliable for any losses, direct or indirect, that arise from its use. This\napplies regardless of skill provenance — official Simmer skills,\ncommunity skills, and skills imported from external repositories all\ncarry this same disclaimer.\n\n## Where to learn more before going live\n\n- The skill's own `SKILL.md` documents the strategy and parameters\n- Your trading venue's documentation covers fee structure, order types,\n  and resolution rules\n- Simmer SDK documentation covers paper mode, dry-run flags, and\n  position monitoring"},{"path":"skill-card.md","content":"## Description:\n\nTrade Polymarket BTC 5-minute and 15-minute fast markets using CEX price momentum signals via Simmer API.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[simmer](https://clawhub.ai/user/simmer)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal developers and trading operators use this skill to configure an agent that discovers Polymarket fast crypto markets, evaluates short-window CEX momentum signals, and proposes or executes trades through Simmer. It is intended for users who understand automated trading risk and can review strategy parameters before live execution.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Live mode can place real Polymarket orders and the security review flags stale GTC cleanup behavior that may cancel orders not definitively tied to this skill.\n\nMitigation: Review or disable stale GTC cleanup before live use, and run in dry-run or an isolated account with small limits until behavior is verified.\n\nRisk: The release depends on an unpinned simmer-sdk range for trading execution.\n\nMitigation: Pin the exact reviewed simmer-sdk version before deployment and re-review behavior before upgrading.\n\nRisk: Fast markets may resolve before scheduled stop-loss or take-profit monitors can act.\n\nMitigation: Use conservative position sizing, daily budgets, and dry-run observation rather than relying on automated stop-losses for 5-minute or 15-minute markets.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/simmer/skills/polymarket-fast-loop)\n- [Simmer dashboard](https://simmer.markets/dashboard?ref=sdk-skill&utm_campaign=sdk-skill)\n- [Simmer Polymarket V2 migration guide](https://docs.simmer.markets/v2-migration)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, code, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with shell commands, configuration values, and trading run summaries]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Dry-run is the default; live trading requires explicit --live use and Simmer credentials.]\n\n## Skill Version(s):\n\n1.7.4 (source: server evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"clawhub.json","content":"{\n  \"emoji\": \"\\u26a1\",\n  \"primaryEnv\": \"SIMMER_API_KEY\",\n  \"requires\": {\n    \"env\": [\n      \"SIMMER_API_KEY\"\n    ],\n    \"pip\": [\n      \"simmer-sdk>=0.17.32\"\n    ]\n  },\n  \"envVars\": [\n    {\n      \"name\": \"SIMMER_API_KEY\",\n      \"required\": true,\n      \"description\": \"Your Simmer SDK API key \\u2014 get from simmer.markets/dashboard\"\n    },\n    {\n      \"name\": \"WALLET_PRIVATE_KEY\",\n      \"required\": false,\n      \"description\": \"Only needed for external-wallet self-custody trading. Not required when using managed wallets.\"\n    }\n  ],\n  \"cron\": null,\n  \"autostart\": false,\n  \"automaton\": {\n    \"managed\": true,\n    \"entrypoint\": \"fastloop_trader.py\"\n  },\n  \"tunables\": [\n    {\n      \"env\": \"SIMMER_FASTLOOP_ENTRY_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.3\n      ],\n      \"step\": 0.01,\n      \"label\": \"Entry edge threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MOMENTUM_THRESHOLD\",\n      \"type\": \"number\",\n      \"default\": 0.03,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Momentum threshold\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_MAX_POSITION_USD\",\n      \"type\": \"number\",\n      \"default\": 10,\n      \"range\": [\n        1,\n        50\n      ],\n      \"step\": 5,\n      \"label\": \"Max position size\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_LOOKBACK_MINUTES\",\n      \"type\": \"number\",\n      \"default\": 30,\n      \"range\": [\n        5,\n        120\n      ],\n      \"step\": 5,\n      \"label\": \"Lookback window (minutes)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_DAILY_BUDGET_USD\",\n      \"type\": \"number\",\n      \"default\": 50,\n      \"range\": [\n        10,\n        100\n      ],\n      \"step\": 10,\n      \"label\": \"Daily budget\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_VOL_CONFIDENCE_MIN\",\n      \"type\": \"number\",\n      \"default\": 0.5,\n      \"range\": [\n        0.1,\n        1.0\n      ],\n      \"step\": 0.05,\n      \"label\": \"Minimum volatility confidence\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FAIR_VALUE\",\n      \"type\": \"boolean\",\n      \"default\": false,\n      \"label\": \"Use N(d) fair-value model\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_FV_MIN_EDGE\",\n      \"type\": \"number\",\n      \"default\": 0.05,\n      \"range\": [\n        0.01,\n        0.2\n      ],\n      \"step\": 0.01,\n      \"label\": \"Fair-value min edge (fraction)\"\n    },\n    {\n      \"env\": \"SIMMER_FASTLOOP_ANNUAL_VOL\",\n      \"type\": \"number\",\n      \"default\": 0.55,\n      \"range\": [\n        0.3,\n        1.5\n      ],\n      \"step\": 0.05,\n      \"label\": \"BTC annual volatility for N(d) model\"\n    }\n  ]\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":2065,"uniquenessScore":44,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T02:29:29.658Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T02:29:29.658Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T07:20:14.924Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}