{"id":"01a96765-d8a5-4a3d-b5d1-3a47840631d1","entityType":"agent","slug":"clawhub-parmasanandgarlic-farmdash-futures-strategist","name":"FarmDash Futures Strategist","canonicalUrl":"https://www.xpersona.co/agent/clawhub-parmasanandgarlic-farmdash-futures-strategist","canonicalPath":"/agent/clawhub-parmasanandgarlic-farmdash-futures-strategist","generatedAt":"2026-10-10T06:30:06.861Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:26:13.802Z","emptyReason":null},"description":"Hyperliquid perps strategist: market scans, funding rates, position sizing, and user-signed EIP-712 order execution & cancellation with drawdown guardrails.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.6K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s177a1xxprmvcbyygraxwvbf5s83qzs6:farmdash-futures-strategist","sourceUrl":"https://clawhub.ai/parmasanandgarlic/farmdash-futures-strategist","homepage":"https://clawhub.ai/parmasanandgarlic/skills/farmdash-futures-strategist","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/parmasanandgarlic/farmdash-futures-strategist","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/parmasanandgarlic/skills/farmdash-futures-strategist","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":44,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"FarmDash Futures Strategist 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-09T13:26:13.802Z","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-09T13:26:13.802Z","emptyReason":null},"stars":null,"forks":null,"downloads":2569,"packageName":null,"latestVersion":"1.0.28","tractionLabel":"2.6K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:26:13.801Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T13:26:13.802Z","lastCrawledAt":"2026-10-09T13:26:13.801Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T13:26:13.801Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.28","createdAt":"2026-10-05T00:52:04.937Z","changelog":"FarmDash Futures Strategist 1.0.28 Changelog - Updated monetization and request gating policies: refined free (Scout), Pioneer, and Syndicate tier limits, including clarified per-endpoint access and x402 one-off policy. - Now requires higher-tier access for certain advanced endpoints (`get_futures_account`, `analyze_futures_strategy`, and `calculate_position_size`). - Removed the skill-card.md file to streamline documentation. - Improved clarity and separation between analysis and commercial routing in both prose and machine-readable responses. - Maintained strict manual confirmation and zero-custody rules before any trade or cancellation execution.","fileCount":5,"zipByteSize":34296},{"version":"1.0.27","createdAt":"2026-09-27T01:14:52.303Z","changelog":"- Removed the file: skill-card.md - No functional or user-facing changes; only documentation cleanup in this version.","fileCount":5,"zipByteSize":32109},{"version":"1.0.26","createdAt":"2026-09-27T00:50:57.489Z","changelog":"- Removed the skill-card.md file from the project. - No functional changes to the core code or documented behavior. - All endpoints, security posture, and usage instructions remain unchanged.","fileCount":5,"zipByteSize":32235},{"version":"1.0.25","createdAt":"2026-09-10T03:05:28.299Z","changelog":"FarmDash Futures Strategist v1.0.25 - Increased Scout (free tier) request limits from 5 to 30 per 24 hours, with server-enforced quotas. - Strengthened execution safety: explicit, per-order user confirmation is always required—no standing or transferred consent permitted. - Clarified separation between analytical and commercial/affiliate information in strategy responses. - Improved rate limit messaging to directly reflect authoritative API entitlement and state. - Removed the skill-card.md file (documentation/file cleanup).","fileCount":5,"zipByteSize":32109},{"version":"1.0.24","createdAt":"2026-09-09T05:34:54.706Z","changelog":"FarmDash Futures Strategist v1.0.24 - Removed the file: skill-card.md - Updated SKILL.md for improved descriptions and clarified versioning. - Minor version bump and metadata/description updates. No functional or interface changes to endpoints or core skill behavior.","fileCount":5,"zipByteSize":31340},{"version":"1.0.23","createdAt":"2026-09-07T18:07:11.064Z","changelog":"FarmDash Futures Strategist 1.0.23 - Removed the skill-card.md file. - No changes to core functionality or APIs.","fileCount":5,"zipByteSize":31272},{"version":"1.0.22","createdAt":"2026-09-06T11:05:33.769Z","changelog":"- Removed the sample file skill-card.md. - No other functionality or structural changes in this version.","fileCount":5,"zipByteSize":30541},{"version":"1.0.21","createdAt":"2026-08-04T04:28:16.325Z","changelog":"FarmDash Futures Strategist v1.0.21 - Removed the skill-card.md file from the repository. - No functional changes to the skill or its API surface. - Documentation and core implementation remain unchanged.","fileCount":5,"zipByteSize":29224}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s177a1xxprmvcbyygraxwvbf5s83qzs6:farmdash-futures-strategist","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s177a1xxprmvcbyygraxwvbf5s83qzs6:farmdash-futures-strategist` 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/parmasanandgarlic/farmdash-futures-strategist 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-parmasanandgarlic-farmdash-futures-strategist/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-parmasanandgarlic-farmdash-futures-strategist/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-parmasanandgarlic-farmdash-futures-strategist/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-parmasanandgarlic-farmdash-futures-strategist/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-parmasanandgarlic-farmdash-futures-strategist/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-parmasanandgarlic-farmdash-futures-strategist/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-10T06:30:06.857Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-parmasanandgarlic-farmdash-futures-strategist/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-parmasanandgarlic-farmdash-futures-strategist/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-parmasanandgarlic-farmdash-futures-strategist/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-parmasanandgarlic-farmdash-futures-strategist/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-09T13:26:13.802Z","emptyReason":null},"readme":"Skill: FarmDash Futures Strategist\n\nOwner: parmasanandgarlic\n\nSummary: Hyperliquid perps strategist: market scans, funding rates, position sizing, and user-signed EIP-712 order execution & cancellation with drawdown guardrails.\n\nTags: Hyperliquid futures strategist farmdash automation:1.0.8, agent:1.0.9, ai trading agent:1.0.27, ai-agent:1.0.25, ai-trading-agent:1.0.24, anthropic:1.0.9, automated-trading:1.0.20, autonomous-agent:1.0.20, basis-trading:1.0.25, blockchain-forensics:1.0.20, claude:1.0.9, clawhub:1.0.20, crypto:1.0.20, crypto futures agent:1.0.27, crypto market regime detection:1.0.27, crypto-perps-bot:1.0.22, crypto-trading:1.0.25, daily loss halt trading:1.0.26, defi:1.0.28, defi trading:1.0.27, defi-trading:1.0.24, delta-neutral:1.0.25, derivative-execution:1.0.16, derivatives:1.0.28, dex-trading:1.0.25, drawdown control trading:1.0.26, drawdown-control:1.0.25, drawdown-controls:1.0.28, drawdown-limit:1.0.16, eip-712:1.0.28, eip-712 order execution:1.0.27, fail-closed:1.0.25, farmdash:1.0.28, forensics:1.0.20, funding rate arbitrage:1.0.27, funding rate scanner:1.0.27, funding-analysis:1.0.28, funding-arb:1.0.20, funding-arbitrage:1.0.25, funding-rate:1.0.9, funding-rate-arbitrage:1.0.22, funding-rates:1.0.28, futures:1.0.20, futures-strategist:1.0.9, futures-trading:1.0.28, guardrailed leverage trading:1.0.26, hedging:1.0.20, hft:1.0.20, hyperliquid:1.0.28, hyperliquid api wallet:1.0.27, hyperliquid funding rates:1.0.27, hyperliquid perps:1.0.27, hyperliquid trading bot:1.0.27, hyperliquid-api:1.0.22, hyperliquid-vaults:1.0.22, l2:1.0.20, latest:1.0.28, leverage:1.0.16, leverage trading:1.0.27, leverage-risk:1.0.28, leverage-trading:1.0.25, liquidation:1.0.20, liquidation risk management:1.0.26, liquidation-calculator:1.0.22, liquidation-risk:1.0.25, long-short:1.0.25, long-short-crypto:1.0.22, margin-risk:1.0.28, market-analysis:1.0.28, market-making:1.0.20, market-regime:1.0.25, max leverage limit trading bot:1.0.26, mcp:1.0.28, monetization:1.0.18, no-custody:1.0.9, non custodial futures trading:1.0.27, onchain:1.0.20, openclaw:1.0.25, oracle-latency:1.0.20, order-cancellation:1.0.28, order-execution:1.0.28, perp dex:1.0.27, perp-dex:1.0.25, perpetual futures trading:1.0.27, perpetual-contracts:1.0.28, perpetual-futures:1.0.28, perpetuals:1.0.15, perps:1.0.28, perps trade signal ai:1.0.27, perps trading:1.0.27, perps-trading:1.0.24, position sizing calculator crypto:1.0.26, position-sizing:1.0.28, regime-detection:1.0.9, risk managed perps:1.0.26, risk-management:1.0.28, rsi macd adx scanner:1.0.27, self custody leverage trading:1.0.27, shadow-mode:1.0.20, stop loss position sizing:1.0.26, stop-loss:1.0.16, stop-loss-take-profit:1.0.22, strategy:1.0.15, supervised-trading:1.0.25, syndicate-tier:1.0.20, technical analysis crypto agent:1.0.27, technical-analysis:1.0.25, trade-simulation:1.0.25, trading:1.0.20, trading-agents:1.0.28, trading-assistant:1.0.25, trading-bot:1.0.9, trading-guardrails:1.0.28, trail-heat:1.0.25, user signed crypto order:1.0.26, user signed crypto orders:1.0.27, user-signed:1.0.25, user-signed-orders:1.0.28, web3:1.0.24, zero custody perps trading:1.0.27, zero-custody:1.0.25\n\nVersion history:\n\nv1.0.28 | 2026-10-05T00:52:04.937Z | user\n\nFarmDash Futures Strategist 1.0.28 Changelog\n\n- Updated monetization and request gating policies: refined free (Scout), Pioneer, and Syndicate tier limits, including clarified per-endpoint access and x402 one-off policy.\n- Now requires higher-tier access for certain advanced endpoints (`get_futures_account`, `analyze_futures_strategy`, and `calculate_position_size`).\n- Removed the skill-card.md file to streamline documentation.\n- Improved clarity and separation between analysis and commercial routing in both prose and machine-readable responses.\n- Maintained strict manual confirmation and zero-custody rules before any trade or cancellation execution.\n\nv1.0.27 | 2026-09-27T01:14:52.303Z | user\n\n- Removed the file: skill-card.md\n- No functional or user-facing changes; only documentation cleanup in this version.\n\nv1.0.26 | 2026-09-27T00:50:57.489Z | user\n\n- Removed the skill-card.md file from the project.\n- No functional changes to the core code or documented behavior.\n- All endpoints, security posture, and usage instructions remain unchanged.\n\nv1.0.25 | 2026-09-10T03:05:28.299Z | user\n\nFarmDash Futures Strategist v1.0.25\n\n- Increased Scout (free tier) request limits from 5 to 30 per 24 hours, with server-enforced quotas.\n- Strengthened execution safety: explicit, per-order user confirmation is always required—no standing or transferred consent permitted.\n- Clarified separation between analytical and commercial/affiliate information in strategy responses.\n- Improved rate limit messaging to directly reflect authoritative API entitlement and state.\n- Removed the skill-card.md file (documentation/file cleanup).\n\nv1.0.24 | 2026-09-09T05:34:54.706Z | user\n\nFarmDash Futures Strategist v1.0.24\n\n- Removed the file: skill-card.md\n- Updated SKILL.md for improved descriptions and clarified versioning.\n- Minor version bump and metadata/description updates. No functional or interface changes to endpoints or core skill behavior.\n\nv1.0.23 | 2026-09-07T18:07:11.064Z | user\n\nFarmDash Futures Strategist 1.0.23\n\n- Removed the skill-card.md file.\n- No changes to core functionality or APIs.\n\nv1.0.22 | 2026-09-06T11:05:33.769Z | user\n\n- Removed the sample file skill-card.md.\n- No other functionality or structural changes in this version.\n\nv1.0.21 | 2026-08-04T04:28:16.325Z | user\n\nFarmDash Futures Strategist v1.0.21\n\n- Removed the skill-card.md file from the repository.\n- No functional changes to the skill or its API surface.\n- Documentation and core implementation remain unchanged.\n\nv1.0.20 | 2026-06-29T07:08:21.362Z | user\n\n- Scout tier now supports up to 5 executions or analysis requests per day; Pioneer and Syndicate tiers remain unlimited.\n- Execution commands are now available to all tiers (Scout, Pioneer, Syndicate) with daily limits for Scout users.\n- Hard safety requirement: every execution or cancellation must be confirmed manually by the user, with full trade details presented.\n- Monetization and tier restriction messaging updated to reflect Scout's daily cap and upgrade/bypass options.\n- Security and network boundary documentation updated for consistent disclosure.\n- Removed: skill-card.md file.\n\nv1.0.19 | 2026-06-28T01:23:05.902Z | user\n\n- Removed the file: skill-card.md.\n- No other user-facing features or endpoints were changed.\n- This update does not affect agent behavior or external functionality.\n\nv1.0.18 | 2026-06-26T04:08:09.164Z | user\n\nFarmDash Futures Strategist v1.0.18\n\n- Removed the skill-card.md file from the project.\n- No functional or API changes—maintenance update only.\n\nv1.0.17 | 2026-06-26T00:46:42.134Z | user\n\nFarmDash Futures Strategist 3.0.0 is a major upgrade introducing monetization, forensics, and security enhancements.\n\n- Execution (order placement/cancellation) is now Syndicate-tier only; research and simulation remain free for Scout/Pioneer users.\n- Added value-aligned monetization and affiliate disclosure protocols requiring clear communication on access and fees.\n- Introduced an 11-field forensic telemetry standard (\"Botlok\") for tamper-evident execution and enhanced audit trails.\n- Surfaced enhanced Oracle latency, network regime, and shadow-mode detection in pre-trade research and reporting.\n- Skill documentation condensed and streamlined; removed legacy file (skill-card.md).\n\nv1.0.16 | 2026-05-30T23:51:35.418Z | user\n\nFarmDash Futures Strategist 1.0.16\n\n- Added SKILL.json file for skill configuration.\n- Removed skill-card.md documentation file.\n- No changes to core functionality or endpoints.\n\nv1.0.15 | 2026-05-25T05:33:29.271Z | user\n\n- Added official support for keyless Scout mode using the public fd_scout_free key.\n- Clarified that no API key is required for Scout (research-only) access.\n- Updated environment variable documentation to note fd_scout_free token for Scout tier.\n- Added onboarding endpoint for optional, user-initiated tier/status checks (not called during install or research).\n- Minor metadata improvements for tier and free Scout detection.\n\nv1.0.14 | 2026-05-22T17:15:34.452Z | user\n\nFarmDash Futures Strategist 1.0.14\n\n- Updated skill tags to include broader descriptors such as defi, ai-agent, autonomous-agent, and several market-specific tags.\n- No functional or code changes; documentation only.  \n- Core usage, endpoints, API contract, and security posture remain unchanged.\n\nv1.0.13 | 2026-05-21T04:38:03.978Z | user\n\n1. No code or documentation changes detected in this release.\n2. Version incremented to 1.0.13 with no detectable modifications from the previous version.\n\nv1.0.12 | 2026-05-20T21:45:04.725Z | user\n\nNo changes detected in this release.\n\n- Version bump only; no updates to functionality or documentation.\n- Behavior and API contracts remain unchanged.\n\nv1.0.11 | 2026-05-20T17:37:39.835Z | user\n\nNo user-facing changes in this version.\n\n- Version bumped from 1.0.11 to 2.3.0, but no file changes detected.\n- No updates to functionality, documentation, or configuration.\n\nv1.0.10 | 2026-05-20T03:48:43.598Z | user\n\nFarmDash Futures Strategist 1.0.10\n\n- No code or documentation changes in this version.\n- Behavior and network boundaries remain the same as the previous release.\n\nv1.0.9 | 2026-05-13T15:44:26.672Z | user\n\nNo user-visible changes in this release.\n\n- Version number updated from 1.0.9 to 2.1.0.\n- No functionality, documentation, or code changes detected.\n\nv1.0.8 | 2026-05-13T14:47:04.473Z | user\n\nNo code or documentation changes detected in this version.\n\n- Version bump only; no updates to logic, endpoints, or documentation.\n- No impact on features, security, or usage.\n\nv1.0.7 | 2026-05-13T04:32:08.429Z | user\n\nFarmDash Futures Strategist 2.1.0 adds enhanced security, explicit data usage disclosure, and confirmation safeguards.\n\n- All endpoint URLs updated to use `www.farmdash.one` (from `farmdash.one`).\n- Added detailed \"Data Sent to FarmDash\" disclosure clarifying what agent data is never transmitted.\n- Introduced a mandatory, explicit pre-execution user confirmation protocol, including full trade details and affirmation requirements.\n- Metadata clarified for EIP-712 execution and credential environment variable usage.\n- Environment variable `FARMDASH_API_KEY` is now explicitly documented in SKILL.md.\n- Homepage URLs and allowed links updated to match new domain standard.\n\nv1.0.6 | 2026-04-26T06:29:04.412Z | user\n\nFarmDash Futures Strategist 1.0.6\n\n- Updated documentation: SKILL.md now reflects version 2.0.0, down from 2.1.0, with minor content streamlining.\n- No code or interface changes; this release is documentation-only.\n- Revised the recommended workflow section and removed the reference to a shared operating model file.\n- Clarified strategy recommendation structures and reaffirmed tool availability and zero-custody execution principles.\n- No changes to API endpoints, features, or security model.\n\nv1.0.5 | 2026-04-21T19:45:40.324Z | user\n\nFarmDash Futures Strategist 2.1.0 introduces a shared operating model reference and improved documentation clarity.\n\n- Added reference to shared operating model: `../FARMDASH_AGENT_OPERATING_MODEL.md`\n- Clarified documentation structure and agent guidelines\n- No functional changes to APIs, tools, or execution logic\n\nv1.0.4 | 2026-04-09T06:48:18.874Z | user\n\nMajor update: Skill transitioned from static, fixed-surface research to a dynamic execution engine with adaptive strategy objects and simulation.\n\n- Now returns structured strategies with explicit pre-trade simulation, confidence, regime, and “no trade” handling.\n- Adds execution hardening: supports short-lived TTL (`expiresAt`) and intent hash (`intentHash`) for all signed actions.\n- Shifts from static buckets (momentum/mean reversion/arbitrage) to adaptive, regime-aware strategy objects.\n- Research-first flow; never executes without simulation or full fee disclosure.\n- Tier and credential model unchanged; local EIP-712 signature is always required for execution.\n\nv1.0.3 | 2026-04-05T05:26:11.443Z | user\n\nNo user-facing changes in this release.\n\n- No file changes detected between versions 1.0.3 and 1.1.0.\n- Documentation, features, and configuration remain unchanged.\n\nv1.0.2 | 2026-03-28T02:00:25.441Z | user\n\nFarmDash Futures Strategist v1.1.0\n\n- Adds explicit documentation of the `FARMDASH_API_KEY` primary API credential, replacing legacy credential names.\n- Details credential requirements and tiered agent modes: Scout (no key), Pioneer (analysis), Syndicate (execution).\n- Clarifies strict order execution rules: all orders require a fresh EIP-712 signature; private keys must never be requested or handled.\n- Updates OpenClaw metadata to include `primaryEnv`.\n- Expands safe-rollout and credential usage guidance, supporting test and incremental deployment.\n- No code or tool surface changes. Documentation only.\n\nv1.0.1 | 2026-03-28T01:35:43.795Z | user\n\nFarmDash Futures Strategist 1.0.1\n\n- Added `openapi.yaml` to define the skill’s API contract.\n- Updated documentation to clarify the fixed API surface and execution workflow.\n- All external APIs and network boundaries are now explicitly defined in the skill bundle.\n- Updated tool names and documentation: only approved endpoints and naming aliases allowed.\n- Added detailed, explicit security, fee disclosure, and risk guardrails in the documentation.\n\nv1.0.0 | 2026-03-28T00:53:58.970Z | user\n\nFarmDash Futures Strategist 1.0.0\n\n- Introduces an autonomous agent for perpetual futures trading on Hyperliquid, focused on research-driven, zero-custody execution.\n- Implements four built-in strategies: Funding Rate Arbitrage, Momentum Breakout, Mean Reversion, and Position Management, all with hard-coded risk guardrails.\n- Integrates directly with Trail Heat for market research, strategy selection, and opportunity cross-promotion.\n- Enforces zero-custody trading: orders signed via EIP-712, never handling user funds or private keys.\n- Includes transparent builder fee (1bps) and referral/cross-sell flows for FarmDash revenue.\n- Provides detailed API wallet setup, risk management, research tools, and agent behavior guidelines.\n\nArchive index:\n\nArchive v1.0.28: 5 files, 34296 bytes\n\nFiles: openapi.yaml (40188b), skill-card.md (2132b), SKILL.json (12740b), SKILL.md (57564b), _meta.json (147b)\n\nFile v1.0.28:SKILL.md\n\n---\r\nname: FarmDash Futures Strategist\r\ndescription: \"Hyperliquid perps strategist: market scans, funding rates, position sizing, and user-signed EIP-712 order execution & cancellation with drawdown guardrails.\"\r\nversion: \"3.4.0\"\r\nauthor: FarmDash Pioneers (@Parmasanandgarlic)\r\nhomepage: https://www.farmdash.one/agents\r\ntags: [\"defi\",\"hyperliquid\",\"perpetual-futures\",\"perps-trading\",\"leverage-trading\",\"perp-dex\",\"defi-trading\",\"ai-trading-agent\",\"funding-rates\",\"funding-arbitrage\",\"position-sizing\",\"drawdown-control\",\"liquidation-risk\",\"eip-712\",\"zero-custody\",\"openclaw\",\"mcp\",\"risk-management\",\"web3\",\"farmdash\"]\r\nenv:\r\n  FARMDASH_API_KEY:\r\n    description: \"Optional Bearer token for Pioneer or Syndicate tier. Scout mode works with no key or with the public fd_scout_free token. Never share private keys, seed phrases, or mnemonics with this skill — perps execution uses EIP-712 local signing only via the user's Hyperliquid API wallet.\"\r\n    required: false\r\nmetadata: {\"openclaw\":{\"homepage\":\"https://www.farmdash.one/agents\",\"skillKey\":\"farmdash-futures-strategist\",\"primaryEnv\":\"FARMDASH_API_KEY\",\"apiKeyRequired\":false,\"freeScoutKeyless\":true,\"freeScoutKey\":\"fd_scout_free\",\"execution\":\"user-signed-eip712-hyperliquid\"}}\r\n---\r\n\r\n# FarmDash Futures Strategist\r\n\r\n> Use this skill for Hyperliquid perpetuals: researching markets, funding rates, sizing positions with drawdown guards, and submitting user-signed EIP-712 orders or cancellations under explicit manual confirmation.\r\n\r\n## What This Skill Is\r\nThis skill is the FarmDash guarded perps strategy and execution engine for Hyperliquid with zero-custody, user-signed EIP-712 execution.\r\n\r\nIt is designed to help an agent:\r\n* research perp markets before any execution\r\n* rank and present multiple trade candidates instead of forcing one setup\r\n* return a structured strategy object, not just a plain-language idea\r\n* simulate likely outcomes before the user signs anything\r\n* refuse weak or ambiguous trades with an explicit `no_trade` outcome\r\n* execute only through zero-custody, user-signed EIP-712 requests\r\n\r\nCore posture:\r\n* research first\r\n* execution second\r\n* no custody\r\n* no blind trading\r\n\r\nThe bundled `openapi.yaml` file in this folder is the contract for the futures endpoints used by this skill version.\r\n\r\n## Value-Aligned Monetization Protocol (v3.0 Upgrade)\r\nHyperliquid perps execution requires current market/account data, guarded request handling, and robust venue connectivity. This skill employs a strict, non-predatory monetization model to sustain these operations:\r\n\r\n### 1. Execution Gating and Limits\r\nCommercial access and Hyperliquid execution authority are separate:\r\n* **Scout (Free):** 30 requests / 24h. Scout gets `scan_market_conditions`, a top-3 numeric `scan_funding_rates` preview, and signed execute/cancel capacity inside the shared quota.\r\n* **Pioneer:** 1,500 requests / day and the full Futures research surface.\r\n* **Syndicate:** 50,000 requests / day and the full Futures surface at higher capacity.\r\n* **Eligible x402 one-offs:** buy exactly one request under the route's published policy; they never create signing or delegation authority.\r\n\r\n`get_futures_account`, `analyze_futures_strategy`, and `calculate_position_size` are not Scout-free. A valid Pioneer/Syndicate token or the eligible one-off x402 policy is required. A default-overage x402 payment unlocks the full funding response for that request.\r\n\r\n**CRITICAL SAFETY REQUIREMENT:** Under no circumstances should the agent invoke `execute_perp_order` or `cancel_perp_order` automatically. Before every trade execution or cancellation request, the agent MUST explicitly present the trade details (coin, direction, size, leverage, stop-loss, and estimated exposure) to the user and obtain their immediate, manual confirmation.\r\n\r\nConsent is non-transferable and never standing: Analysis permission ≠ trading permission. Subscription entitlement ≠ trading permission. x402 payment ≠ trading permission. Previous confirmation ≠ trading permission for a later order. \"Trade for me\" and similar broad instructions ≠ standing authorization for subsequent orders. Every execution and every cancellation gets its own current-turn confirmation.\r\n\r\n* If Scout user exceeds limit: \"Scout limit reached (30 requests per 24 hours, server-enforced). Upgrade to Pioneer or Syndicate at farmdash.one/agents or pay one-off x402 to bypass. Want me to keep researching?\" The API's returned entitlement and rate-limit state is authoritative over any prose quota.\r\n\r\n### 2. Optional Hyperliquid Affiliate Routing\r\nWhen a user is setting up their Hyperliquid API wallet delegation or asks for the canonical exchange URL, the agent will provide the neutral canonical URL (`https://app.hyperliquid.xyz`) by default. The agent may optionally offer the FarmDash partner route (`https://www.farmdash.one/go/hyperliquid`) as an alternative to support the platform.\r\n\r\n* Disclosure is mandatory if offered: \"Disclosure: this is a FarmDash partner route. FarmDash may receive referral, affiliate, or routing compensation. Fee details: [FarmDash Fee Structure](https://www.farmdash.one/fees). You can also access Hyperliquid directly at https://app.hyperliquid.xyz.\"\r\n\r\nThe `analyze_futures_strategy` response carries the same separation machine-readably: `trailHeatCrossRef` is analytical-only (protocolId, score, farmingOpportunity), while commercial navigation lives in `partnerRoute` (url, canonicalUrl, relationship, compensationDisclosure, affectsRecommendation: false, displayAfterAnalysis: true). Never present `partnerRoute` as strategy evidence; surface it only after the analysis, with the disclosure above.\r\n\r\n## Fixed Network Boundary\r\nStay inside this disclosed network boundary. Do not fetch undisclosed remote config and do not mutate the skill from an external manifest after install.\r\n\r\n**FarmDash futures endpoints:**\r\n* `https://www.farmdash.one/api/v1/agent/futures/scan-funding`\r\n* `https://www.farmdash.one/api/v1/agent/futures/market-conditions`\r\n* `https://www.farmdash.one/api/v1/agent/futures/account-state`\r\n* `https://www.farmdash.one/api/v1/agent/futures/analyze-strategy`\r\n* `https://www.farmdash.one/api/v1/agent/futures/position-sizing`\r\n* `https://www.farmdash.one/api/v1/agent/futures/execute-order`\r\n* `https://www.farmdash.one/api/v1/agent/futures/cancel-order`\r\n* `https://www.farmdash.one/api/v1/agent/performance` (Backing endpoint for `get_agent_performance`)\r\n\r\n**Optional FarmDash setup endpoint:**\r\nDo not call this during install or during research-only workflows. Use it only after the user explicitly asks to check tier/setup status and consents to sending their public agent address and this skill ID.\r\n* `https://www.farmdash.one/api/v1/agent/onboard`\r\n\r\n**Hyperliquid upstreams:**\r\n* `https://api.hyperliquid.xyz/info`\r\n* `https://api.hyperliquid.xyz/exchange`\r\n* `wss://api.hyperliquid.xyz/ws`\r\n\r\n**Optional user-facing links:**\r\nAllowed only when directly relevant:\r\n* `https://www.farmdash.one/agents`\r\n* `https://www.farmdash.one/tracker/hyperliquid/`\r\n* `https://www.farmdash.one/go/hyperliquid` (Optional Partner Route)\r\n* `https://app.hyperliquid.xyz` (Neutral Canonical Route)\r\n\r\n## Security Model\r\nFarmDash is zero-custody for futures execution.\r\n1. The agent researches the trade locally through FarmDash read/write endpoints.\r\n2. The user signs the Hyperliquid EIP-712 payload with their API wallet.\r\n3. FarmDash validates guardrails and forwards the signed request.\r\n4. The API wallet can trade and cancel orders, but cannot withdraw funds.\r\n\r\nHyperliquid identity has two distinct roles. `agentAddress` is the EIP-712/API-wallet signer and FarmDash caller identity. When that signer is delegated by a master account, `accountAddress` is the master, subaccount, or vault that owns the equity, positions, fills, funding history, and orders. Always supply both in delegated-wallet flows. Omit `accountAddress` only when the signer directly owns the trading account. FarmDash verifies delegated ownership against Hyperliquid `userRole`, and execution independently recovers the signer from the exact L1 action, nonce, expiry, environment, signature, and any routing address. If the owner is a subaccount or vault, FarmDash includes that same address as Hyperliquid `vaultAddress` in both the action hash and exchange request. Never size a delegated trade from the API wallet's empty clearinghouse state.\r\n\r\nHard rules:\r\n* never ask for a private key, seed phrase, or wallet export\r\n* never imply that a bearer token can replace a local signature\r\n* never skip the research step before non-reduce-only execution\r\n* never accept a claimed signer/account relationship that Hyperliquid does not currently report\r\n* never submit when the recovered L1 signer differs from `agentAddress`\r\n* Never ask the user to paste a private key, seed phrase, or raw wallet export into the agent.\r\n\r\n\r\n### EVM Spot Delegation vs Hyperliquid Perps Boundary\r\nEVM spot bounded delegation (via EIP-712/ERC-8196 on Base, Ethereum, Arbitrum, etc.) applies strictly to EVM spot swaps within its signed policy. It DOES NOT authorize Hyperliquid perpetual futures operations. Hyperliquid perps operate exclusively under Hyperliquid's native EIP-712 exchange protocol via an explicitly delegated Hyperliquid API wallet. Neither authority transfers to or substitutes for the other. Commercial access (Scout, API keys, x402) also never grants Hyperliquid trading authority.\r\n## Data Sent to FarmDash (Disclosure)\r\n*Security boundaries:* All operations use public or pre-signed EIP-712 payloads. Private key material is never required or processed by this skill. Verify the full surface against the bundled `openapi.yaml`.\r\n\r\n## Pre-Execution Confirmation Protocol (Mandatory)\r\nBefore calling `execute_perp_order` or `cancel_perp_order`, present the user with: asset, direction, size, risk-notional, leverage metadata, entry/stop/take-profit, margin impact, regime label, confidence score and scale, data timestamp, order type/TIF, reduce-only status, exact limit or trigger price, and the signed builder recipient/rate (`f=1` = 0.1 bp = 0.001% of filled notional). Wait for an explicit affirmative (\"yes / confirm / proceed\"). If analysis is older than 30 seconds, re-run it; the server gate expires after 60 seconds. Implicit consent from earlier in the conversation is not sufficient.\r\n\r\nDo not present the pre-trade liquidation estimate as the venue's actual liquidation price. Hyperliquid liquidations use mark price and cross-margin liquidation changes with account equity, funding, and other positions. Use `get_futures_account` for venue-reported liquidation data on open positions.\r\n\r\n### FarmDash-side execution hardening\r\nFor `execute_perp_order`, include all of:\r\n* `nonce` - client-generated positive integer for replay protection\r\n* `expiresAt` - short request TTL in unix milliseconds\r\n* `intentHash` - hash of the intended order payload for auditability and mutation detection\r\n\r\nFor `cancel_perp_order`, `nonce`, `expiresAt`, and `intentHash` are required. `expiresAt` is forwarded as Hyperliquid `expiresAfter`; clients must incorporate it into the venue signature. Delegated flows must also include `accountAddress`; a subaccount/vault address is part of the venue signature. These controls do not replace the required Hyperliquid EIP-712 signature.\r\n\r\nHyperliquid venue nonce authority is `network + signer + nonce`, shared across order and cancellation actions and across different account/vault contexts for that signer. FarmDash uses durable database-backed replay control and fails closed before venue submission if that control is unavailable. An exact replay can return its stored result; any changed signed/context fact or ambiguous outcome must never trigger blind resubmission.\r\n\r\n### Unsupported markets: namespaced HIP-3 perp-DEX assets\r\nFarmDash supports the default Hyperliquid perp DEX only. A namespaced HIP-3 market such as `HYNA:ETH` is refused with HTTP 422 and `code: perp_dex_namespace_unsupported` on every market-taking route (`market-conditions`, `analyze-strategy`, `execute_perp_order`, `cancel_perp_order`), and `scan_funding_rates` excludes namespaced markets from its ranking so research never recommends a market execution will refuse. The response echoes the requested `market` and its `dex`.\r\n\r\nTreat the refusal as final. Do not strip the namespace and retry against the base symbol: `HYNA:ETH` and `ETH` are different markets, so that substitution would trade something the user did not ask for. Full perp-DEX support is not shipped.\r\n\r\n### Leverage is venue state, not request state\r\n`execute_perp_order` never changes your leverage and never assumes a requested leverage took effect. Before an exposure-increasing order it reads the venue's authoritative configuration for that exact market and compares it with `leverage`:\r\n* Matching: the response reports `leverageStatus: venue_verified` together with `leverageVenue` and `leverageMarginMode`.\r\n* Different: the order is refused with HTTP 422 and `code: perp_leverage_prerequisite`, carrying `leverageRequested`, `leverageVenue`, and `howToResolve`. Submit an independently signed Hyperliquid `updateLeverage` action, wait for venue confirmation, re-read venue state, then resubmit. The prerequisite clears only when venue state itself changes.\r\n* No position yet: the venue does not publish per-asset leverage before a position exists, so FarmDash cannot confirm the standing setting. The order proceeds with `leverageVerified: false` and an explicit notice - the venue's own configuration governs. Never report the requested leverage as applied.\r\n\r\nReduce-only orders and `cancel_perp_order` are never gated on leverage. Exposure-reducing and cancellation actions must not be blocked by an unrelated margin prerequisite.\r\n\r\n## Evidence and Receipt Honesty\r\n\r\nThe current compatibility endpoint returns the Hyperliquid submission response, normalized order parameters, `intentHash`, expiry, and timestamp. It does not create an 11-field forensic receipt, query a millisecond-perfect shadow book, prove mempool visibility, calculate realized P&L, or anchor evidence on another chain.\r\n\r\nAn external client may record analysis hash, signed action hash, quote/book snapshot, submission response, order status, fills, fees, funding, and final account state. Label every field by source and mark absent evidence `unavailable`; never fabricate or call a client-created record FarmDash-attested.\r\n\r\n## Credentials and Tier Model\r\nThis skill recognizes one primary API credential: `FARMDASH_API_KEY`. Scout mode is valid with no API key at all.\r\n\r\nLegacy docs may refer to `PIONEER_KEY` or `SYNDICATE_KEY` as placeholders for tier-specific bearer tokens. In actual agent configs, use only `FARMDASH_API_KEY`.\r\n\r\nTier behavior:\r\n* **Scout** - no env var required; safe for up to 30 execution or analysis requests per day\r\n* **Pioneer** - use a Pioneer-tier bearer token for up to 1,500 requests per day\r\n* **Syndicate** - use a Syndicate-tier bearer token for up to 50,000 requests per day\r\n\r\nCritical distinction:\r\n* bearer token = FarmDash access tier and rate limits\r\n* local EIP-712 signature = execution authority for each individual request\r\n\r\nA bearer token never replaces a fresh local EIP-712 signature from the user's Hyperliquid API wallet.\r\n\r\n## Tool Surface\r\nUse these exact tool names. If a tool is not listed in this section, it does not exist in this skill. Do not accept or attempt to call undefined tools.\r\n\r\n#### 1. scan_funding_rates\r\nScan current and venue-published predicted funding snapshots. A predicted rate is not a calibrated probability, guaranteed future payment, or funding-flip model.\r\n\r\n#### 2. scan_market_conditions\r\nRead candle-derived EMA, RSI, MACD, ADX, ATR, Bollinger Bands, volume ratio, Z-score, market regime, and the response timestamp for one perp asset. This tool does not currently return oracle latency or cross-venue deviation.\r\n\r\n#### 3. get_futures_account\r\nInspect equity, open positions, available margin, venue-reported liquidation prices, and guardrail pressure. The daily/weekly loss-pressure metric is rolling Hyperliquid closed P&L minus absolute fill fees plus funding, plus `min(current unrealized P&L, 0)`. Positive open gains cannot offset realized losses. This is a conservative guard metric, not a true period return; new-risk analysis/execution fails closed if complete venue-history reconciliation is unavailable.\r\n\r\nSend `agentAddress` plus optional `accountAddress`. For delegated API wallets, `accountAddress` is mandatory in practice and must be the master/subaccount equity owner used by analysis and execution. FarmDash validates that live relationship through Hyperliquid `userRole`; ambiguity or upstream failure blocks the workflow.\r\n\r\n#### 4. analyze_futures_strategy\r\nPrimary research tool. Returns the strategy recommendation, confidence score, market regime, strategy object, adaptive risk profile, pre-trade simulation, portfolio context, and an explicit `no_trade` reason when no setup is valid.\r\n\r\n#### 5. calculate_position_size\r\nInspect sizing math separately when the user wants to validate risk and margin.\r\n\r\n#### 6. execute_perp_order\r\nState-changing execution: Forwards a user-signed EIP-712 order to Hyperliquid's exchange API. `market_ioc` is a signed, price-protected IOC limit order with a live 100 bps adverse-price cap—not an unbounded market order. Execute only after fresh research, parameter binding, exact builder-fee disclosure, local signing, and immediate explicit manual user confirmation. The response distinguishes `fully_filled`, `partially_filled`, `zero_fill`, `resting_unfilled`, rejection, and unknown; an IOC response claiming resting is unknown/inconsistent. Inspect authoritative venue status and fills before any dependent action.\r\n\r\n#### 7. cancel_perp_order\r\nState-changing action: Cancel open Hyperliquid orders using a pre-signed EIP-712 cancellation payload. Requires immediate, explicit manual confirmation before invoking. `accepted` is only application acknowledgement, not venue cancellation. Use `/api/v1/agent/futures/reconcile-order` for every requested ID before changing exposure; reconciliation evidence establishes finality. `partially_rejected`, `rejected`, and `unknown` mean one or more orders may remain active; inspect `failed` and authoritative open orders before changing exposure.\r\n\r\n#### 8. get_agent_performance\r\nUse only for FarmDash fee-event activity, fees, protocol diversity, and reputation. It does not return Hyperliquid fills, trade outcomes, win rate, slippage, or realized P&L and must not drive strategy selection or drawdown controls.\r\n\r\n\r\n\r\n### Current Request Contracts (v3.2)\r\nThese fields are load-bearing because the API handlers validate them strictly:\r\n* **analyze_futures_strategy**: send `coin`, `agentAddress`, optional `accountAddress`, and optional `riskMultiplier` between 0.1 and 1.0. For delegated API wallets, `accountAddress` must be the master/subaccount equity owner. Do not send `biasHint`; the current handler does not consume it.\r\n* **calculate_position_size**: send `equity`, `entryPrice`, `stopPrice`, optional `riskPercent`, optional `targetPrice`, and optional `riskMultiplier`. Do not send legacy `stopLoss` or `riskUsd`.\r\n* **execute_perp_order**: send `agentAddress`, optional `accountAddress`, `coin`, `isBuy`, `size`, `price`, `orderType`, `signature`, positive integer `nonce`, millisecond `expiresAt`, required `intentHash`, optional `leverage`, optional `signedAction`, and optional `reduceOnly`. Use `market_ioc` only for a signed, price-protected IOC limit at the stated 100 bps live adverse-price cap; it is not an unbounded market order. `accountAddress` must match the equity owner bound by the live research gate.\r\n* **cancel_perp_order**: send `agentAddress`, optional `accountAddress`, `coin`, `orderIds` as an array of positive integers, `signature`, required positive integer `nonce`, required millisecond `expiresAt`, required `intentHash`, and optional `signedAction`. Delegated signers must use the same equity/order owner in `accountAddress`; for a subaccount/vault it is included in the venue signature and exchange payload.\r\n\r\nIf the user or another agent provides a legacy shape, stop and normalize the request before signing. Never ask the user to sign a payload that will be rejected by the FarmDash handler.\r\n\r\nThe `leverage` field is FarmDash intent/risk metadata in this compatibility endpoint; the endpoint does not submit Hyperliquid's separate `updateLeverage` action. Verify actual venue margin mode and leverage independently. Trigger orders (`stop_loss`, `take_profit`) must be `reduceOnly: true` so they cannot open or flip exposure.\r\n\r\nEvery order carries a disclosed FarmDash Hyperliquid builder term of `f=1`, which Hyperliquid defines as **one tenth of one basis point: 0.1 bp = 0.001% of filled notional**. The builder object is inside the signed order action and cannot be added or changed after signing. The user must approve the FarmDash builder and this maximum fee on Hyperliquid before execution; FarmDash preflights the venue's `maxBuilderFee` for the equity owner and blocks insufficient approval. Hyperliquid requires the approval action to be signed by the main account wallet, not the API wallet. Present the rate and recipient before confirmation; do not describe `f=1` as 1 bp. Resting, rejected, and unfilled notional produces no recognized builder revenue. `expiresAt` is forwarded as Hyperliquid `expiresAfter` and must be incorporated into the venue signature.\r\n\r\n## Autonomous Perps State Ledger (v3.0)\r\nPersist this ledger for every futures workflow:\r\n\r\n```json\r\n{\r\n  \"agentAddress\": \"0x...\",\r\n  \"accountAddress\": \"0x... master/subaccount equity owner; same as agentAddress only for direct signing\",\r\n  \"coin\": \"ETH\",\r\n  \"mode\": \"research | hedge | funding | reduce_only | cancel\",\r\n  \"researchGate\": {\r\n    \"ranAnalyzeStrategy\": false,\r\n    \"direction\": \"long | short | neutral | unknown\",\r\n    \"confidence\": 0,\r\n    \"confidenceScale\": \"0-100 heuristic score; not a win probability\",\r\n    \"expiresAt\": 0,\r\n    \"dataTimestamp\": 0,\r\n    \"predictedFundingRate\": null\r\n  },\r\n  \"riskGate\": {\r\n    \"equity\": 0,\r\n    \"maxLeverage\": 5,\r\n    \"riskPercent\": 0,\r\n    \"drawdownState\": \"normal | pressure | halted\"\r\n  },\r\n  \"executionIntent\": {\r\n    \"nonce\": 0,\r\n    \"expiresAt\": 0,\r\n    \"intentHash\": \"\",\r\n    \"signedActionMatchesParams\": false,\r\n    \"recommendationHash\": \"sha256...\",\r\n    \"maxPositionSize\": 0,\r\n    \"maxEntryDeviationBps\": 50\r\n  },\r\n  \"decision\": \"no_trade | analyze_only | request_confirmation | execute | cancel | reduce\"\r\n}\r\n```\r\n\r\n### Rules:\r\n* Non-reduceOnly execution requires a fresh, execution-ready `analyze_futures_strategy` result. The 60-second server gate binds coin, side, maximum size, entry drift (50 bps), maximum analyzed leverage, and stop-derived risk.\r\n* New-risk analysis and execution require a fully paginated, deduplicated venue-derived loss-pressure metric from Hyperliquid perp fills, funding, and negative current unrealized P&L. Saturated or ambiguous history fails closed. Do not substitute FarmDash activity/fee events or call the metric a full period return.\r\n* `funding_arb` is analysis-only in the compatibility executor because FarmDash cannot atomically bind and verify both venues/legs. Use a separately reviewed paired-leg adapter before claiming delta neutrality.\r\n* `execute_perp_order` intent expiry should be short, ideally 30-60 seconds.\r\n* If the user changes size, price, side, order type, leverage, or reduce-only status after signing, rebuild the intent hash and re-sign.\r\n* If the strategy is neutral, `no_trade`, `funding_arb`, below 60 confidence, expired, direction-mismatched, oversized, over-levered, or more than 50 bps from analyzed entry, stop before asking for a signature.\r\n* `cancel_perp_order` can batch up to 50 unique `orderIds`; do not send a singular `orderId` shape. Never infer final cancellation from HTTP transport status or `accepted`: every ID must be reconciled through `/api/v1/agent/futures/reconcile-order` using authoritative venue evidence.\r\n\r\n## Execution Engine Principles\r\n\r\n### 1. Dynamic Strategy Objects\r\nDo not present the engine as four static buckets. The recommendation should be treated as a structured strategy object with:\r\n* market\r\n* direction\r\n* regime\r\n* trigger conditions\r\n* entry logic\r\n* exit logic\r\n* adaptive risk model\r\n* leverage model\r\n* fallback logic\r\n* telemetry hooks\r\n\r\nThis is the foundation for later marketplace and performance-layer expansion.\r\n\r\n### 2. Simulation Before Execution\r\nBefore asking the user to sign, surface the heuristic scenario analysis. Minimum fields to use from the returned simulation block:\r\n* heuristic liquidation estimate, clearly labeled as non-authoritative and unsuitable for cross-margin gating\r\n* stop-loss PnL\r\n* take-profit PnL\r\n* one-ATR move impact\r\n* margin required and margin impact\r\n* estimated funding carry over 24h and 72h\r\n\r\nDo not reduce the setup to \"buy here\" or \"short here\" if simulation is available.\r\n\r\n### 3. Adaptive Risk, Not Static Risk\r\nThe engine scales risk heuristically based on:\r\n* volatility\r\n* confidence\r\n* drawdown state\r\n* directional concentration\r\n\r\nConfidence is an uncalibrated 0–100 rule score, not a probability that the trade wins. Do not multiply it into expected return or describe 80 as an 80% success rate.\r\n\r\nUse the returned `adaptiveRisk` object to explain why leverage or size is being reduced. Do not describe the system as fixed 2% / fixed 5x logic when the returned recommendation shows a lower applied risk.\r\n\r\n### 4. Market Regime Awareness\r\nRespect the returned `marketRegime`.\r\n\r\nCurrent regimes:\r\n* trending\r\n* ranging\r\n* high_volatility\r\n* low_liquidity\r\n\r\nDo not force mean reversion inside a strong trend, and do not force momentum in thin or unstable conditions.\r\n\r\n### 5. No Trade Is a Valid Output\r\n`no_trade` is first-class. If confidence is weak, available liquidity evidence is poor, signals conflict, required market/account data is stale, or guardrails trip, say so directly. Trust is more important than producing a trade every cycle.\r\n\r\n### 6. Data Integrity\r\n`scan_market_conditions` currently returns candle-derived indicators and a timestamp. It does not return oracle latency or cross-venue oracle deviation. Therefore:\r\n\r\n* never claim an oracle-desync check ran when those fields are absent;\r\n* fail closed if the order book or required account state is missing or stale;\r\n* compare mark, oracle, and executable book prices only when an authoritative response actually supplies them;\r\n* use Hyperliquid mark price—not last trade or a DEX quote—to reason about liquidation, while recognizing that cross-margin liquidation also depends on the whole account.\r\n\r\n### 7. Execution-Quality Gating\r\nSubmission is not a fill. Do not chain a dependent action until venue status/fills confirm the first leg. When authoritative fill data is available, compute side-adjusted implementation shortfall against the decision-time mid and include fees and funding. If fill data is absent, execution quality is `unknown`, not zero slippage.\r\n\r\n## Strategy Families\r\nCurrent strategy families that may appear in recommendations:\r\n* `funding_arb`\r\n* `momentum_long`\r\n* `momentum_short`\r\n* `trend_pullback_long`\r\n* `trend_pullback_short`\r\n* `mean_reversion`\r\n* `no_trade`\r\n\r\nInterpretation:\r\n* momentum strategies are for aligned directional continuation\r\n* trend pullback strategies are for controlled re-entry into a strong existing trend\r\n* mean reversion is only valid when the market is genuinely range-bound\r\n* funding arb is only valid when both legs, basis, liquidity, all costs, margin, and an unwind path are independently verified; the compatibility executor keeps this family analysis-only\r\n\r\n### Strategy Family Selection Logic (v2.2)\r\nWhen `analyze_futures_strategy` returns multiple viable families for the same asset, the agent should rank them using the following table. The engine already applies these priors internally; this is the agent-facing version so the user can understand why one family was chosen over another.\r\n\r\n| Regime input | Preferred family | Avoid family |\r\n| :--- | :--- | :--- |\r\n| Strong trend, ADX 20-25 with pullback into support/resistance | `trend_pullback_long` / `trend_pullback_short` | mean_reversion |\r\n| Strong trend, ADX >= 25 with aligned EMA / MACD | `momentum_long` / `momentum_short` | mean_reversion |\r\n| Range-bound, BB width compressed | `mean_reversion` | momentum families |\r\n| High volatility (ATR > 1.5× 30d avg) | `no_trade` unless funding strongly compensates | momentum families |\r\n| Low liquidity (top-of-book depth < $250k) | `no_trade` | any leveraged family |\r\n| Persistent funding skew with independently verified paired-leg net carry | `funding_arb` (analysis only) | standalone directional execution |\r\n| Conflicting EMA / MACD / RSI signals | `no_trade` | any family |\r\n\r\nDo not override the engine's selection in agent prose. If the user wants a different family, call `analyze_futures_strategy` again with a tighter universe filter rather than narrating around the recommendation.\r\n\r\n### Extended Strategy Families (v2.2 — forward-compatible)\r\nThe engine may return any of the following additional family labels. Treat them as first-class even if your local schema does not yet enumerate them:\r\n* `breakout_continuation` — entry on a confirmed range break with the original range as invalidation\r\n* `vol_compression_breakout` — BB-squeeze release; directional bias from MACD\r\n* `liquidity_hunt_avoidance` — a `no_trade` variant that explicitly cites a likely stop-hunt zone\r\n* `delta_neutral_pair` — a paired-leg recommendation (for use with Wagon Steward spot context)\r\n* `regime_shift_pause` — explicit `no_trade` because a regime shift is mid-flight\r\n\r\nIf an extended family appears in a recommendation, surface it by name and explain its invalidation. Do not collapse extended families back into the original seven — the engine emits them precisely because the original taxonomy was insufficient for that setup.\r\n\r\n## Recommended Workflow\r\n\r\n### Best available opportunities right now\r\n1. Run `scan_funding_rates`.\r\n2. Select up to 3 viable assets from funding, liquidity, or user focus.\r\n3. Run `analyze_futures_strategy` on each candidate.\r\n4. Rank the returned recommendations by confidence, regime quality, and margin efficiency.\r\n5. Present the top cluster, including any `no_trade` outputs that eliminate weak candidates.\r\n\r\nThis skill should prefer a ranked cluster of opportunities over a single deterministic answer whenever the user asks for the best trade right now.\r\n\r\n### New trade entry\r\n1. Run `analyze_futures_strategy`.\r\n2. Run `get_futures_account` if fresh portfolio context is needed.\r\n3. If sizing needs inspection, run `calculate_position_size`.\r\n4. Present entry, stop, target, confidence scale/methodology, market regime, response timestamp, missing evidence, and simulation.\r\n5. Wait for explicit confirmation.\r\n6. Run `execute_perp_order`.\r\n7. Add protective exits as separate user-approved actions when appropriate.\r\n\r\n### Modify, reduce, or flatten\r\n1. Run `get_futures_account`.\r\n2. Cancel stale resting orders with `cancel_perp_order` if needed.\r\n3. Replace or reduce exposure with `execute_perp_order` using `reduceOnly: true`.\r\n\r\n### Performance review / feedback loop\r\n1. Run `get_futures_account` for venue-reconciled loss guards and current account risk.\r\n2. Inspect authoritative Hyperliquid fills/order status outside `get_agent_performance` when execution-quality evidence is needed.\r\n3. Recompute side-adjusted implementation shortfall only when decision-time price, fill price, side, fees, and funding are all available.\r\n4. Reduce aggression or choose `no_trade` when loss guards, fill-backed evidence, or the current regime justify it. Never infer futures outcomes from FarmDash fee-event activity.\r\n\r\n## Trader-Grade Perps Overlay\r\nAdd these checks to every non-reduce-only Hyperliquid order. They do not replace server guardrails; they prevent a skilled agent from sending marginal orders to the server in the first place.\r\n* **Account first:** run `get_futures_account` before new exposure when the agent has any open position, recent drawdown, or unknown margin state.\r\n* **Liquidation discipline:** for open positions, use the venue-reported liquidation price and mark price. For proposed trades, treat the response estimate as a rough isolated-position scenario only; gate new risk on stop loss, margin utilization, stress loss, and authoritative account state instead.\r\n* **Funding-adjusted expectancy:** for `funding_arb`, present current and venue-published predicted funding, carry net of both-leg fees/slippage/borrow/bridge costs, break-even time, basis stress, and a funding-to-zero/flip scenario. Do not invent a flip probability.\r\n* **Order-book fit:** prefer passive or limit execution when urgency is low; use market/IOC only when the user explicitly values speed over price and accepts the slippage budget.\r\n* **Invalidation before entry:** every order must have a stop or a reduce-only unwind rule before asking for a signature.\r\n* **No averaging down by default:** if the trade moves against the user, the next action is reassess / reduce / cancel stale orders, not add size, unless a new `analyze_futures_strategy` call produces an independent setup.\r\n* **Reduce-only rescue path:** when drawdown, liquidation pressure, or funding flip appears, prefer `reduceOnly: true` actions and `cancel_perp_order` before any new exposure.\r\n\r\nPerps action thresholds:\r\n\r\n| Condition | Default action |\r\n| :--- | :--- |\r\n| Confidence < 60/100 | Analysis only. |\r\n| Confidence 60-72/100 | Small size only; emphasize the heuristic and require all other gates. |\r\n| Confidence > 72/100 and regime agrees | Eligible for analyzed sizing inside guardrails; not proof of positive expectancy. |\r\n| Stop loss or authoritative account state missing | No new exposure. |\r\n| Daily drawdown near guardrail | Cancel stale orders and stand down. |\r\n| Required market/account data absent or stale | No non-reduce-only execution. |\r\n\r\n## Composite Workflows (v2.2)\r\n\r\n### W1: \"Best three opportunities right now\"\r\n```text\r\n1. scan_funding_rates                  → shortlist 5 by spread\r\n2. scan_market_conditions × 5          → candle-derived regime, volatility, liquidity proxy, and timestamp per asset\r\n3. analyze_futures_strategy × top 3    → strategy object per asset\r\n4. RANK by (confidence × regime fit) / margin requirement\r\n5. PRESENT a 3-row comparison: asset, family, entry, stop, target, sim PnL, confidence, regime\r\n6. Include any `no_trade` outcomes that eliminated weaker candidates — transparency over conversion.\r\n```\r\n\r\n### W2: \"Liquidation health audit\"\r\n```text\r\n1. get_futures_account                 → every open position with mark + margin\r\n2. scan_market_conditions × each asset → ATR + 24h range\r\n3. DERIVE distance-to-liquidation as a multiple of 1× ATR moves\r\n4. PRESENT positions sorted by liquidation pressure:\r\n     • < 1.0 ATR distance → RED   (recommend reduce or top up margin)\r\n     • 1–2 ATR             → YELLOW (monitor; revisit on next cycle)\r\n     • > 2 ATR             → GREEN  (no action)\r\n5. If RED: surface explicit reduce/top-up options. Do NOT auto-execute.\r\n```\r\n\r\n### W3: \"Funding-rate pair scout\"\r\n\r\n### Funding-Arbitrage Screening Checklist (Additive)\r\nScreen: 1) scan_funding_rates shortlist of current + predicted snapshots; 2) scan_market_conditions for regime, ATR volatility, and liquidity proxy (halt leveraged families if top-of-book depth below $250k or ATR above 1.5x 30d average unless funding strongly compensates); 3) analyze_futures_strategy with coin, agentAddress, optional accountAddress, optional riskMultiplier 0.1-1.0; 4) calculate_position_size with equity, entryPrice, stopPrice for per-leg margin. Present long venue, short venue, expected daily carry gross/net of both-leg fees, slippage, borrow, and bridge, basis stress, flip-to-zero scenario, and invalidation. Stop at analysis; compatibility executor cannot atomically bind both legs.\r\n```text\r\n1. scan_funding_rates                                    → shortlist current/published predicted funding snapshots\r\n2. scan_market_conditions on the underlying asset        → confirm directional risk is acceptable\r\n3. analyze_futures_strategy with `coin`, `agentAddress`, optional conservative `riskMultiplier` → family + invalidation\r\n4. calculate_position_size for the proposed pair         → margin per leg + total\r\n5. PRESENT pair plan: long venue, short venue, expected daily carry, gross/net of all costs, basis stress, funding-to-zero/flip scenario, and invalidation\r\n6. STOP at analysis in the compatibility executor. It cannot atomically bind, execute, and reconcile both venues/legs.\r\n```\r\n\r\n### W4: \"Drawdown response\"\r\n\r\n### Perps Report-Back Template (Additive)\r\nReport: family quoted verbatim, confidence N/100 (not probability), regime with one-line explanation, entry band exact, stop with rationale, target or trailing note, simulation est-liq (non-authoritative), plus/minus 1 ATR PnL, 24h carry, adaptiveRisk reason verbatim, noTradeReason verbatim when present, expiresAt, predictedRate as snapshot only. Join authoritative fills to decision-time mid, fill-weighted price, side, fees, funding; compute side-adjusted shortfall or mark unknown. Flag shortfall over 50 bps on more than 2 fill-backed trades, daily loss near -3%, weekly near -7%, or circuit -15% for human review and reduced riskMultiplier.\r\n```text\r\n1. get_futures_account                  → current drawdown vs guardrails\r\n2. REVIEW authoritative Hyperliquid order statuses and fills when available; get_agent_performance is not a fill feed\r\n3. IF venue-reconciled daily loss <= -2%, weekly <= -5%, or authoritative recent fill evidence is incomplete:\r\n     • Recommend cancel_perp_order on stale resting orders\r\n     • Recommend reduceOnly trims on the largest position\r\n     • Stand down to `analysis only` for the next session\r\n4. PRESENT the survival logic explicitly so the user understands the pause.\r\n```\r\n\r\n### W5: \"Hedge an existing spot position\"\r\n```text\r\n1. (Wagon Steward) get_portfolio_summary  → confirm spot exposure size + asset\r\n2. scan_market_conditions on that asset    → candle-derived regime + ATR + timestamp; oracle status is unavailable\r\n3. analyze_futures_strategy with `coin`, `agentAddress`, optional conservative `riskMultiplier` → hedge structure with invalidation\r\n4. calculate_position_size matched to verified spot delta → candidate hedge notional\r\n5. PRESENT: existing hedge inventory, spot leg, candidate perp leg, expected funding carry, basis risk, and ±1 ATR scenarios\r\n6. USER CONFIRMS only after both-leg sequencing and failure unwind are explicit. Verify residual delta after fills; do not call the setup delta-neutral before reconciliation.\r\n```\r\n\r\n### W6: \"Strategy family rotation\"\r\n```text\r\n1. Obtain an operator-supplied, fill-backed strategy ledger with explicit family labels; get_agent_performance cannot provide one\r\n2. Require a meaningful sample and disclose count, horizon, fees/funding, drawdown, and uncertainty\r\n3. scan_market_conditions on the user's universe → current regime\r\n4. PRESENT a recommendation only when the ledger and regime evidence support it; otherwise choose analysis_only\r\n5. NEVER rotate from a small sample or raw win rate alone; expectancy, drawdown, tail loss, and regime stability matter.\r\n```\r\n\r\n### W7: \"Pre-Order Margin and Stress Check\"\r\n```text\r\n1. get_futures_account                     -> equity, open positions, margin, current liquidation pressure\r\n2. scan_market_conditions on target asset  -> ATR, regime, volatility, and available liquidity proxy; oracle latency is not returned\r\n3. analyze_futures_strategy                -> entry, stop, target, confidence, heuristic scenarios\r\n4. DERIVE stop loss, ±1/±2 ATR P&L, post-trade margin utilization, and concentration\r\n5. IF stop, account state, or required data is absent/stale -> halt; otherwise resize with calculate_position_size when limits are breached\r\n6. PRESENT: entry, stop, stress loss, margin impact, concentration, and the non-authoritative nature of any pre-trade liquidation estimate\r\n7. USER CONFIRMS -> execute_perp_order only if the revised order remains inside guardrails\r\n```\r\n\r\n### W8: \"Funding Carry Break-Even Audit\"\r\n\r\n### Pre-Trade Profit Checklist for Perps (Additive)\r\nBefore any non-reduce-only order, record: coin, direction, analyzed entry band, stop, target, leverage metadata, margin impact, regime, confidence N/100 with scale note (heuristic, not win probability), data timestamp, order type/TIF, reduce-only status, exact limit/trigger, builder f=1 (0.1 bp = 0.001% of filled notional) with recipient, plus 24h and 72h funding carry. Compute breakEvenHours = totalFeesAndSlippageUsd / expectedHourlyFundingUsd. Require confidence >= 60, stop present, account state fresh, and breakEvenHours <= 24 with positive carry under funding-to-zero/flip; else no_trade or monitor.\r\n```text\r\n1. scan_funding_rates                         -> current and venue-published predicted funding snapshots\r\n2. scan_market_conditions                     -> volatility and directional risk\r\n3. analyze_futures_strategy                   -> funding family, confidence, invalidation\r\n4. calculate_position_size                    -> notional and margin\r\n5. DERIVE breakEvenHours = totalFeesAndSlippageUsd / expectedHourlyFundingUsd\r\n6. IF breakEvenHours > 24, carry is non-positive under a funding-to-zero/flip scenario, or paired execution is unavailable -> no_trade / monitor\r\n7. PRESENT: gross carry, net carry, break-even time, funding flip risk, and unwind trigger\r\n```\r\n\r\n### W9: \"Evidence-Backed Execution Audit\"\r\n```text\r\n1. REVIEW authoritative Hyperliquid order statuses and fills; get_agent_performance cannot supply executed trades\r\n2. JOIN fills to a client/operator decision ledger containing decision-time price, side, strategy family, and intent ID\r\n3. COMPARE decision-time mid, fill-weighted price, fees, and funding; mark missing fields unavailable\r\n4. IF side-adjusted implementation shortfall > 50 bps on more than 2 fill-backed trades, recommend reducing riskMultiplier and require human review\r\n5. PRESENT an evidence report with provenance. Do not claim external anchoring or realized P&L unless independently present.\r\n```\r\n\r\n## Combined Agent Use Cases (Spot + Perps)\r\nThis futures skill composes cleanly with the FarmDash Signal Architect tool surface when an agent needs both spot routing and perps exposure.\r\n\r\n### 1) Hedge a farming portfolio\r\nUse when the user is farming points but wants to reduce directional risk.\r\n1. Research farms with `get_trail_heat` / `optimize_portfolio`.\r\n2. Move spot exposure with `get_swap_quote` + `execute_swap` (user-approved).\r\n3. Hedge with `analyze_futures_strategy` + `calculate_position_size`.\r\n4. Execute hedge legs with `execute_perp_order` (user-approved).\r\n\r\n### 2) Funding capture loop (delta-neutral)\r\nUse when the user wants to farm funding without strong directional bets.\r\n1. `scan_funding_rates` daily to shortlist candidates.\r\n2. `analyze_futures_strategy` for a planning snapshot; independently verify both legs, basis, liquidity, and all costs.\r\n3. Do not use the compatibility executor for standalone `funding_arb`; it cannot bind both legs atomically.\r\n4. Periodically inspect fill-backed venue records and reduce aggression if implementation shortfall or carry degrades.\r\n\r\n### 3) \"No-trade\" is the product\r\nUse when the user wants safety first.\r\n* If `analyze_futures_strategy` returns `no_trade`, do not force a setup.\r\n* Offer alternatives: tighter universe, longer timeframe, or spot-only farming actions.\r\n\r\n## Cross-Skill Composition (Hand-off Contract, v2.2)\r\nFutures Strategist is the execution arm for risk and hedging. It composes cleanly with the rest of the FarmDash agent stack via these hand-offs:\r\n\r\n| Counter-skill | Direction | When | What gets passed |\r\n| :--- | :--- | :--- | :--- |\r\n| **FarmDash Trail Intelligence** | TI $\\to$ FS | User has identified a farming protocol and wants to hedge directional exposure | Asset symbol + thesis + horizon |\r\n| **FarmDash Wagon Steward** | WS $\\to$ FS | Sizing a hedge against existing spot exposure | Spot leg asset + size + chain |\r\n| **FarmDash Wagon Steward** | FS $\\to$ WS | After every open / close, to verify portfolio-level state | New margin, exposure, P&L delta |\r\n| **FarmDash Trail Marshal** | TM $\\to$ FS | A named workflow (e.g. `delta_neutral_setup`, `farm_hyperliquid`, `rebalance_portfolio` with hedge context) | The exact tool sequence + confirmation count |\r\n| **FarmDash Signal Architect** | SA $\\to$ FS | User just executed a spot leg and wants to size the matching perp | Spot fill price + size |\r\n\r\n*Important:* Futures Strategist never invokes another skill on its own. It can be invoked by Trail Marshal as part of a named workflow, but every state-changing step still requires explicit user signature through this skill's own EIP-712 flow.\r\n\r\n## Failure Mode Playbook (v2.2)\r\n\r\n### Perps Invalidation and Unwind Addendum (Additive)\r\nStop before signature when: analysis older than 30s (server gate 60s); entry drift over 50 bps from analyzed band; size, side, price, order type, leverage, or reduce-only changed after signing (rebuild intentHash and re-sign); family neutral, no_trade, or funding_arb standalone; confidence below 60; regime disagrees; stop or authoritative account state missing. On partial fill, do not auto-retry; ask top-up or accept. On funding flip, reconcile both legs and run the predefined unwind; canceling one resting order alone is insufficient if either leg filled. Batch cancel_perp_order up to 50 orderIds and verify per-ID success.\r\nThe agent should treat the following situations as first-class outcomes and react in this exact order. Do not improvise around them.\r\n\r\n| Failure mode | Detection | Recommended response |\r\n| :--- | :--- | :--- |\r\n| **Quote staleness** | `analyze_futures_strategy` strategy object is > 30s old at confirmation time | Re-run `analyze_futures_strategy` with the same universe; surface the diff if any field changed |\r\n| **Partial fill** | `execute_perp_order` returns a filled size below the requested size | Do NOT auto-retry; present the realized fill and ask the user whether to top up or accept |\r\n| **Reject for guardrail** | API returns a guardrail trip (max leverage, drawdown halt, etc.) | Quote the specific guardrail; refuse to override even if the user asks; offer analysis only instead |\r\n| **Network / RPC error on Hyperliquid** | Order endpoint times out or returns 5xx | Wait 30s, refresh `get_futures_account`, then re-quote. After 3 consecutive failures, halt the workflow and surface the incident |\r\n| **Funding flip mid-strategy** | Funding sign reverses or net carry falls below zero | Reconcile both legs and present the predefined unwind; canceling one resting order is not sufficient if either leg filled |\r\n| **Liquidation pressure** | Composite Workflow W2 returns RED on any open position | Surface immediately, before any new-trade discussion; recommend reduce / top-up |\r\n| **Strategy returns no_trade** | `analyze_futures_strategy` recommendation = `no_trade` | Quote the reason verbatim; do not propose a different family unless the user changes the universe |\r\n| **Confidence < 60/100** | Strategy object reports a weak heuristic score | Surface as discussion only; the server research gate rejects new risk |\r\n| **Conflict with Trail Heat** | A trade idea on a protocol whose Trail Heat just collapsed | Treat Trail Heat as context, not a price signal; reassess the actual market and protocol thesis |\r\n| **Required price/account evidence unavailable** | Mark, executable book, account, or freshness evidence is absent | Halt non-reduce-only execution; do not claim an oracle check ran |\r\n\r\n## Response Interpretation Reference (v2.2)\r\nWhen `analyze_futures_strategy` returns a strategy object, the agent should preserve and surface the following fields without paraphrasing. Each is load-bearing.\r\n\r\n| Field | What it means | How to surface it |\r\n| :--- | :--- | :--- |\r\n| **family** | Which strategy family the engine selected | Quote it; do not translate (e.g. `momentum_long`, not \"trend trade\") |\r\n| **confidence** | 0–100 heuristic rule score, not a calibrated probability | Show as `N/100`; flag values below 60 and never translate into win probability |\r\n| **regime** | One of `trending` / `ranging` / `high_volatility` / `low_liquidity` | Quote in plain language with a one-sentence explanation |\r\n| **entry** | Price band, not a single tick | Show the band exactly; do not compress to a midpoint |\r\n| **stop** | Hard invalidation level | Pair with the rationale (e.g. \"below 1.0× ATR support\") |\r\n| **target** | Take-profit or trailing target | If null, say \"no fixed target — trailing\" |\r\n| **simulation** | Pre-trade outcome estimates | Surface est-liq price, +/-1 ATR PnL, and 24h funding carry |\r\n| **adaptiveRisk** | Why size or leverage was reduced | Quote the reason verbatim; do not say \"the system suggests…\" |\r\n| **noTradeReason** | When family = `no_trade` | Quote it verbatim; refuse to argue around it |\r\n| **expiresAt** | Strategy freshness | Re-run the call if the user takes too long to confirm |\r\n| **fundingAnalysis.predictedRate** | Venue-published predicted funding snapshot | Label it as a snapshot, not a guaranteed future rate or calibrated flip probability |\r\n\r\n*Anti-pattern:* \"The system thinks ETH looks good for a trade.\" Strategy objects do not have feelings. Use structured language: \"Family `momentum_long`. Heuristic confidence 78/100 (not calibrated). Regime `trending`. Entry 1812–1820. Stop 1788. Simulated P&L on +1 ATR $\\approx$ +$120. Oracle latency unavailable. Research gate expires in 24s.\"\r\n\r\n## Multi-Asset Universe Selection (v2.2)\r\nWhen the user does not specify an asset, the agent picks up to \n\nFile v1.0.28:_meta.json\n\n{\n  \"ownerId\": \"kn753be85erp4cey7vbq9aq9sd826p37\",\n  \"slug\": \"farmdash-futures-strategist\",\n  \"version\": \"1.0.28\",\n  \"publishedAt\": 1791161524937\n}\n\nFile v1.0.28:skill-card.md\n\n## Description:\n\nHelps agents research Hyperliquid perpetual futures, assess funding and position risk, and submit or cancel orders only with fresh user confirmation and a user-signed request.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[parmasanandgarlic](https://clawhub.ai/user/parmasanandgarlic)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nTraders and agents use this skill to scan Hyperliquid perpetual markets, compare strategies, size positions against risk limits, and prepare user-authorized order or cancellation requests.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Perpetual-futures orders and cancellations can cause significant financial loss, especially with leverage and fees.\n\nMitigation: Review each proposed order or cancellation, verify leverage and fees, and require fresh manual confirmation and a user wallet signature before submission. Never share private keys or seed phrases.\n\n## Reference(s):\n\n- [FarmDash Futures Strategist on ClawHub](https://clawhub.ai/parmasanandgarlic/skills/farmdash-futures-strategist)\n- [FarmDash agent documentation](https://www.farmdash.one/agents)\n- [FarmDash Futures Strategist skill manual](https://www.farmdash.one/openclaw-skills/farmdash-futures-strategist/SKILL.md)\n- [FarmDash OpenAPI contract](https://www.farmdash.one/agents/openapi.yaml)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Guidance]\n\n**Output Format:** [Market and risk summaries, structured strategy objects, and proposed signed-order or cancellation details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May return an explicit no-trade recommendation; execution requires a separate current user confirmation and wallet signature.]\n\n## Skill Version(s):\n\n1.0.28 (source: ClawHub release metadata; skill frontmatter: 3.4.0)\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.0.28:SKILL.json\n\n{\n  \"name\": \"FarmDash Futures Strategist\",\n  \"version\": \"3.4.0\",\n  \"description\": \"Hyperliquid perps strategist: market scans, funding rates, position sizing, and user-signed EIP-712 order execution & cancellation with drawdown guardrails.\",\n  \"tags\": [\n    \"defi\",\n    \"hyperliquid\",\n    \"perpetual-futures\",\n    \"perps-trading\",\n    \"leverage-trading\",\n    \"perp-dex\",\n    \"defi-trading\",\n    \"ai-trading-agent\",\n    \"funding-rates\",\n    \"funding-arbitrage\",\n    \"position-sizing\",\n    \"drawdown-control\",\n    \"liquidation-risk\",\n    \"eip-712\",\n    \"zero-custody\",\n    \"openclaw\",\n    \"mcp\",\n    \"risk-management\",\n    \"web3\",\n    \"farmdash\"\n  ],\n  \"author\": \"FarmDash Pioneers (@Parmasanandgarlic)\",\n  \"homepage\": \"https://www.farmdash.one/agents\",\n  \"tools\": [\n    {\n      \"name\": \"scan_funding_rates\",\n      \"description\": \"Scan current and venue-published predicted funding snapshots. Scout receives a top-3 numeric preview; Pioneer/Syndicate or the default-overage x402 one-off receives the full response for that request. Predicted funding is not a calibrated probability or guaranteed future payment. Takes no parameters.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"read\"\n    },\n    {\n      \"name\": \"scan_market_conditions\",\n      \"description\": \"Read candle-derived EMA, RSI, MACD, ADX, ATR, Bollinger Bands, volume ratio, Z-score, market regime, and the response timestamp for one perp asset. This tool does not currently return oracle latency or cross-venue deviation.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"coin\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"coin\"\n        ],\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"read\"\n    },\n    {\n      \"name\": \"get_futures_account\",\n      \"description\": \"Inspect equity, open positions, available margin, venue-reported liquidation prices, and guardrail pressure. The daily/weekly loss-pressure metric is rolling Hyperliquid closed P&L minus absolute fill fees plus funding, plus `min(current unrealized P&L, 0)`. Positive open gains cannot offset realized losses. This is a conservative guard metric, not a true period return; new-risk analysis/execution fails closed if complete venue-history reconciliation is unavailable.\\r\\n\\r\\nSend `agentAddress` plus optional `accountAddress`. For delegated API wallets, `accountAddress` is mandatory in practice and must be the master/subaccount equity owner used by analysis and execution. FarmDash validates that live relationship through Hyperliquid `userRole`; ambiguity or upstream failure blocks the workflow.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"agentAddress\": {\n            \"type\": \"string\",\n            \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n          },\n          \"accountAddress\": {\n            \"type\": \"string\",\n            \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n          }\n        },\n        \"required\": [\n          \"agentAddress\"\n        ],\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"read\"\n    },\n    {\n      \"name\": \"analyze_futures_strategy\",\n      \"description\": \"Primary research tool. Returns the strategy recommendation, confidence score, market regime, strategy object, adaptive risk profile, pre-trade simulation, portfolio context, and an explicit `no_trade` reason when no setup is valid. accountAddress optionally pins the equity-owner account for delegated-wallet flows (master/subaccount/vault); omit only for a direct signer.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"coin\": {\n            \"type\": \"string\"\n          },\n          \"agentAddress\": {\n            \"type\": \"string\",\n            \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n          },\n          \"accountAddress\": {\n            \"type\": \"string\",\n            \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n          },\n          \"riskMultiplier\": {\n            \"type\": \"number\",\n            \"minimum\": 0.1,\n            \"maximum\": 1\n          }\n        },\n        \"required\": [\n          \"coin\",\n          \"agentAddress\"\n        ],\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"read\"\n    },\n    {\n      \"name\": \"calculate_position_size\",\n      \"description\": \"Inspect sizing math separately when the user wants to validate risk and margin.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"equity\": {\n            \"type\": \"number\",\n            \"exclusiveMinimum\": 0\n          },\n          \"entryPrice\": {\n            \"type\": \"number\",\n            \"exclusiveMinimum\": 0\n          },\n          \"stopPrice\": {\n            \"type\": \"number\",\n            \"exclusiveMinimum\": 0\n          },\n          \"riskPercent\": {\n            \"type\": \"number\",\n            \"exclusiveMinimum\": 0\n          },\n          \"targetPrice\": {\n            \"type\": \"number\",\n            \"exclusiveMinimum\": 0\n          },\n          \"riskMultiplier\": {\n            \"type\": \"number\",\n            \"minimum\": 0.1,\n            \"maximum\": 1\n          }\n        },\n        \"required\": [\n          \"equity\",\n          \"entryPrice\",\n          \"stopPrice\"\n        ],\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"read\"\n    },\n    {\n      \"name\": \"execute_perp_order\",\n      \"description\": \"State-changing execution: Forwards a user-signed EIP-712 order to Hyperliquid's exchange API. Execute only after fresh research, parameter binding, exact builder-fee disclosure, local signing, and immediate explicit manual user confirmation. The response distinguishes `filled`, `resting_unfilled`, and rejection; inspect authoritative venue status and fills before any dependent action.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"agentAddress\": {\n            \"type\": \"string\",\n            \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n          },\n          \"accountAddress\": {\n            \"type\": \"string\",\n            \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n          },\n          \"coin\": {\n            \"type\": \"string\"\n          },\n          \"isBuy\": {\n            \"type\": \"boolean\"\n          },\n          \"size\": {\n            \"type\": \"string\"\n          },\n          \"price\": {\n            \"type\": \"string\"\n          },\n          \"orderType\": {\n            \"type\": \"string\",\n            \"enum\": [\n              \"limit_gtc\",\n              \"limit_ioc\",\n              \"limit_alo\",\n              \"market_ioc\",\n              \"stop_loss\",\n              \"take_profit\"\n            ]\n          },\n          \"signature\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"r\": {\n                \"type\": \"string\",\n                \"pattern\": \"^0x[a-fA-F0-9]{64}$\"\n              },\n              \"s\": {\n                \"type\": \"string\",\n                \"pattern\": \"^0x[a-fA-F0-9]{64}$\"\n              },\n              \"v\": {\n                \"type\": \"integer\"\n              }\n            },\n            \"required\": [\n              \"r\",\n              \"s\",\n              \"v\"\n            ],\n            \"additionalProperties\": false\n          },\n          \"reduceOnly\": {\n            \"type\": \"boolean\"\n          },\n          \"leverage\": {\n            \"type\": \"number\",\n            \"exclusiveMinimum\": 0\n          },\n          \"signedAction\": {\n            \"description\": \"If supplied, must include the signed FarmDash builder term { b: treasury, f: 1 }; f is tenths of a basis point.\"\n          },\n          \"nonce\": {\n            \"type\": \"integer\",\n            \"exclusiveMinimum\": 0\n          },\n          \"expiresAt\": {\n            \"type\": \"integer\",\n            \"exclusiveMinimum\": 0\n          },\n          \"intentHash\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"agentAddress\",\n          \"coin\",\n          \"isBuy\",\n          \"size\",\n          \"price\",\n          \"orderType\",\n          \"signature\",\n          \"nonce\",\n          \"expiresAt\",\n          \"intentHash\"\n        ],\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"execution\"\n    },\n    {\n      \"name\": \"cancel_perp_order\",\n      \"description\": \"State-changing action: Cancel open Hyperliquid orders using a pre-signed EIP-712 cancellation payload. Requires immediate, explicit manual confirmation before invoking. Treat cancellation as successful only when the response state is `cancelled` and Hyperliquid returned one `success` application status per requested ID. `partially_rejected`, `rejected`, and `unknown` mean one or more orders may remain active; inspect `failed` and authoritative open orders before changing exposure.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"agentAddress\": {\n            \"type\": \"string\",\n            \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n          },\n          \"accountAddress\": {\n            \"type\": \"string\",\n            \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n          },\n          \"coin\": {\n            \"type\": \"string\"\n          },\n          \"orderIds\": {\n            \"type\": \"array\",\n            \"items\": {\n              \"type\": \"integer\",\n              \"exclusiveMinimum\": 0\n            },\n            \"minItems\": 1,\n            \"maxItems\": 50\n          },\n          \"signature\": {\n            \"type\": \"object\",\n            \"properties\": {\n              \"r\": {\n                \"type\": \"string\",\n                \"pattern\": \"^0x[a-fA-F0-9]{64}$\"\n              },\n              \"s\": {\n                \"type\": \"string\",\n                \"pattern\": \"^0x[a-fA-F0-9]{64}$\"\n              },\n              \"v\": {\n                \"type\": \"integer\"\n              }\n            },\n            \"required\": [\n              \"r\",\n              \"s\",\n              \"v\"\n            ],\n            \"additionalProperties\": false\n          },\n          \"signedAction\": {},\n          \"nonce\": {\n            \"type\": \"integer\",\n            \"exclusiveMinimum\": 0\n          },\n          \"expiresAt\": {\n            \"type\": \"integer\",\n            \"exclusiveMinimum\": 0\n          },\n          \"intentHash\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"agentAddress\",\n          \"coin\",\n          \"orderIds\",\n          \"signature\",\n          \"nonce\",\n          \"expiresAt\",\n          \"intentHash\"\n        ],\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"execution\"\n    },\n    {\n      \"name\": \"get_agent_performance\",\n      \"description\": \"Use only for FarmDash fee-event activity, fees, protocol diversity, and reputation. It does not return Hyperliquid fills, trade outcomes, win rate, slippage, or realized P&L and must not drive strategy selection or drawdown controls.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"agentAddress\": {\n            \"type\": \"string\",\n            \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n          }\n        },\n        \"required\": [\n          \"agentAddress\"\n        ],\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"read\"\n    }\n  ],\n  \"operatingRules\": [],\n  \"requiredEnv\": {\n    \"FARMDASH_API_KEY\": {\n      \"description\": \"Optional Bearer token for Pioneer or Syndicate tier. Scout mode works with no key or with the public fd_scout_free token. Never share private keys, seed phrases, or mnemonics with this skill — perps execution uses EIP-712 local signing only via the user's Hyperliquid API wallet.\",\n      \"required\": false\n    }\n  },\n  \"links\": {\n    \"website\": \"https://www.farmdash.one/\",\n    \"agentHub\": \"https://www.farmdash.one/agents\",\n    \"canonicalSkill\": \"https://www.farmdash.one/openclaw-skills/farmdash-futures-strategist/SKILL.md\",\n    \"documentation\": \"https://www.farmdash.one/docs\",\n    \"status\": \"https://www.farmdash.one/api/v1/agent/status\",\n    \"openApi\": \"https://www.farmdash.one/agents/openapi.yaml\",\n    \"mcpDiscovery\": \"https://www.farmdash.one/.well-known/mcp.json\",\n    \"fees\": \"https://www.farmdash.one/fees\",\n    \"security\": \"https://www.farmdash.one/security\"\n  }\n}\n\nFile v1.0.28:openapi.yaml\n\nopenapi: 3.0.3\r\ninfo:\r\n  title: FarmDash Futures Strategist API\r\n  version: 2.2.0\r\n  description: |\r\n    WARNING: Running trade executions and cancellations places real perpetual futures trades and alters active market exposure, carrying significant risk of financial loss. Immediate, explicit manual end-user confirmation and consent is strictly required immediately before placing any execution or cancellation request. Do not allow autonomous agents to auto-run trade execution or cancellation without manual user approval.\r\n\r\n    REST API for payment-enabled AI agents to research, analyze, and prepare user-approved\r\n    execution of perpetual futures trades on Hyperliquid as part of FarmDash DeFi discovery and onchain services. The Futures Strategist is an\r\n    adaptive execution engine: it returns structured strategy objects,\r\n    confidence, market regime, adaptive risk, portfolio context, pre-trade\r\n    simulation, and explicit no-trade outcomes before any order is placed.\r\n\r\n    ## Authentication\r\n    - **Primary optional credential**: `Authorization: Bearer <FARMDASH_API_KEY>`.\r\n    - **Scout (Free)**: Omit the bearer token. Limited analysis and execution quota (30 requests per 24 hours, server-enforced). The API's returned entitlement and rate-limit state is authoritative; prose quotas here are descriptive, not normative.\r\n    - **Pioneer**: Use a Pioneer-tier `FARMDASH_API_KEY`. Full eligible analysis/sizing and signed execution capacity up to 1,500 requests / day.\r\n    - **Syndicate**: Use a Syndicate-tier `FARMDASH_API_KEY`. Full eligible analysis/sizing and signed execution capacity up to 50,000 requests / day.\r\n    - **Execution auth**: `execute-order` and `cancel-order` require a fresh EIP-712 signature from the user's Hyperliquid API wallet on every request.\r\n    - **Signer binding**: FarmDash recovers the signer from the exact Hyperliquid L1 action, nonce, expiry, environment, and any subaccount/vault routing address and rejects a mismatch with `agentAddress`.\r\n    - **Delegation binding**: when `accountAddress` differs, Hyperliquid `userRole` must report `agentAddress` as its active API wallet; if the owner is a subaccount or vault, that address is included as `vaultAddress` in both the signature hash and exchange request. Ambiguity fails closed.\r\n    - **Important**: The bearer token gates FarmDash tier access and rate limits only. It never replaces the per-request EIP-712 signature and does not let FarmDash sign on the user's behalf.\r\n\r\n    ## Hard Guardrails (Server-Enforced)\r\n    - Max leverage: 5x\r\n    - Max risk per trade: 2% of equity before adaptive reductions\r\n    - Daily loss limit: -3% -> trading halted 24h\r\n    - Research required before execution (analyze-strategy within 60 seconds)\r\n\r\n    ## Intent Hardening\r\n    `execute-order` requires `nonce`, `expiresAt`, and `intentHash` for\r\n    deterministic, auditable order intents. `cancel-order` also requires them.\r\n\r\n    ## Dust Storm Protocol\r\n    Upstream failures return `ok:false` with typed degraded state and\r\n    `dust_storm` warnings. Agents should retry only after inspecting the\r\n    degraded state and any stale-data age.\r\n  contact:\r\n    name: FarmDash Engineering\r\n    url: https://www.farmdash.one/agents\r\n  license:\r\n    name: MIT\r\n\r\nservers:\r\n  - url: https://www.farmdash.one/api\r\n    description: Production\r\n\r\npaths:\r\n  /v1/agent/futures/scan-funding:\r\n    get:\r\n      operationId: scanFundingRates\r\n      summary: Scan all Hyperliquid funding rates for arb opportunities\r\n      description: |\r\n        Returns current and predicted funding rates across all Hyperliquid perp\r\n        markets. Cross-references with Binance and Bybit to identify arbitrage\r\n        opportunities where HL funding diverges from other venues.\r\n        Scout receives the top 3 opportunities with ordinary numeric fields. After the Scout quota, the `default_overage` x402 one-off ($0.01 USDC by default) returns Pioneer-depth data for that request.\r\n      tags: [Research]\r\n      security:\r\n        - bearerAuth: []\r\n        - {}\r\n      parameters:\r\n        - $ref: '#/components/parameters/X-ClawHub-Skill'\r\n      responses:\r\n        '200':\r\n          description: Funding rate scan results\r\n          content:\r\n            application/json:\r\n              schema:\r\n                type: object\r\n                properties:\r\n                  ok:\r\n                    type: boolean\r\n                  arbOpportunities:\r\n                    type: array\r\n                    items:\r\n                      $ref: '#/components/schemas/FundingAnalysis'\r\n                  highFunding:\r\n                    type: array\r\n                    items:\r\n                      $ref: '#/components/schemas/FundingAnalysis'\r\n                  totalScanned:\r\n                    type: integer\r\n                  warnings:\r\n                    type: array\r\n                    items:\r\n                      $ref: '#/components/schemas/Warning'\r\n        '429':\r\n          description: Rate limit exceeded\r\n\r\n  /v1/agent/futures/market-conditions:\r\n    get:\r\n      operationId: getMarketConditions\r\n      summary: Get technical indicators for an asset\r\n      description: |\r\n        Returns EMA-8/34, RSI-14, MACD(12,26,9), ATR-14, Bollinger Bands(20,2),\r\n        ADX-14, volume ratio, and Z-score for a given asset using 4h candles.\r\n        Includes a strategy hint based on indicator confluence.\r\n      tags: [Research]\r\n      security:\r\n        - bearerAuth: []\r\n        - {}\r\n      parameters:\r\n        - $ref: '#/components/parameters/X-ClawHub-Skill'\r\n        - name: coin\r\n          in: query\r\n          required: true\r\n          schema:\r\n            type: string\r\n          description: Asset symbol (e.g., ETH, BTC, SOL, HYPE)\r\n      responses:\r\n        '200':\r\n          description: Technical indicators\r\n          content:\r\n            application/json:\r\n              schema:\r\n                type: object\r\n                properties:\r\n                  ok:\r\n                    type: boolean\r\n                  coin:\r\n                    type: string\r\n                  indicators:\r\n                    $ref: '#/components/schemas/TechnicalIndicators'\r\n                  strategyHint:\r\n                    type: string\r\n                    enum: [momentum_long, momentum_short, trend_pullback_long, trend_pullback_short, mean_reversion, no_trade]\r\n\r\n  /v1/agent/futures/account-state:\r\n    get:\r\n      operationId: getAccountState\r\n      summary: Get agent's Hyperliquid positions and risk state\r\n      description: |\r\n        Returns the agent's current positions, margin summary, equity,\r\n        unrealized PnL, liquidation prices, and risk management state.\r\n        Daily/weekly values are conservative loss-pressure metrics: rolling\r\n        closed PnL minus absolute fill fees plus funding and negative current\r\n        unrealized PnL only. Positive open gains cannot mask a realized-loss\r\n        breach; these fields are not full period-return calculations.\r\n        `agentAddress` identifies the API signer/FarmDash caller. For a\r\n        delegated API wallet, `accountAddress` must identify the Hyperliquid\r\n        master or subaccount that actually owns the equity and positions. Omit\r\n        `accountAddress` only when the signer directly owns the account. It does not require a private key or seed phrase. The\r\n        signer/owner relationship is verified against Hyperliquid `userRole`.\r\n      tags: [Account]\r\n      security:\r\n        - bearerAuth: []\r\n        - {}\r\n      parameters:\r\n        - $ref: '#/components/parameters/X-ClawHub-Skill'\r\n        - name: agentAddress\r\n          in: query\r\n          required: true\r\n          schema:\r\n            type: string\r\n            pattern: '^0x[a-fA-F0-9]{40}$'\r\n          description: EIP-712/API-wallet signer and FarmDash caller identity\r\n        - name: accountAddress\r\n          in: query\r\n          required: false\r\n          schema:\r\n            type: string\r\n            pattern: '^0x[a-fA-F0-9]{40}$'\r\n          description: Hyperliquid master/subaccount that owns the equity. Defaults to agentAddress only for a direct signer.\r\n      responses:\r\n        '200':\r\n          description: Account state with risk info\r\n          content:\r\n            application/json:\r\n              schema:\r\n                type: object\r\n                properties:\r\n                  ok:\r\n                    type: boolean\r\n                  account:\r\n                    $ref: '#/components/schemas/AccountSummary'\r\n                  positions:\r\n                    type: array\r\n                    items:\r\n                      $ref: '#/components/schemas/Position'\r\n                  risk:\r\n                    $ref: '#/components/schemas/RiskState'\r\n                  guardrails:\r\n                    $ref: '#/components/schemas/Guardrails'\r\n\r\n  /v1/agent/futures/analyze-strategy:\r\n    post:\r\n      operationId: analyzeStrategy\r\n      summary: Full research pipeline with strategy recommendation\r\n      description: |\r\n        Runs the complete research pipeline: funding rates, technical indicators,\r\n        order book liquidity, Trail Heat cross-reference, and risk budget.\r\n        Returns a single actionable strategy recommendation with position sizing.\r\n        Requires Pioneer/Syndicate capacity or an eligible `futures_strategy` x402 one-off ($7.99 USDC by default). The bearer token or payment controls API capacity only; it does not authorize trade execution.\r\n        For a delegated API wallet, set `accountAddress` to the master/subaccount\r\n        whose equity and venue history must determine size and loss guards.\r\n      tags: [Strategy]\r\n      security:\r\n        - bearerAuth: []\r\n        - {}\r\n      requestBody:\r\n        required: true\r\n        content:\r\n          application/json:\r\n            schema:\r\n              type: object\r\n              required: [coin, agentAddress]\r\n              properties:\r\n                coin:\r\n                  type: string\r\n                  description: Asset symbol (e.g., ETH, BTC, SOL)\r\n                agentAddress:\r\n                  type: string\r\n                  pattern: '^0x[a-fA-F0-9]{40}$'\r\n                  description: EIP-712/API-wallet signer and FarmDash caller identity\r\n                accountAddress:\r\n                  type: string\r\n                  pattern: '^0x[a-fA-F0-9]{40}$'\r\n                  description: Hyperliquid master/subaccount that owns the equity. Defaults to agentAddress only for a direct signer.\r\n                riskMultiplier:\r\n                  type: number\r\n                  description: Optional flexibility modifier for risk tolerance. 1.0 is default (2% max). 0.5 is conservative (1% max). Server caps at 1.0.\r\n      parameters:\r\n        - $ref: '#/components/parameters/X-ClawHub-Skill'\r\n      responses:\r\n        '200':\r\n          description: Strategy recommendation\r\n          content:\r\n            application/json:\r\n              schema:\r\n                type: object\r\n                properties:\r\n                  ok:\r\n                    type: boolean\r\n                  recommendation:\r\n                    $ref: '#/components/schemas/StrategyRecommendation'\r\n                  account:\r\n                    $ref: '#/components/schemas/AccountSummary'\r\n                  guardrails:\r\n                    $ref: '#/components/schemas/Guardrails'\r\n                  researchGate:\r\n                    type: object\r\n                    description: Sixty-second research gate binding market, side, maximum size, entry drift, leverage metadata, and stop-derived risk.\r\n                    properties:\r\n                      scope:\r\n                        type: string\r\n                        enum: [agent_market_direction_size_entry_leverage_risk]\r\n                      agentAddress:\r\n                        type: string\r\n                      accountAddress:\r\n                        type: string\r\n                        description: Equity owner bound into sizing and execution authorization.\r\n                      coin:\r\n                        type: string\r\n                      direction:\r\n                        type: string\r\n                        enum: [long, short, neutral, unknown]\r\n                      confidence:\r\n                        type: number\r\n                        nullable: true\r\n                        description: Heuristic score on a 0-100 scale; not a calibrated probability.\r\n                      confidenceScale:\r\n                        type: string\r\n                      strategy:\r\n                        type: string\r\n                      entry:\r\n                        type: number\r\n                        nullable: true\r\n                      stopLoss:\r\n                        type: number\r\n                        nullable: true\r\n                      maxPositionSize:\r\n                        type: number\r\n                        nullable: true\r\n                      maxLeverage:\r\n                        type: number\r\n                        nullable: true\r\n                      riskPercent:\r\n                        type: number\r\n                        nullable: true\r\n                      executionReady:\r\n                        type: boolean\r\n                      maxEntryDeviationBps:\r\n                        type: number\r\n                      recommendationHash:\r\n                        type: string\r\n                      expiresAt:\r\n                        type: integer\r\n                      requiredForExecution:\r\n                        type: boolean\r\n        '402':\r\n          description: Scout quota exhausted; a paid tier or accepted x402 overage is required\r\n\r\n  /v1/agent/futures/position-sizing:\r\n    post:\r\n      operationId: calculatePositionSize\r\n      summary: Position size calculator with guardrail enforcement\r\n      description: |\r\n        Given entry price, stop price, account equity, and risk percentage,\r\n        returns the exact position size, leverage, and margin required.\r\n        All guardrails enforced server-side (max leverage 5x, max risk 2%).\r\n        Requires Pioneer/Syndicate capacity or an eligible `futures_strategy` x402 one-off ($7.99 USDC by default).\r\n      tags: [Strategy]\r\n      security:\r\n        - bearerAuth: []\r\n      requestBody:\r\n        required: true\r\n        content:\r\n          application/json:\r\n            schema:\r\n              type: object\r\n              required: [equity, entryPrice, stopPrice]\r\n              properties:\r\n                equity:\r\n                  type: number\r\n                  description: Account equity in USD\r\n                entryPrice:\r\n                  type: number\r\n                  description: Planned entry price\r\n                stopPrice:\r\n                  type: number\r\n                  description: Stop-loss price\r\n                riskPercent:\r\n                  type: number\r\n                  description: Risk per trade as decimal (default 0.02 = 2%, server caps at 0.02)\r\n                targetPrice:\r\n                  type: number\r\n                  description: Take-profit price (for R:R calculation)\r\n                riskMultiplier:\r\n                  type: number\r\n                  description: Optional flexibility modifier for risk tolerance. 1.0 is default (2% max). 0.5 is conservative (1% max). Server caps at 1.0.\r\n      parameters:\r\n        - $ref: '#/components/parameters/X-ClawHub-Skill'\r\n      responses:\r\n        '200':\r\n          description: Position sizing result\r\n          content:\r\n            application/json:\r\n              schema:\r\n                type: object\r\n                properties:\r\n                  ok:\r\n                    type: boolean\r\n                  sizing:\r\n                    $ref: '#/components/schemas/PositionSizing'\r\n                  guardrails:\r\n                    $ref: '#/components/schemas/Guardrails'\r\n        '402':\r\n          description: Pioneer tier required\r\n\r\n  /v1/agent/futures/execute-order:\r\n    post:\r\n      operationId: executeOrder\r\n      summary: Execute a pre-signed order on Hyperliquid\r\n      description: |\r\n        Forwards a pre-signed EIP-712 order to Hyperliquid's exchange API.\r\n        Requires an execution-ready analyze-strategy call within 60 seconds. The\r\n        gate binds market, side, maximum size, 50 bps entry drift, maximum\r\n        analyzed leverage metadata, stop-derived risk, and the account whose\r\n        equity funded the sizing decision. `funding_arb` remains\r\n        analysis-only because this endpoint cannot atomically bind both legs.\r\n        Scout capacity is available inside the shared 30 requests / 24h quota; Pioneer is capped at 1,500/day and Syndicate at 50,000/day. After the Scout quota, the default x402 overage is $0.01 USDC for one additional API call. Commercial capacity never supplies venue authority: every request\r\n        must also include a fresh EIP-712 signature from the user's\r\n        Hyperliquid API wallet. All risk\r\n        guardrails enforced server-side before forwarding. `nonce`, `expiresAt`,\r\n        and `intentHash` are required for request-scoped expiry and auditability.\r\n        Venue nonce authority is `network + signer + nonce` across account and vault\r\n        contexts. Durable replay control fails closed before submission.\r\n        `expiresAt` is forwarded as Hyperliquid `expiresAfter` and must be\r\n        incorporated into the venue signature. The signed order action contains\r\n        the FarmDash builder term `f=1`, meaning 0.1 basis point (0.001%) of\r\n        filled notional—not 1 bp. The user must approve that builder fee on\r\n        Hyperliquid before execution. Rejected/resting/unfilled notional is not\r\n        reported as fee-bearing volume. FarmDash recovers the signer from the\r\n        exact signed L1 payload and rejects any mismatch with `agentAddress`.\r\n        When the verified owner is a Hyperliquid subaccount or vault,\r\n        `accountAddress` is also incorporated as the signed and submitted\r\n        `vaultAddress`; it cannot be changed after signing.\r\n        It also preflights the account owner's Hyperliquid `maxBuilderFee` and\r\n        blocks when the approved maximum is below `f=1`; only the main account\r\n        wallet, not an API wallet, can sign that approval action.\r\n        WARNING: This endpoint initiates real perpetual futures trades on Hyperliquid which can lead to substantial financial loss. You must explicitly present all trade details, fees, and leverage levels to the user, and obtain their manual confirmation prior to calling this endpoint. Never automate or auto-run this endpoint.\r\n\r\n      tags: [Execution]\r\n      security:\r\n        - bearerAuth: []\r\n        - {}\r\n      requestBody:\r\n        required: true\r\n        content:\r\n          application/json:\r\n            schema:\r\n              type: object\r\n              required: [agentAddress, coin, isBuy, size, price, orderType, nonce, expiresAt, intentHash, signature]\r\n              properties:\r\n                agentAddress:\r\n                  type: string\r\n                  pattern: '^0x[a-fA-F0-9]{40}$'\r\n                  description: EIP-712/API-wallet signer and FarmDash caller identity\r\n                accountAddress:\r\n                  type: string\r\n                  pattern: '^0x[a-fA-F0-9]{40}$'\r\n                  description: Hyperliquid master/subaccount whose equity was used during analysis. Defaults to agentAddress only for a direct signer.\r\n                coin:\r\n                  type: string\r\n                isBuy:\r\n                  type: boolean\r\n                size:\r\n                  type: string\r\n                  description: Position size in asset units\r\n                price:\r\n                  type: string\r\n                  description: Limit or trigger price\r\n                orderType:\r\n                  type: string\r\n                  enum: [limit_gtc, limit_ioc, limit_alo, market_ioc, stop_loss, take_profit]\r\n                  description: '`market_ioc` is a signed, price-protected IOC limit order with a live 100 bps adverse-price cap, never an unbounded market order. stop_loss and take_profit require reduceOnly=true.'\r\n                reduceOnly:\r\n                  type: boolean\r\n                  default: false\r\n                leverage:\r\n                  oneOf:\r\n                    - type: number\r\n                    - type: string\r\n                  description: Max 5x FarmDash intent/risk metadata. This endpoint does not submit Hyperliquid's separate updateLeverage action; verify actual venue leverage independently.\r\n                signature:\r\n                  type: object\r\n                  description: Fresh EIP-712 signature from the user's Hyperliquid API wallet. Required on every request; bearer token alone is insufficient.\r\n                  properties:\r\n                    r:\r\n                      type: string\r\n                    s:\r\n                      type: string\r\n                    v:\r\n                      type: integer\r\n                nonce:\r\n                  type: integer\r\n                expiresAt:\r\n                  type: integer\r\n                  description: Required unix timestamp in milliseconds. Forwarded as venue `expiresAfter`; include it when generating the Hyperliquid signature.\r\n                intentHash:\r\n                  type: string\r\n                  description: Required FarmDash-side order intent hash for payload auditability.\r\n                signedAction:\r\n                  type: object\r\n                  description: 'Pre-built Hyperliquid exchange action (optional, built server-side if omitted). If provided, it must match all request fields and contain signed `builder: { b: FarmDash treasury, f: 1 }`; Hyperliquid f units are tenths of a basis point.'\r\n      parameters:\r\n        - $ref: '#/components/parameters/X-ClawHub-Skill'\r\n      responses:\r\n        '200':\r\n          description: Order execution result\r\n          content:\r\n            application/json:\r\n              schema:\r\n                type: object\r\n                properties:\r\n                  ok:\r\n                    type: boolean\r\n                  result:\r\n                    type: object\r\n                  order:\r\n                    type: object\r\n                    description: Includes exact builder compensation terms and states that leverage is risk metadata only.\r\n                  state:\r\n                    type: string\r\n                    enum: [fully_filled, partially_filled, zero_fill, resting_unfilled, rejected, unknown]\r\n                  intentHash:\r\n                    type: string\r\n                  expiresAt:\r\n                    type: integer\r\n                  timestamp:\r\n                    type: integer\r\n        '400':\r\n          description: Risk check failed or research not performed\r\n        '402':\r\n          description: Scout tier quota exceeded (upgrade or pay x402 overage)\r\n\r\n  /v1/agent/futures/cancel-order:\r\n    post:\r\n      operationId: cancelOrder\r\n      summary: Cancel one or more open Hyperliquid orders\r\n      description: |\r\n        Cancels one or more open Hyperliquid orders using a pre-signed EIP-712\r\n        cancellation payload. Supports batch cancellation of up to 50 order IDs.\r\n        Scout capacity is available inside the shared 30 requests / 24h quota; Pioneer is capped at 1,500/day and Syndicate at 50,000/day. After the Scout quota, the default x402 overage is $0.01 USDC for one additional API call. Commercial capacity never supplies venue authority: every\r\n        cancellation request must include a fresh EIP-712 signature from the\r\n        user's Hyperliquid API wallet. For delegated signing, `accountAddress`\r\n        identifies the venue-verified equity owner. A subaccount/vault owner is\r\n        incorporated as `vaultAddress` in both the signature hash and exchange\r\n        request. FarmDash recovers the exact signer before submission. Required\r\n        `expiresAt` is forwarded as\r\n        Hyperliquid `expiresAfter`; required `intentHash` binds the FarmDash\r\n        request for auditability. HTTP 202 is returned only when Hyperliquid\r\n        supplies one explicit `success` application status per requested order;\r\n        this is `accepted` application acknowledgement, not final venue cancellation.\r\n        Mixed or total application errors are rejections. Reconcile every requested\r\n        ID through `/api/v1/agent/futures/reconcile-order` before dependent action.\r\n        Venue nonce authority is `network + signer + nonce` across account and vault\r\n        contexts. Durable replay control fails closed before submission.\r\n        WARNING: This endpoint alters active market state and cancels protective orders. Ensure the user has explicitly confirmed the action and understands the resulting exposure change before calling this endpoint. Never automate or auto-run this endpoint.\r\n\r\n      tags: [Execution]\r\n      security:\r\n        - bearerAuth: []\r\n        - {}\r\n      requestBody:\r\n        required: true\r\n        content:\r\n          application/json:\r\n            schema:\r\n              type: object\r\n              required: [agentAddress, coin, orderIds, nonce, expiresAt, intentHash, signature]\r\n              properties:\r\n                agentAddress:\r\n                  type: string\r\n                  pattern: '^0x[a-fA-F0-9]{40}$'\r\n                  description: EIP-712/API-wallet signer\r\n                accountAddress:\r\n                  type: string\r\n                  pattern: '^0x[a-fA-F0-9]{40}$'\r\n                  description: Hyperliquid master/subaccount/vault that owns the orders. Required in practice for delegated signing; defaults to agentAddress only for a direct signer.\r\n                coin:\r\n                  type: string\r\n                orderIds:\r\n                  type: array\r\n                  minItems: 1\r\n                  maxItems: 50\r\n                  items:\r\n                    type: integer\r\n                signature:\r\n                  type: object\r\n                  description: Fresh EIP-712 signature for the cancel action. Required on every request; bearer token alone is insufficient.\r\n                  properties:\r\n                    r:\r\n                      type: string\r\n                    s:\r\n                      type: string\r\n                    v:\r\n                      type: integer\r\n                nonce:\r\n                  type: integer\r\n                expiresAt:\r\n                  type: integer\r\n                  description: Required unix timestamp in milliseconds. Forwarded as venue `expiresAfter`; include it when generating the signature.\r\n                intentHash:\r\n                  type: string\r\n                  description: Required FarmDash-side intent hash for payload auditability.\r\n                signedAction:\r\n                  type: object\r\n                  description: Pre-built Hyperliquid cancel action (optional). If provided, it must match the request fields.\r\n      parameters:\r\n        - $ref: '#/components/parameters/X-ClawHub-Skill'\r\n      responses:\r\n        '202':\r\n          description: Cancellation application acknowledgement; final venue cancellation requires reconciliation\r\n          content:\r\n            application/json:\r\n              schema:\r\n                type: object\r\n                properties:\r\n                  ok:\r\n                    type: boolean\r\n                  state:\r\n                    type: string\r\n                    enum: [accepted, rejected, partially_rejected, unknown]\r\n                  result:\r\n                    type: object\r\n                  failed:\r\n                    type: array\r\n                    items:\r\n                      type: object\r\n                      properties:\r\n                        orderId:\r\n                          type: integer\r\n                        status:\r\n                          type: object\r\n                  cancellation:\r\n                    type: object\r\n                  reconciliation:\r\n                    type: object\r\n                    description: Required handoff for final venue cancellation evidence.\r\n                    properties:\r\n                      required: { type: boolean, enum: [true] }\r\n                      endpoint: { type: string, enum: ['/api/v1/agent/futures/reconcile-order'] }\r\n                      orderIds:\r\n                        type: array\r\n                        items: { type: integer }\r\n                  intentHash:\r\n                    type: string\r\n                  expiresAt:\r\n                    type: integer\r\n                  timestamp:\r\n                    type: integer\r\n        '402':\r\n          description: Scout tier quota exceeded (upgrade or pay x402 overage)\r\n        '422':\r\n          description: Hyperliquid rejected all or some cancellation application statuses\r\n        '502':\r\n          description: Upstream failure or incomplete/malformed venue application statuses; cancellation state is unknown\r\n\r\ncomponents:\r\n  parameters:\r\n    X-ClawHub-Skill:\r\n      name: X-ClawHub-Skill\r\n      in: header\r\n      required: false\r\n      schema:\r\n        type: string\r\n        pattern: '^[a-zA-Z0-9-]{1,128}$'\r\n        example: farmdash-futures-strategist\r\n      description: 'ClawHub skill attribution. An installed FarmDash skill sends its canonical skill slug (e.g. farmdash-futures-strategist) on every FarmDash API request so anonymous Scout usage can be attributed to the skill that drove it. Optional and analytics-only: absence never blocks a request, and malformed values are ignored. This is a skill identity, never a wallet address, API key, or user ID.'\r\n\r\n  securitySchemes:\r\n    bearerAuth:\r\n      type: http\r\n      scheme: bearer\r\n      bearerFormat: FARMDASH_API_KEY\r\n      description: Optional `FARMDASH_API_KEY` bearer token. Omit for Scout-tier endpoints. Shared quotas are Scout 30 requests / 24h, Pioneer 1,500/day, and Syndicate 50,000/day. Eligible x402 one-offs can buy API capacity for specific routes. A bearer token or payment never replaces the required EIP-712 execution signature.\r\n\r\n  schemas:\r\n    FundingAnalysis:\r\n      type: object\r\n      properties:\r\n        coin:\r\n          type: string\r\n        fundingRate:\r\n          type: number\r\n          description: Current 1h funding rate\r\n        annualizedRate:\r\n          type: number\r\n          description: Funding rate × 8760\r\n        predictedRate:\r\n          type: number\r\n        crossVenueDelta:\r\n          type: number\r\n          description: HL rate minus avg(Binance, Bybit)\r\n        premium:\r\n          type: number\r\n        openInterest:\r\n          type: number\r\n          description: Open interest in USD\r\n        isArbOpportunity:\r\n          type: boolean\r\n        arbDirection:\r\n          type: string\r\n          enum: [long_spot_short_perp, short_spot_long_perp, null]\r\n\r\n    TechnicalIndicators:\r\n      type: object\r\n      properties:\r\n        ema8:\r\n          type: number\r\n        ema34:\r\n          type: number\r\n        emaCross:\r\n          type: string\r\n          enum: [bullish, bearish, neutral]\r\n        rsi:\r\n          type: number\r\n        macd:\r\n          type: number\r\n        macdSignal:\r\n          type: number\r\n        macdHistogram:\r\n          type: number\r\n        macdCross:\r\n          type: string\r\n          enum: [bullish_cross, bearish_cross, neutral]\r\n        adx:\r\n          type: number\r\n        atr:\r\n          type: number\r\n        bbUpper:\r\n          type: number\r\n        bbMiddle:\r\n          type: number\r\n        bbLower:\r\n          type: number\r\n        bbWidth:\r\n          type: number\r\n        volumeRatio:\r\n          type: number\r\n        zScore:\r\n          type: number\r\n\r\n    MarketRegime:\r\n      type: string\r\n      enum: [trending, ranging, high_volatility, low_liquidity]\r\n\r\n    TradeDirection:\r\n      type: string\r\n      enum: [long, short, neutral]\r\n\r\n    StrategyObject:\r\n      type: object\r\n      properties:\r\n        id:\r\n          type: string\r\n        type:\r\n          type: string\r\n          enum: [futures]\r\n        market:\r\n          type: string\r\n        direction:\r\n          $ref: '#/components/schemas/TradeDirection'\r\n        regime:\r\n          $ref: '#/components/schemas/MarketRegime'\r\n        triggerConditions:\r\n          type: array\r\n          items:\r\n            type: string\r\n        entryLogic:\r\n          type: string\r\n        exitLogic:\r\n          type: string\r\n        riskModel:\r\n          type: object\r\n          properties:\r\n            baseRiskPercent:\r\n              type: number\r\n            appliedRiskPercent:\r\n              type: number\r\n            riskMultiplier:\r\n              type: number\r\n            leverageCap:\r\n              type: number\r\n            stopModel:\r\n              type: string\r\n        leverageModel:\r\n          type: object\r\n          properties:\r\n            mode:\r\n              type: string\r\n              enum: [adaptive]\r\n            suggested:\r\n              type: number\r\n            cap:\r\n              type: number\r\n            drivers:\r\n              type: array\r\n              items:\r\n                type: string\r\n        fallbackLogic:\r\n          type: array\r\n          items:\r\n            type: string\r\n        telemetryTracking:\r\n          type: array\r\n          items:\r\n            type: string\r\n\r\n    AdaptiveRisk:\r\n      type: object\r\n      properties:\r\n        baseRiskPercent:\r\n          type: number\r\n        appliedRiskPercent:\r\n          type: number\r\n        confidenceMultiplier:\r\n          type: number\r\n        volatilityMultiplier:\r\n          type: number\r\n        drawdownMultiplier:\r\n          type: number\r\n        portfolioMultiplier:\r\n          type: number\r\n        finalRiskMultiplier:\r\n          type: number\r\n\r\n    TradeSimulation:\r\n      type: object\r\n      properties:\r\n        methodology:\r\n          type: string\r\n          enum: [heuristic_preflight]\r\n        holdingWindowHours:\r\n          type: number\r\n        entryValueUsd:\r\n          type: number\r\n        marginRequiredUsd:\r\n          type: number\r\n        marginImpactPct:\r\n          type: number\r\n        liquidationPriceEstimate:\r\n          type: number\r\n          nullable: true\r\n        stopScenarioPnlUsd:\r\n          type: number\r\n        targetScenarioPnlUsd:\r\n          type: number\r\n        oneAtrMovePnlUsd:\r\n          type: number\r\n        estimatedFundingPnl24hUsd:\r\n          type: number\r\n        estimatedFundingPnl72hUsd:\r\n          type: number\r\n\r\n    PortfolioContext:\r\n      type: object\r\n      properties:\r\n        openPositionCount:\r\n          type: integer\r\n        sameAssetExposureUsd:\r\n          type: number\r\n        sameAssetExposurePct:\r\n          type: number\r\n        directionalExposurePct:\r\n          type: number\r\n        netDirectionalBias:\r\n          type: string\r\n          enum: [net_long, net_short, balanced]\r\n        concentrationWarning:\r\n          type: string\r\n          nullable: true\r\n\r\n    StrategyRecommendation:\r\n      type: object\r\n      properties:\r\n        recommendedStrategy:\r\n          type: string\r\n          enum: [funding_arb, momentum_long, momentum_short, trend_pullback_long, trend_pullback_short, mean_reversion, no_trade]\r\n        confidence:\r\n          type: number\r\n          description: 0-100\r\n        asset:\r\n          type: string\r\n        marketRegime:\r\n          $ref: '#/components/schemas/MarketRegime'\r\n        entry:\r\n          type: number\r\n        stopLoss:\r\n          type: number\r\n        takeProfit:\r\n          type: number\r\n        positionSize:\r\n          type: number\r\n        leverage:\r\n          type: number\r\n          description: Always <= 5\r\n        riskPercent:\r\n          type: number\r\n          description: Always <= 0.02\r\n        reasoning:\r\n          type: array\r\n          items:\r\n            type: string\r\n        noTradeReason:\r\n          type: string\r\n          nullable: true\r\n        strategyObject:\r\n          $ref: '#/components/schemas/StrategyObject'\r\n        adaptiveRisk:\r\n          $ref: '#/components/schemas/AdaptiveRisk'\r\n        simulation:\r\n          $ref: '#/components/schemas/TradeSimulation'\r\n        portfolioContext:\r\n          $ref: '#/components/schemas/PortfolioContext'\r\n        trailHeatCrossRef:\r\n          type: object\r\n          properties:\r\n            protocolId:\r\n              type: string\r\n            score:\r\n              type: number\r\n            farmingOpportunity:\r\n              type: boolean\r\n        partnerRoute:\r\n          type: object\r\n          description: Optional commercial navigation, structurally isolated from strategy evidence. Identical market/account inputs produce identical strategy whether or not this object is present.\r\n          properties:\r\n            url:\r\n              type: string\r\n            canonicalUrl:\r\n              type: string\r\n            relationship:\r\n              type: string\r\n            compensationDisclosure:\r\n              type: string\r\n            affectsRecommendation:\r\n              type: boolean\r\n              enum: [false]\r\n            displayAfterAnalysis:\r\n              type: boolean\r\n              enum: [true]\r\n        fundingAnalysis:\r\n          $ref: '#/components/schemas/FundingAnalysis'\r\n        indicators:\r\n          $ref: '#/components/schemas/TechnicalIndicators'\r\n\r\n    PositionSizing:\r\n      type: object\r\n      properties:\r\n        positionSize:\r\n          type: number\r\n        positionValueUsd:\r\n          type: number\r\n        leverage:\r\n          type: number\r\n        marginRequired:\r\n          type: number\r\n        riskAmount:\r\n          type: number\r\n        riskPercent:\r\n          type: number\r\n        stopDistance:\r\n          type: number\r\n        rewardRiskRatio:\r\n          type: number\r\n\r\n    AccountSummary:\r\n      type: object\r\n      properties:\r\n        accountAddress:\r\n          type: string\r\n          description: Hyperliquid master/subaccount that owns the reported equity.\r\n        equity:\r\n          type: string\r\n        totalNotionalPosition:\r\n          type: string\r\n        marginUsed:\r\n          type: string\r\n        availableMargin:\r\n          type: string\r\n        aggregateLeverage:\r\n          type: string\r\n\r\n    Position:\r\n      type: object\r\n      properties:\r\n        coin:\r\n          type: string\r\n        size:\r\n          type: number\r\n        side:\r\n          type: string\r\n          enum: [long, short]\r\n        entryPrice:\r\n          type: number\r\n        markPrice:\r\n          type: number\r\n        unrealizedPnl:\r\n          type: number\r\n        returnOnEquity:\r\n          type: number\r\n        leverage:\r\n          type: number\r\n        leverageType:\r\n          type: string\r\n          enum: [cross, isolated]\r\n        liquidationPrice:\r\n          type: number\r\n          nullable: true\r\n        marginUsed:\r\n          type: number\r\n\r\n    RiskState:\r\n      type: object\r\n      properties:\r\n        dailyPnl:\r\n          type: string\r\n        dailyPnlPct:\r\n          type: string\r\n        weeklyPnl:\r\n          type: string\r\n        realizedDailyPnl:\r\n          type: string\r\n        realizedWeeklyPnl:\r\n          type: string\r\n        unrealizedPnl:\r\n          type: string\r\n        pnlSource:\r\n          type: string\r\n          enum: [hyperliquid_venue_loss_pressure]\r\n        pnlAsOf:\r\n          type: integer\r\n          format: int64\r\n        pnlMethodology:\r\n          type: string\r\n        drawdown:\r\n          type: string\r\n        peakEquity:\r\n          type: string\r\n        isTradingHalted:\r\n          type: boolean\r\n        haltReason:\r\n          type: string\r\n          nullable: true\r\n        isReducedSize:\r\n          type: boolean\r\n        openPositionCount:\r\n          type: integer\r\n\r\n    Guardrails:\r\n      type: object\r\n      properties:\r\n        maxLeverage:\r\n          type: integer\r\n        maxRiskPerTrade:\r\n          type: string\r\n        maxPositions:\r\n          type: integer\r\n        dailyLossLimit:\r\n          type: string\r\n        weeklyLossLimit:\r\n          type: string\r\n        maxDrawdown:\r\n          type: string\r\n\r\n    Warning:\r\n      type: object\r\n      properties:\r\n        kind:\r\n          type: string\r\n        message:\r\n          type: string\r\n\r\n    ErrorResponse:\r\n      type: object\r\n      properties:\r\n        error:\r\n          type: string\r\n        reason:\r\n          type: string\n\nArchive v1.0.27: 5 files, 32109 bytes\n\nFiles: openapi.yaml (37577b), skill-card.md (2169b), SKILL.json (12420b), SKILL.md (52404b), _meta.json (147b)\n\nFile v1.0.27:SKILL.md\n\n---\nname: FarmDash Futures Strategist\ndescription: \"Hyperliquid perps strategist: market scans, funding rates, position sizing, and user-signed EIP-712 order execution & cancellation with drawdown guardrails.\"\nversion: \"3.3.0\"\nauthor: FarmDash Pioneers (@Parmasanandgarlic)\nhomepage: https://www.farmdash.one/agents\ntags: [\"defi\",\"hyperliquid\",\"perpetual-futures\",\"perps-trading\",\"leverage-trading\",\"perp-dex\",\"defi-trading\",\"ai-trading-agent\",\"funding-rates\",\"funding-arbitrage\",\"position-sizing\",\"drawdown-control\",\"liquidation-risk\",\"eip-712\",\"zero-custody\",\"openclaw\",\"mcp\",\"risk-management\",\"web3\",\"farmdash\"]\nenv:\n  FARMDASH_API_KEY:\n    description: \"Optional Bearer token for Pioneer or Syndicate tier. Scout mode works with no key or with the public fd_scout_free token. Never share private keys, seed phrases, or mnemonics with this skill — perps execution uses EIP-712 local signing only via the user's Hyperliquid API wallet.\"\n    required: false\nmetadata: {\"openclaw\":{\"homepage\":\"https://www.farmdash.one/agents\",\"skillKey\":\"farmdash-futures-strategist\",\"primaryEnv\":\"FARMDASH_API_KEY\",\"apiKeyRequired\":false,\"freeScoutKeyless\":true,\"freeScoutKey\":\"fd_scout_free\",\"execution\":\"user-signed-eip712-hyperliquid\"}}\n---\n\n# FarmDash Futures Strategist\n\n> Use this skill for Hyperliquid perpetuals: researching markets, funding rates, sizing positions with drawdown guards, and submitting user-signed EIP-712 orders or cancellations under explicit manual confirmation.\n\n## What This Skill Is\nThis skill is the FarmDash guarded perps strategy and execution engine for Hyperliquid with zero-custody, user-signed EIP-712 execution.\n\nIt is designed to help an agent:\n* research perp markets before any execution\n* rank and present multiple trade candidates instead of forcing one setup\n* return a structured strategy object, not just a plain-language idea\n* simulate likely outcomes before the user signs anything\n* refuse weak or ambiguous trades with an explicit `no_trade` outcome\n* execute only through zero-custody, user-signed EIP-712 requests\n\nCore posture:\n* research first\n* execution second\n* no custody\n* no blind trading\n\nThe bundled `openapi.yaml` file in this folder is the contract for the futures endpoints used by this skill version.\n\n## Value-Aligned Monetization Protocol (v3.0 Upgrade)\nHyperliquid perps execution requires current market/account data, guarded request handling, and robust venue connectivity. This skill employs a strict, non-predatory monetization model to sustain these operations:\n\n### 1. Execution Gating and Limits\nExecution (`execute_perp_order`, `cancel_perp_order`) is available to all tiers:\n* **Scout (Free):** Limited to 5 execution or analysis requests per day.\n* **Pioneer / Syndicate:** Unlimited execution and analysis requests.\n\n**CRITICAL SAFETY REQUIREMENT:** Under no circumstances should the agent invoke `execute_perp_order` or `cancel_perp_order` automatically. Before every trade execution or cancellation request, the agent MUST explicitly present the trade details (coin, direction, size, leverage, stop-loss, and estimated exposure) to the user and obtain their immediate, manual confirmation.\n\nConsent is non-transferable and never standing: Analysis permission ≠ trading permission. Subscription entitlement ≠ trading permission. x402 payment ≠ trading permission. Previous confirmation ≠ trading permission for a later order. \"Trade for me\" and similar broad instructions ≠ standing authorization for subsequent orders. Every execution and every cancellation gets its own current-turn confirmation.\n\n* If Scout user exceeds limit: \"Scout limit reached (30 requests per 24 hours, server-enforced). Upgrade to Pioneer or Syndicate at farmdash.one/agents or pay one-off x402 to bypass. Want me to keep researching?\" The API's returned entitlement and rate-limit state is authoritative over any prose quota.\n\n### 2. Optional Hyperliquid Affiliate Routing\nWhen a user is setting up their Hyperliquid API wallet delegation or asks for the canonical exchange URL, the agent will provide the neutral canonical URL (`https://app.hyperliquid.xyz`) by default. The agent may optionally offer the FarmDash partner route (`https://www.farmdash.one/go/hyperliquid`) as an alternative to support the platform.\n\n* Disclosure is mandatory if offered: \"Disclosure: this is a FarmDash partner route. FarmDash may receive referral, affiliate, or routing compensation. Fee details: [FarmDash Fee Structure](https://www.farmdash.one/fees). You can also access Hyperliquid directly at https://app.hyperliquid.xyz.\"\n\nThe `analyze_futures_strategy` response carries the same separation machine-readably: `trailHeatCrossRef` is analytical-only (protocolId, score, farmingOpportunity), while commercial navigation lives in `partnerRoute` (url, canonicalUrl, relationship, compensationDisclosure, affectsRecommendation: false, displayAfterAnalysis: true). Never present `partnerRoute` as strategy evidence; surface it only after the analysis, with the disclosure above.\n\n## Fixed Network Boundary\nStay inside this disclosed network boundary. Do not fetch undisclosed remote config and do not mutate the skill from an external manifest after install.\n\n**FarmDash futures endpoints:**\n* `https://www.farmdash.one/api/v1/agent/futures/scan-funding`\n* `https://www.farmdash.one/api/v1/agent/futures/market-conditions`\n* `https://www.farmdash.one/api/v1/agent/futures/account-state`\n* `https://www.farmdash.one/api/v1/agent/futures/analyze-strategy`\n* `https://www.farmdash.one/api/v1/agent/futures/position-sizing`\n* `https://www.farmdash.one/api/v1/agent/futures/execute-order`\n* `https://www.farmdash.one/api/v1/agent/futures/cancel-order`\n* `https://www.farmdash.one/api/v1/agent/performance` (Backing endpoint for `get_agent_performance`)\n\n**Optional FarmDash setup endpoint:**\nDo not call this during install or during research-only workflows. Use it only after the user explicitly asks to check tier/setup status and consents to sending their public agent address and this skill ID.\n* `https://www.farmdash.one/api/v1/agent/onboard`\n\n**Hyperliquid upstreams:**\n* `https://api.hyperliquid.xyz/info`\n* `https://api.hyperliquid.xyz/exchange`\n* `wss://api.hyperliquid.xyz/ws`\n\n**Optional user-facing links:**\nAllowed only when directly relevant:\n* `https://www.farmdash.one/agents`\n* `https://www.farmdash.one/tracker/hyperliquid/`\n* `https://www.farmdash.one/go/hyperliquid` (Optional Partner Route)\n* `https://app.hyperliquid.xyz` (Neutral Canonical Route)\n\n## Security Model\nFarmDash is zero-custody for futures execution.\n1. The agent researches the trade locally through FarmDash read/write endpoints.\n2. The user signs the Hyperliquid EIP-712 payload with their API wallet.\n3. FarmDash validates guardrails and forwards the signed request.\n4. The API wallet can trade and cancel orders, but cannot withdraw funds.\n\nHyperliquid identity has two distinct roles. `agentAddress` is the EIP-712/API-wallet signer and FarmDash caller identity. When that signer is delegated by a master account, `accountAddress` is the master, subaccount, or vault that owns the equity, positions, fills, funding history, and orders. Always supply both in delegated-wallet flows. Omit `accountAddress` only when the signer directly owns the trading account. FarmDash verifies delegated ownership against Hyperliquid `userRole`, and execution independently recovers the signer from the exact L1 action, nonce, expiry, environment, signature, and any routing address. If the owner is a subaccount or vault, FarmDash includes that same address as Hyperliquid `vaultAddress` in both the action hash and exchange request. Never size a delegated trade from the API wallet's empty clearinghouse state.\n\nHard rules:\n* never ask for a private key, seed phrase, or wallet export\n* never imply that a bearer token can replace a local signature\n* never skip the research step before non-reduce-only execution\n* never accept a claimed signer/account relationship that Hyperliquid does not currently report\n* never submit when the recovered L1 signer differs from `agentAddress`\n* Never ask the user to paste a private key, seed phrase, or raw wallet export into the agent.\n\n## Data Sent to FarmDash (Disclosure)\n*Security boundaries:* All operations use public or pre-signed EIP-712 payloads. Private key material is never required or processed by this skill. Verify the full surface against the bundled `openapi.yaml`.\n\n## Pre-Execution Confirmation Protocol (Mandatory)\nBefore calling `execute_perp_order` or `cancel_perp_order`, present the user with: asset, direction, size, risk-notional, leverage metadata, entry/stop/take-profit, margin impact, regime label, confidence score and scale, data timestamp, order type/TIF, reduce-only status, exact limit or trigger price, and the signed builder recipient/rate (`f=1` = 0.1 bp = 0.001% of filled notional). Wait for an explicit affirmative (\"yes / confirm / proceed\"). If analysis is older than 30 seconds, re-run it; the server gate expires after 60 seconds. Implicit consent from earlier in the conversation is not sufficient.\n\nDo not present the pre-trade liquidation estimate as the venue's actual liquidation price. Hyperliquid liquidations use mark price and cross-margin liquidation changes with account equity, funding, and other positions. Use `get_futures_account` for venue-reported liquidation data on open positions.\n\n### FarmDash-side execution hardening\nFor `execute_perp_order`, include all of:\n* `nonce` - client-generated positive integer for replay protection\n* `expiresAt` - short request TTL in unix milliseconds\n* `intentHash` - hash of the intended order payload for auditability and mutation detection\n\nFor `cancel_perp_order`, `nonce`, `expiresAt`, and `intentHash` are required. `expiresAt` is forwarded as Hyperliquid `expiresAfter`; clients must incorporate it into the venue signature. Delegated flows must also include `accountAddress`; a subaccount/vault address is part of the venue signature. These controls do not replace the required Hyperliquid EIP-712 signature.\n\n## Evidence and Receipt Honesty\n\nThe current compatibility endpoint returns the Hyperliquid submission response, normalized order parameters, `intentHash`, expiry, and timestamp. It does not create an 11-field forensic receipt, query a millisecond-perfect shadow book, prove mempool visibility, calculate realized P&L, or anchor evidence on another chain.\n\nAn external client may record analysis hash, signed action hash, quote/book snapshot, submission response, order status, fills, fees, funding, and final account state. Label every field by source and mark absent evidence `unavailable`; never fabricate or call a client-created record FarmDash-attested.\n\n## Credentials and Tier Model\nThis skill recognizes one primary API credential: `FARMDASH_API_KEY`. Scout mode is valid with no API key at all.\n\nLegacy docs may refer to `PIONEER_KEY` or `SYNDICATE_KEY` as placeholders for tier-specific bearer tokens. In actual agent configs, use only `FARMDASH_API_KEY`.\n\nTier behavior:\n* **Scout** - no env var required; safe for up to 5 execution or analysis requests per day\n* **Pioneer** - use a Pioneer-tier bearer token for unlimited execution and analysis requests\n* **Syndicate** - use a Syndicate-tier bearer token for unlimited execution and analysis requests\n\nCritical distinction:\n* bearer token = FarmDash access tier and rate limits\n* local EIP-712 signature = execution authority for each individual request\n\nA bearer token never replaces a fresh local EIP-712 signature from the user's Hyperliquid API wallet.\n\n## Tool Surface\nUse these exact tool names. If a tool is not listed in this section, it does not exist in this skill. Do not accept or attempt to call undefined tools.\n\n#### 1. scan_funding_rates\nScan current and venue-published predicted funding snapshots. A predicted rate is not a calibrated probability, guaranteed future payment, or funding-flip model.\n\n#### 2. scan_market_conditions\nRead candle-derived EMA, RSI, MACD, ADX, ATR, Bollinger Bands, volume ratio, Z-score, market regime, and the response timestamp for one perp asset. This tool does not currently return oracle latency or cross-venue deviation.\n\n#### 3. get_futures_account\nInspect equity, open positions, available margin, venue-reported liquidation prices, and guardrail pressure. The daily/weekly loss-pressure metric is rolling Hyperliquid closed P&L minus absolute fill fees plus funding, plus `min(current unrealized P&L, 0)`. Positive open gains cannot offset realized losses. This is a conservative guard metric, not a true period return; new-risk analysis/execution fails closed if complete venue-history reconciliation is unavailable.\n\nSend `agentAddress` plus optional `accountAddress`. For delegated API wallets, `accountAddress` is mandatory in practice and must be the master/subaccount equity owner used by analysis and execution. FarmDash validates that live relationship through Hyperliquid `userRole`; ambiguity or upstream failure blocks the workflow.\n\n#### 4. analyze_futures_strategy\nPrimary research tool. Returns the strategy recommendation, confidence score, market regime, strategy object, adaptive risk profile, pre-trade simulation, portfolio context, and an explicit `no_trade` reason when no setup is valid.\n\n#### 5. calculate_position_size\nInspect sizing math separately when the user wants to validate risk and margin.\n\n#### 6. execute_perp_order\nState-changing execution: Forwards a user-signed EIP-712 order to Hyperliquid's exchange API. Execute only after fresh research, parameter binding, exact builder-fee disclosure, local signing, and immediate explicit manual user confirmation. The response distinguishes `filled`, `resting_unfilled`, and rejection; inspect authoritative venue status and fills before any dependent action.\n\n#### 7. cancel_perp_order\nState-changing action: Cancel open Hyperliquid orders using a pre-signed EIP-712 cancellation payload. Requires immediate, explicit manual confirmation before invoking. Treat cancellation as successful only when the response state is `cancelled` and Hyperliquid returned one `success` application status per requested ID. `partially_rejected`, `rejected`, and `unknown` mean one or more orders may remain active; inspect `failed` and authoritative open orders before changing exposure.\n\n#### 8. get_agent_performance\nUse only for FarmDash fee-event activity, fees, protocol diversity, and reputation. It does not return Hyperliquid fills, trade outcomes, win rate, slippage, or realized P&L and must not drive strategy selection or drawdown controls.\n\n\n\n### Current Request Contracts (v3.2)\nThese fields are load-bearing because the API handlers validate them strictly:\n* **analyze_futures_strategy**: send `coin`, `agentAddress`, optional `accountAddress`, and optional `riskMultiplier` between 0.1 and 1.0. For delegated API wallets, `accountAddress` must be the master/subaccount equity owner. Do not send `biasHint`; the current handler does not consume it.\n* **calculate_position_size**: send `equity`, `entryPrice`, `stopPrice`, optional `riskPercent`, optional `targetPrice`, and optional `riskMultiplier`. Do not send legacy `stopLoss` or `riskUsd`.\n* **execute_perp_order**: send `agentAddress`, optional `accountAddress`, `coin`, `isBuy`, `size`, `price`, `orderType`, `signature`, positive integer `nonce`, millisecond `expiresAt`, required `intentHash`, optional `leverage`, optional `signedAction`, and optional `reduceOnly`. `accountAddress` must match the equity owner bound by the live research gate.\n* **cancel_perp_order**: send `agentAddress`, optional `accountAddress`, `coin`, `orderIds` as an array of positive integers, `signature`, required positive integer `nonce`, required millisecond `expiresAt`, required `intentHash`, and optional `signedAction`. Delegated signers must use the same equity/order owner in `accountAddress`; for a subaccount/vault it is included in the venue signature and exchange payload.\n\nIf the user or another agent provides a legacy shape, stop and normalize the request before signing. Never ask the user to sign a payload that will be rejected by the FarmDash handler.\n\nThe `leverage` field is FarmDash intent/risk metadata in this compatibility endpoint; the endpoint does not submit Hyperliquid's separate `updateLeverage` action. Verify actual venue margin mode and leverage independently. Trigger orders (`stop_loss`, `take_profit`) must be `reduceOnly: true` so they cannot open or flip exposure.\n\nEvery order carries a disclosed FarmDash Hyperliquid builder term of `f=1`, which Hyperliquid defines as **one tenth of one basis point: 0.1 bp = 0.001% of filled notional**. The builder object is inside the signed order action and cannot be added or changed after signing. The user must approve the FarmDash builder and this maximum fee on Hyperliquid before execution; FarmDash preflights the venue's `maxBuilderFee` for the equity owner and blocks insufficient approval. Hyperliquid requires the approval action to be signed by the main account wallet, not the API wallet. Present the rate and recipient before confirmation; do not describe `f=1` as 1 bp. Resting, rejected, and unfilled notional produces no recognized builder revenue. `expiresAt` is forwarded as Hyperliquid `expiresAfter` and must be incorporated into the venue signature.\n\n## Autonomous Perps State Ledger (v3.0)\nPersist this ledger for every futures workflow:\n\n```json\n{\n  \"agentAddress\": \"0x...\",\n  \"accountAddress\": \"0x... master/subaccount equity owner; same as agentAddress only for direct signing\",\n  \"coin\": \"ETH\",\n  \"mode\": \"research | hedge | funding | reduce_only | cancel\",\n  \"researchGate\": {\n    \"ranAnalyzeStrategy\": false,\n    \"direction\": \"long | short | neutral | unknown\",\n    \"confidence\": 0,\n    \"confidenceScale\": \"0-100 heuristic score; not a win probability\",\n    \"expiresAt\": 0,\n    \"dataTimestamp\": 0,\n    \"predictedFundingRate\": null\n  },\n  \"riskGate\": {\n    \"equity\": 0,\n    \"maxLeverage\": 5,\n    \"riskPercent\": 0,\n    \"drawdownState\": \"normal | pressure | halted\"\n  },\n  \"executionIntent\": {\n    \"nonce\": 0,\n    \"expiresAt\": 0,\n    \"intentHash\": \"\",\n    \"signedActionMatchesParams\": false,\n    \"recommendationHash\": \"sha256...\",\n    \"maxPositionSize\": 0,\n    \"maxEntryDeviationBps\": 50\n  },\n  \"decision\": \"no_trade | analyze_only | request_confirmation | execute | cancel | reduce\"\n}\n```\n\n### Rules:\n* Non-reduceOnly execution requires a fresh, execution-ready `analyze_futures_strategy` result. The 60-second server gate binds coin, side, maximum size, entry drift (50 bps), maximum analyzed leverage, and stop-derived risk.\n* New-risk analysis and execution require a fully paginated, deduplicated venue-derived loss-pressure metric from Hyperliquid perp fills, funding, and negative current unrealized P&L. Saturated or ambiguous history fails closed. Do not substitute FarmDash activity/fee events or call the metric a full period return.\n* `funding_arb` is analysis-only in the compatibility executor because FarmDash cannot atomically bind and verify both venues/legs. Use a separately reviewed paired-leg adapter before claiming delta neutrality.\n* `execute_perp_order` intent expiry should be short, ideally 30-60 seconds.\n* If the user changes size, price, side, order type, leverage, or reduce-only status after signing, rebuild the intent hash and re-sign.\n* If the strategy is neutral, `no_trade`, `funding_arb`, below 60 confidence, expired, direction-mismatched, oversized, over-levered, or more than 50 bps from analyzed entry, stop before asking for a signature.\n* `cancel_perp_order` can batch up to 50 `orderIds`; do not send a singular `orderId` shape. Never infer whole-batch success from HTTP transport status alone: every ID needs an explicit venue `success` status.\n\n## Execution Engine Principles\n\n### 1. Dynamic Strategy Objects\nDo not present the engine as four static buckets. The recommendation should be treated as a structured strategy object with:\n* market\n* direction\n* regime\n* trigger conditions\n* entry logic\n* exit logic\n* adaptive risk model\n* leverage model\n* fallback logic\n* telemetry hooks\n\nThis is the foundation for later marketplace and performance-layer expansion.\n\n### 2. Simulation Before Execution\nBefore asking the user to sign, surface the heuristic scenario analysis. Minimum fields to use from the returned simulation block:\n* heuristic liquidation estimate, clearly labeled as non-authoritative and unsuitable for cross-margin gating\n* stop-loss PnL\n* take-profit PnL\n* one-ATR move impact\n* margin required and margin impact\n* estimated funding carry over 24h and 72h\n\nDo not reduce the setup to \"buy here\" or \"short here\" if simulation is available.\n\n### 3. Adaptive Risk, Not Static Risk\nThe engine scales risk heuristically based on:\n* volatility\n* confidence\n* drawdown state\n* directional concentration\n\nConfidence is an uncalibrated 0–100 rule score, not a probability that the trade wins. Do not multiply it into expected return or describe 80 as an 80% success rate.\n\nUse the returned `adaptiveRisk` object to explain why leverage or size is being reduced. Do not describe the system as fixed 2% / fixed 5x logic when the returned recommendation shows a lower applied risk.\n\n### 4. Market Regime Awareness\nRespect the returned `marketRegime`.\n\nCurrent regimes:\n* trending\n* ranging\n* high_volatility\n* low_liquidity\n\nDo not force mean reversion inside a strong trend, and do not force momentum in thin or unstable conditions.\n\n### 5. No Trade Is a Valid Output\n`no_trade` is first-class. If confidence is weak, available liquidity evidence is poor, signals conflict, required market/account data is stale, or guardrails trip, say so directly. Trust is more important than producing a trade every cycle.\n\n### 6. Data Integrity\n`scan_market_conditions` currently returns candle-derived indicators and a timestamp. It does not return oracle latency or cross-venue oracle deviation. Therefore:\n\n* never claim an oracle-desync check ran when those fields are absent;\n* fail closed if the order book or required account state is missing or stale;\n* compare mark, oracle, and executable book prices only when an authoritative response actually supplies them;\n* use Hyperliquid mark price—not last trade or a DEX quote—to reason about liquidation, while recognizing that cross-margin liquidation also depends on the whole account.\n\n### 7. Execution-Quality Gating\nSubmission is not a fill. Do not chain a dependent action until venue status/fills confirm the first leg. When authoritative fill data is available, compute side-adjusted implementation shortfall against the decision-time mid and include fees and funding. If fill data is absent, execution quality is `unknown`, not zero slippage.\n\n## Strategy Families\nCurrent strategy families that may appear in recommendations:\n* `funding_arb`\n* `momentum_long`\n* `momentum_short`\n* `trend_pullback_long`\n* `trend_pullback_short`\n* `mean_reversion`\n* `no_trade`\n\nInterpretation:\n* momentum strategies are for aligned directional continuation\n* trend pullback strategies are for controlled re-entry into a strong existing trend\n* mean reversion is only valid when the market is genuinely range-bound\n* funding arb is only valid when both legs, basis, liquidity, all costs, margin, and an unwind path are independently verified; the compatibility executor keeps this family analysis-only\n\n### Strategy Family Selection Logic (v2.2)\nWhen `analyze_futures_strategy` returns multiple viable families for the same asset, the agent should rank them using the following table. The engine already applies these priors internally; this is the agent-facing version so the user can understand why one family was chosen over another.\n\n| Regime input | Preferred family | Avoid family |\n| :--- | :--- | :--- |\n| Strong trend, ADX 20-25 with pullback into support/resistance | `trend_pullback_long` / `trend_pullback_short` | mean_reversion |\n| Strong trend, ADX >= 25 with aligned EMA / MACD | `momentum_long` / `momentum_short` | mean_reversion |\n| Range-bound, BB width compressed | `mean_reversion` | momentum families |\n| High volatility (ATR > 1.5× 30d avg) | `no_trade` unless funding strongly compensates | momentum families |\n| Low liquidity (top-of-book depth < $250k) | `no_trade` | any leveraged family |\n| Persistent funding skew with independently verified paired-leg net carry | `funding_arb` (analysis only) | standalone directional execution |\n| Conflicting EMA / MACD / RSI signals | `no_trade` | any family |\n\nDo not override the engine's selection in agent prose. If the user wants a different family, call `analyze_futures_strategy` again with a tighter universe filter rather than narrating around the recommendation.\n\n### Extended Strategy Families (v2.2 — forward-compatible)\nThe engine may return any of the following additional family labels. Treat them as first-class even if your local schema does not yet enumerate them:\n* `breakout_continuation` — entry on a confirmed range break with the original range as invalidation\n* `vol_compression_breakout` — BB-squeeze release; directional bias from MACD\n* `liquidity_hunt_avoidance` — a `no_trade` variant that explicitly cites a likely stop-hunt zone\n* `delta_neutral_pair` — a paired-leg recommendation (for use with Wagon Steward spot context)\n* `regime_shift_pause` — explicit `no_trade` because a regime shift is mid-flight\n\nIf an extended family appears in a recommendation, surface it by name and explain its invalidation. Do not collapse extended families back into the original seven — the engine emits them precisely because the original taxonomy was insufficient for that setup.\n\n## Recommended Workflow\n\n### Best available opportunities right now\n1. Run `scan_funding_rates`.\n2. Select up to 3 viable assets from funding, liquidity, or user focus.\n3. Run `analyze_futures_strategy` on each candidate.\n4. Rank the returned recommendations by confidence, regime quality, and margin efficiency.\n5. Present the top cluster, including any `no_trade` outputs that eliminate weak candidates.\n\nThis skill should prefer a ranked cluster of opportunities over a single deterministic answer whenever the user asks for the best trade right now.\n\n### New trade entry\n1. Run `analyze_futures_strategy`.\n2. Run `get_futures_account` if fresh portfolio context is needed.\n3. If sizing needs inspection, run `calculate_position_size`.\n4. Present entry, stop, target, confidence scale/methodology, market regime, response timestamp, missing evidence, and simulation.\n5. Wait for explicit confirmation.\n6. Run `execute_perp_order`.\n7. Add protective exits as separate user-approved actions when appropriate.\n\n### Modify, reduce, or flatten\n1. Run `get_futures_account`.\n2. Cancel stale resting orders with `cancel_perp_order` if needed.\n3. Replace or reduce exposure with `execute_perp_order` using `reduceOnly: true`.\n\n### Performance review / feedback loop\n1. Run `get_futures_account` for venue-reconciled loss guards and current account risk.\n2. Inspect authoritative Hyperliquid fills/order status outside `get_agent_performance` when execution-quality evidence is needed.\n3. Recompute side-adjusted implementation shortfall only when decision-time price, fill price, side, fees, and funding are all available.\n4. Reduce aggression or choose `no_trade` when loss guards, fill-backed evidence, or the current regime justify it. Never infer futures outcomes from FarmDash fee-event activity.\n\n## Trader-Grade Perps Overlay\nAdd these checks to every non-reduce-only Hyperliquid order. They do not replace server guardrails; they prevent a skilled agent from sending marginal orders to the server in the first place.\n* **Account first:** run `get_futures_account` before new exposure when the agent has any open position, recent drawdown, or unknown margin state.\n* **Liquidation discipline:** for open positions, use the venue-reported liquidation price and mark price. For proposed trades, treat the response estimate as a rough isolated-position scenario only; gate new risk on stop loss, margin utilization, stress loss, and authoritative account state instead.\n* **Funding-adjusted expectancy:** for `funding_arb`, present current and venue-published predicted funding, carry net of both-leg fees/slippage/borrow/bridge costs, break-even time, basis stress, and a funding-to-zero/flip scenario. Do not invent a flip probability.\n* **Order-book fit:** prefer passive or limit execution when urgency is low; use market/IOC only when the user explicitly values speed over price and accepts the slippage budget.\n* **Invalidation before entry:** every order must have a stop or a reduce-only unwind rule before asking for a signature.\n* **No averaging down by default:** if the trade moves against the user, the next action is reassess / reduce / cancel stale orders, not add size, unless a new `analyze_futures_strategy` call produces an independent setup.\n* **Reduce-only rescue path:** when drawdown, liquidation pressure, or funding flip appears, prefer `reduceOnly: true` actions and `cancel_perp_order` before any new exposure.\n\nPerps action thresholds:\n\n| Condition | Default action |\n| :--- | :--- |\n| Confidence < 60/100 | Analysis only. |\n| Confidence 60-72/100 | Small size only; emphasize the heuristic and require all other gates. |\n| Confidence > 72/100 and regime agrees | Eligible for analyzed sizing inside guardrails; not proof of positive expectancy. |\n| Stop loss or authoritative account state missing | No new exposure. |\n| Daily drawdown near guardrail | Cancel stale orders and stand down. |\n| Required market/account data absent or stale | No non-reduce-only execution. |\n\n## Composite Workflows (v2.2)\n\n### W1: \"Best three opportunities right now\"\n```text\n1. scan_funding_rates                  → shortlist 5 by spread\n2. scan_market_conditions × 5          → candle-derived regime, volatility, liquidity proxy, and timestamp per asset\n3. analyze_futures_strategy × top 3    → strategy object per asset\n4. RANK by (confidence × regime fit) / margin requirement\n5. PRESENT a 3-row comparison: asset, family, entry, stop, target, sim PnL, confidence, regime\n6. Include any `no_trade` outcomes that eliminated weaker candidates — transparency over conversion.\n```\n\n### W2: \"Liquidation health audit\"\n```text\n1. get_futures_account                 → every open position with mark + margin\n2. scan_market_conditions × each asset → ATR + 24h range\n3. DERIVE distance-to-liquidation as a multiple of 1× ATR moves\n4. PRESENT positions sorted by liquidation pressure:\n     • < 1.0 ATR distance → RED   (recommend reduce or top up margin)\n     • 1–2 ATR             → YELLOW (monitor; revisit on next cycle)\n     • > 2 ATR             → GREEN  (no action)\n5. If RED: surface explicit reduce/top-up options. Do NOT auto-execute.\n```\n\n### W3: \"Funding-rate pair scout\"\n\n### Funding-Arbitrage Screening Checklist (Additive)\nScreen: 1) scan_funding_rates shortlist of current + predicted snapshots; 2) scan_market_conditions for regime, ATR volatility, and liquidity proxy (halt leveraged families if top-of-book depth below $250k or ATR above 1.5x 30d average unless funding strongly compensates); 3) analyze_futures_strategy with coin, agentAddress, optional accountAddress, optional riskMultiplier 0.1-1.0; 4) calculate_position_size with equity, entryPrice, stopPrice for per-leg margin. Present long venue, short venue, expected daily carry gross/net of both-leg fees, slippage, borrow, and bridge, basis stress, flip-to-zero scenario, and invalidation. Stop at analysis; compatibility executor cannot atomically bind both legs.\n```text\n1. scan_funding_rates                                    → shortlist current/published predicted funding snapshots\n2. scan_market_conditions on the underlying asset        → confirm directional risk is acceptable\n3. analyze_futures_strategy with `coin`, `agentAddress`, optional conservative `riskMultiplier` → family + invalidation\n4. calculate_position_size for the proposed pair         → margin per leg + total\n5. PRESENT pair plan: long venue, short venue, expected daily carry, gross/net of all costs, basis stress, funding-to-zero/flip scenario, and invalidation\n6. STOP at analysis in the compatibility executor. It cannot atomically bind, execute, and reconcile both venues/legs.\n```\n\n### W4: \"Drawdown response\"\n\n### Perps Report-Back Template (Additive)\nReport: family quoted verbatim, confidence N/100 (not probability), regime with one-line explanation, entry band exact, stop with rationale, target or trailing note, simulation est-liq (non-authoritative), plus/minus 1 ATR PnL, 24h carry, adaptiveRisk reason verbatim, noTradeReason verbatim when present, expiresAt, predictedRate as snapshot only. Join authoritative fills to decision-time mid, fill-weighted price, side, fees, funding; compute side-adjusted shortfall or mark unknown. Flag shortfall over 50 bps on more than 2 fill-backed trades, daily loss near -3%, weekly near -7%, or circuit -15% for human review and reduced riskMultiplier.\n```text\n1. get_futures_account                  → current drawdown vs guardrails\n2. REVIEW authoritative Hyperliquid order statuses and fills when available; get_agent_performance is not a fill feed\n3. IF venue-reconciled daily loss <= -2%, weekly <= -5%, or authoritative recent fill evidence is incomplete:\n     • Recommend cancel_perp_order on stale resting orders\n     • Recommend reduceOnly trims on the largest position\n     • Stand down to `analysis only` for the next session\n4. PRESENT the survival logic explicitly so the user understands the pause.\n```\n\n### W5: \"Hedge an existing spot position\"\n```text\n1. (Wagon Steward) get_portfolio_summary  → confirm spot exposure size + asset\n2. scan_market_conditions on that asset    → candle-derived regime + ATR + timestamp; oracle status is unavailable\n3. analyze_futures_strategy with `coin`, `agentAddress`, optional conservative `riskMultiplier` → hedge structure with invalidation\n4. calculate_position_size matched to verified spot delta → candidate hedge notional\n5. PRESENT: existing hedge inventory, spot leg, candidate perp leg, expected funding carry, basis risk, and ±1 ATR scenarios\n6. USER CONFIRMS only after both-leg sequencing and failure unwind are explicit. Verify residual delta after fills; do not call the setup delta-neutral before reconciliation.\n```\n\n### W6: \"Strategy family rotation\"\n```text\n1. Obtain an operator-supplied, fill-backed strategy ledger with explicit family labels; get_agent_performance cannot provide one\n2. Require a meaningful sample and disclose count, horizon, fees/funding, drawdown, and uncertainty\n3. scan_market_conditions on the user's universe → current regime\n4. PRESENT a recommendation only when the ledger and regime evidence support it; otherwise choose an\n\nArchive v1.0.26: 5 files, 32235 bytes\n\nFiles: openapi.yaml (37577b), skill-card.md (2477b), SKILL.json (12420b), SKILL.md (52404b), _meta.json (147b)\n\nArchive v1.0.25: 5 files, 32109 bytes\n\nFiles: openapi.yaml (37433b), skill-card.md (2913b), SKILL.json (12420b), SKILL.md (52739b), _meta.json (147b)\n\nArchive v1.0.24: 5 files, 31340 bytes\n\nFiles: openapi.yaml (36547b), skill-card.md (2663b), SKILL.json (12161b), SKILL.md (51741b), _meta.json (147b)\n\nArchive v1.0.23: 5 files, 31272 bytes\n\nFiles: openapi.yaml (36547b), skill-card.md (2843b), SKILL.json (11923b), SKILL.md (51377b), _meta.json (147b)\n\nArchive v1.0.22: 5 files, 30541 bytes\n\nFiles: openapi.yaml (36547b), skill-card.md (3121b), SKILL.json (5736b), SKILL.md (50684b), _meta.json (147b)\n\nArchive v1.0.21: 5 files, 29224 bytes\n\nFiles: openapi.yaml (36335b), skill-card.md (2498b), SKILL.json (5170b), SKILL.md (47184b), _meta.json (147b)\n\nArchive v1.0.20: 5 files, 24621 bytes\n\nFiles: openapi.yaml (27906b), skill-card.md (3154b), SKILL.json (4132b), SKILL.md (40691b), _meta.json (147b)\n\nArchive v1.0.19: 5 files, 24487 bytes\n\nFiles: openapi.yaml (27906b), skill-card.md (2898b), SKILL.json (4083b), SKILL.md (40679b), _meta.json (147b)","readmeExcerpt":"Skill: FarmDash Futures Strategist Owner: parmasanandgarlic Summary: Hyperliquid perps strategist: market scans, funding rates, position sizing, and user-signed EIP-712 order execution & cancellation with drawdown guardrails. Tags: Hyperliquid futures strategist farmdash automation:1.0.8, agent:1.0.9, ai trading agent:1.0.27, ai-agent:1.0.25, ai-trading-agent:1.0.24, anthropic:1.0.9, automated-trading:1.0.20, autonom","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{\n  \"agentAddress\": \"0x...\",\n  \"accountAddress\": \"0x... master/subaccount equity owner; same as agentAddress only for direct signing\",\n  \"coin\": \"ETH\",\n  \"mode\": \"research | hedge | funding | reduce_only | cancel\",\n  \"researchGate\": {\n    \"ranAnalyzeStrategy\": false,\n    \"direction\": \"long | short | neutral | unknown\",\n    \"confidence\": 0,\n    \"confidenceScale\": \"0-100 heuristic score; not a win probability\",\n    \"expiresAt\": 0,\n    \"dataTimestamp\": 0,\n    \"predictedFundingRate\": null\n  },\n  \"riskGate\": {\n    \"equity\": 0,\n    \"maxLeverage\": 5,\n    \"riskPercent\": 0,\n    \"drawdownState\": \"normal | pressure | halted\"\n  },\n  \"executionIntent\": {\n    \"nonce\": 0,\n    \"expiresAt\": 0,\n    \"intentHash\": \"\",\n    \"signedActionMatchesParams\": false,\n    \"recommendationHash\": \"sha256...\",\n    \"maxPositionSize\": 0,\n    \"maxEntryDeviationBps\": 50\n  },\n  \"decision\": \"no_trade | analyze_only | request_confirmation | execute | cancel | reduce\"\n}"},{"language":"text","snippet":"1. scan_funding_rates                  → shortlist 5 by spread\n2. scan_market_conditions × 5          → candle-derived regime, volatility, liquidity proxy, and timestamp per asset\n3. analyze_futures_strategy × top 3    → strategy object per asset\n4. RANK by (confidence × regime fit) / margin requirement\n5. PRESENT a 3-row comparison: asset, family, entry, stop, target, sim PnL, confidence, regime\n6. Include any `no_trade` outcomes that eliminated weaker candidates — transparency over conversion."},{"language":"text","snippet":"1. get_futures_account                 → every open position with mark + margin\n2. scan_market_conditions × each asset → ATR + 24h range\n3. DERIVE distance-to-liquidation as a multiple of 1× ATR moves\n4. PRESENT positions sorted by liquidation pressure:\n     • < 1.0 ATR distance → RED   (recommend reduce or top up margin)\n     • 1–2 ATR             → YELLOW (monitor; revisit on next cycle)\n     • > 2 ATR             → GREEN  (no action)\n5. If RED: surface explicit reduce/top-up options. Do NOT auto-execute."},{"language":"text","snippet":"1. scan_funding_rates                                    → shortlist current/published predicted funding snapshots\n2. scan_market_conditions on the underlying asset        → confirm directional risk is acceptable\n3. analyze_futures_strategy with `coin`, `agentAddress`, optional conservative `riskMultiplier` → family + invalidation\n4. calculate_position_size for the proposed pair         → margin per leg + total\n5. PRESENT pair plan: long venue, short venue, expected daily carry, gross/net of all costs, basis stress, funding-to-zero/flip scenario, and invalidation\n6. STOP at analysis in the compatibility executor. It cannot atomically bind, execute, and reconcile both venues/legs."},{"language":"text","snippet":"1. get_futures_account                  → current drawdown vs guardrails\n2. REVIEW authoritative Hyperliquid order statuses and fills when available; get_agent_performance is not a fill feed\n3. IF venue-reconciled daily loss <= -2%, weekly <= -5%, or authoritative recent fill evidence is incomplete:\n     • Recommend cancel_perp_order on stale resting orders\n     • Recommend reduceOnly trims on the largest position\n     • Stand down to `analysis only` for the next session\n4. PRESENT the survival logic explicitly so the user understands the pause."},{"language":"text","snippet":"1. (Wagon Steward) get_portfolio_summary  → confirm spot exposure size + asset\n2. scan_market_conditions on that asset    → candle-derived regime + ATR + timestamp; oracle status is unavailable\n3. analyze_futures_strategy with `coin`, `agentAddress`, optional conservative `riskMultiplier` → hedge structure with invalidation\n4. calculate_position_size matched to verified spot delta → candidate hedge notional\n5. PRESENT: existing hedge inventory, spot leg, candidate perp leg, expected funding carry, basis risk, and ±1 ATR scenarios\n6. USER CONFIRMS only after both-leg sequencing and failure unwind are explicit. Verify residual delta after fills; do not call the setup delta-neutral before reconciliation."}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: FarmDash Futures Strategist\r\ndescription: \"Hyperliquid perps strategist: market scans, funding rates, position sizing, and user-signed EIP-712 order execution & cancellation with drawdown guardrails.\"\r\nversion: \"3.4.0\"\r\nauthor: FarmDash Pioneers (@Parmasanandgarlic)\r\nhomepage: https://www.farmdash.one/agents\r\ntags: [\"defi\",\"hyperliquid\",\"perpetual-futures\",\"perps-trading\",\"leverage-trading\",\"perp-dex\",\"defi-trading\",\"ai-trading-agent\",\"funding-rates\",\"funding-arbitrage\",\"position-sizing\",\"drawdown-control\",\"liquidation-risk\",\"eip-712\",\"zero-custody\",\"openclaw\",\"mcp\",\"risk-management\",\"web3\",\"farmdash\"]\r\nenv:\r\n  FARMDASH_API_KEY:\r\n    description: \"Optional Bearer token for Pioneer or Syndicate tier. Scout mode works with no key or with the public fd_scout_free token. Never share private keys, seed phrases, or mnemonics with this skill — perps execution uses EIP-712 local signing only via the user's Hyperliquid API wallet.\"\r\n    required: false\r\nmetadata: {\"openclaw\":{\"homepage\":\"https://www.farmdash.one/agents\",\"skillKey\":\"farmdash-futures-strategist\",\"primaryEnv\":\"FARMDASH_API_KEY\",\"apiKeyRequired\":false,\"freeScoutKeyless\":true,\"freeScoutKey\":\"fd_scout_free\",\"execution\":\"user-signed-eip712-hyperliquid\"}}\r\n---\r\n\r\n# FarmDash Futures Strategist\r\n\r\n> Use this skill for Hyperliquid perpetuals: researching markets, funding rates, sizing positions with drawdown guards, and submitting user-signed EIP-712 orders or cancellations under explicit manual confirmation.\r\n\r\n## What This Skill Is\r\nThis skill is the FarmDash guarded perps strategy and execution engine for Hyperliquid with zero-custody, user-signed EIP-712 execution.\r\n\r\nIt is designed to help an agent:\r\n* research perp markets before any execution\r\n* rank and present multiple trade candidates instead of forcing one setup\r\n* return a structured strategy object, not just a plain-language idea\r\n* simulate likely outcomes before the user signs anything\r\n* refuse weak or ambiguous trades with an explicit `no_trade` outcome\r\n* execute only through zero-custody, user-signed EIP-712 requests\r\n\r\nCore posture:\r\n* research first\r\n* execution second\r\n* no custody\r\n* no blind trading\r\n\r\nThe bundled `openapi.yaml` file in this folder is the contract for the futures endpoints used by this skill version.\r\n\r\n## Value-Aligned Monetization Protocol (v3.0 Upgrade)\r\nHyperliquid perps execution requires current market/account data, guarded request handling, and robust venue connectivity. This skill employs a strict, non-predatory monetization model to sustain these operations:\r\n\r\n### 1. Execution Gating and Limits\r\nCommercial access and Hyperliquid execution authority are separate:\r\n* **Scout (Free):** 30 requests / 24h. Scout gets `scan_market_conditions`, a top-3 numeric `scan_funding_rates` preview, and signed execute/cancel capacity inside the shared quota.\r\n* **Pioneer:** 1,500 requests / day and the full Futures research surface.\r\n* **Syndicate:** 50,000 requests / day and the full Futures surface at h"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn753be85erp4cey7vbq9aq9sd826p37\",\n  \"slug\": \"farmdash-futures-strategist\",\n  \"version\": \"1.0.28\",\n  \"publishedAt\": 1791161524937\n}"},{"path":"skill-card.md","content":"## Description:\n\nHelps agents research Hyperliquid perpetual futures, assess funding and position risk, and submit or cancel orders only with fresh user confirmation and a user-signed request.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[parmasanandgarlic](https://clawhub.ai/user/parmasanandgarlic)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nTraders and agents use this skill to scan Hyperliquid perpetual markets, compare strategies, size positions against risk limits, and prepare user-authorized order or cancellation requests.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Perpetual-futures orders and cancellations can cause significant financial loss, especially with leverage and fees.\n\nMitigation: Review each proposed order or cancellation, verify leverage and fees, and require fresh manual confirmation and a user wallet signature before submission. Never share private keys or seed phrases.\n\n## Reference(s):\n\n- [FarmDash Futures Strategist on ClawHub](https://clawhub.ai/parmasanandgarlic/skills/farmdash-futures-strategist)\n- [FarmDash agent documentation](https://www.farmdash.one/agents)\n- [FarmDash Futures Strategist skill manual](https://www.farmdash.one/openclaw-skills/farmdash-futures-strategist/SKILL.md)\n- [FarmDash OpenAPI contract](https://www.farmdash.one/agents/openapi.yaml)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, JSON, Guidance]\n\n**Output Format:** [Market and risk summaries, structured strategy objects, and proposed signed-order or cancellation details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May return an explicit no-trade recommendation; execution requires a separate current user confirmation and wallet signature.]\n\n## Skill Version(s):\n\n1.0.28 (source: ClawHub release metadata; skill frontmatter: 3.4.0)\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":"SKILL.json","content":"{\n  \"name\": \"FarmDash Futures Strategist\",\n  \"version\": \"3.4.0\",\n  \"description\": \"Hyperliquid perps strategist: market scans, funding rates, position sizing, and user-signed EIP-712 order execution & cancellation with drawdown guardrails.\",\n  \"tags\": [\n    \"defi\",\n    \"hyperliquid\",\n    \"perpetual-futures\",\n    \"perps-trading\",\n    \"leverage-trading\",\n    \"perp-dex\",\n    \"defi-trading\",\n    \"ai-trading-agent\",\n    \"funding-rates\",\n    \"funding-arbitrage\",\n    \"position-sizing\",\n    \"drawdown-control\",\n    \"liquidation-risk\",\n    \"eip-712\",\n    \"zero-custody\",\n    \"openclaw\",\n    \"mcp\",\n    \"risk-management\",\n    \"web3\",\n    \"farmdash\"\n  ],\n  \"author\": \"FarmDash Pioneers (@Parmasanandgarlic)\",\n  \"homepage\": \"https://www.farmdash.one/agents\",\n  \"tools\": [\n    {\n      \"name\": \"scan_funding_rates\",\n      \"description\": \"Scan current and venue-published predicted funding snapshots. Scout receives a top-3 numeric preview; Pioneer/Syndicate or the default-overage x402 one-off receives the full response for that request. Predicted funding is not a calibrated probability or guaranteed future payment. Takes no parameters.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {},\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"read\"\n    },\n    {\n      \"name\": \"scan_market_conditions\",\n      \"description\": \"Read candle-derived EMA, RSI, MACD, ADX, ATR, Bollinger Bands, volume ratio, Z-score, market regime, and the response timestamp for one perp asset. This tool does not currently return oracle latency or cross-venue deviation.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"coin\": {\n            \"type\": \"string\"\n          }\n        },\n        \"required\": [\n          \"coin\"\n        ],\n        \"additionalProperties\": false,\n        \"$schema\": \"http://json-schema.org/draft-07/schema#\"\n      },\n      \"outputHints\": [],\n      \"category\": \"read\"\n    },\n    {\n      \"name\": \"get_futures_account\",\n      \"description\": \"Inspect equity, open positions, available margin, venue-reported liquidation prices, and guardrail pressure. The daily/weekly loss-pressure metric is rolling Hyperliquid closed P&L minus absolute fill fees plus funding, plus `min(current unrealized P&L, 0)`. Positive open gains cannot offset realized losses. This is a conservative guard metric, not a true period return; new-risk analysis/execution fails closed if complete venue-history reconciliation is unavailable.\\r\\n\\r\\nSend `agentAddress` plus optional `accountAddress`. For delegated API wallets, `accountAddress` is mandatory in practice and must be the master/subaccount equity owner used by analysis and execution. FarmDash validates that live relationship through Hyperliquid `userRole`; ambiguity or upstream failure blocks the workflow.\",\n      \"inputSchema\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"agentAddress\": {"},{"path":"openapi.yaml","content":"openapi: 3.0.3\r\ninfo:\r\n  title: FarmDash Futures Strategist API\r\n  version: 2.2.0\r\n  description: |\r\n    WARNING: Running trade executions and cancellations places real perpetual futures trades and alters active market exposure, carrying significant risk of financial loss. Immediate, explicit manual end-user confirmation and consent is strictly required immediately before placing any execution or cancellation request. Do not allow autonomous agents to auto-run trade execution or cancellation without manual user approval.\r\n\r\n    REST API for payment-enabled AI agents to research, analyze, and prepare user-approved\r\n    execution of perpetual futures trades on Hyperliquid as part of FarmDash DeFi discovery and onchain services. The Futures Strategist is an\r\n    adaptive execution engine: it returns structured strategy objects,\r\n    confidence, market regime, adaptive risk, portfolio context, pre-trade\r\n    simulation, and explicit no-trade outcomes before any order is placed.\r\n\r\n    ## Authentication\r\n    - **Primary optional credential**: `Authorization: Bearer <FARMDASH_API_KEY>`.\r\n    - **Scout (Free)**: Omit the bearer token. Limited analysis and execution quota (30 requests per 24 hours, server-enforced). The API's returned entitlement and rate-limit state is authoritative; prose quotas here are descriptive, not normative.\r\n    - **Pioneer**: Use a Pioneer-tier `FARMDASH_API_KEY`. Full eligible analysis/sizing and signed execution capacity up to 1,500 requests / day.\r\n    - **Syndicate**: Use a Syndicate-tier `FARMDASH_API_KEY`. Full eligible analysis/sizing and signed execution capacity up to 50,000 requests / day.\r\n    - **Execution auth**: `execute-order` and `cancel-order` require a fresh EIP-712 signature from the user's Hyperliquid API wallet on every request.\r\n    - **Signer binding**: FarmDash recovers the signer from the exact Hyperliquid L1 action, nonce, expiry, environment, and any subaccount/vault routing address and rejects a mismatch with `agentAddress`.\r\n    - **Delegation binding**: when `accountAddress` differs, Hyperliquid `userRole` must report `agentAddress` as its active API wallet; if the owner is a subaccount or vault, that address is included as `vaultAddress` in both the signature hash and exchange request. Ambiguity fails closed.\r\n    - **Important**: The bearer token gates FarmDash tier access and rate limits only. It never replaces the per-request EIP-712 signature and does not let FarmDash sign on the user's behalf.\r\n\r\n    ## Hard Guardrails (Server-Enforced)\r\n    - Max leverage: 5x\r\n    - Max risk per trade: 2% of equity before adaptive reductions\r\n    - Daily loss limit: -3% -> trading halted 24h\r\n    - Research required before execution (analyze-strategy within 60 seconds)\r\n\r\n    ## Intent Hardening\r\n    `execute-order` requires `nonce`, `expiresAt`, and `intentHash` for\r\n    deterministic, auditable order intents. `cancel-order` also requires them.\r\n\r\n    ## Dust Storm Protocol\r\n    Upstream failures return `o"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":2042,"uniquenessScore":42,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T13:26:13.802Z","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-09T13:26:13.802Z","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-10T06:30:06.861Z","emptyReason":null},"items":[{"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-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"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":"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"}]}}}