---
title: "Full research pipeline with adaptive strategy recommendation"
method: POST
path: "/v1/agent/futures/analyze-strategy"
tags: ["Strategy"]
---

# Full research pipeline with adaptive strategy recommendation

`POST /v1/agent/futures/analyze-strategy`

## Request

- Base URL: `https://www.farmdash.one/api`
- URL: `https://www.farmdash.one/api/v1/agent/futures/analyze-strategy`
- Auth: HTTP bearer

Runs funding rates + technicals + order book liquidity + Trail Heat cross-ref.
Returns a structured strategy object, confidence score, market regime,
adaptive risk, portfolio context, pre-trade simulation, and explicit
no-trade outcomes when no setup is valid. Scout may claim one bounded research
result per durable free futures lifecycle (five per capital owner per UTC day),
with locally signed commercial identity or validated owner-bound delegated authority.
Paid Pioneer+ and eligible x402 admission remain available. This
registers analysis for a 60-second execution window that binds side, maximum size, entry drift, leverage metadata, and stop-derived risk.

## Headers

- `X-ClawHub-Skill` string

## Request body

- object
  - `coin` string, required: Asset symbol (ETH, BTC, SOL)
  - `agentAddress` string, required
  - `riskMultiplier` number: Optional flexibility modifier for risk tolerance. 1.0 keeps the full risk budget; lower values are more conservative.
  - `accountAddress` string
  - `idempotencyKey` string
  - `executionTrialProof` ExecutionTrialProof: Locally signed server-issued commercial identity challenge. Creates no transaction authority or delegation. Valid for five minutes. Never send private keys.
    - `issuedAt` integer, required
    - `signature` string, required
  - `executionMode` 'USER_SIGNED' | 'BOUNDED_AUTONOMOUS'
  - `sessionId` string
  - `grantId` string
  - `sessionToken` string

## Response `200`

Strategy recommendation

- AnalyzeStrategyResponse
  - `continuation` ExecutionContinuation
    - `schema` 'farmdash.execution-continuation.v1', required
    - `continuation_id` string, uuid, required
    - `source` object, required
      - `type` 'market_estimate' | 'solana_preview' | 'futures_analysis', required
      - `ref` string, required
    - `execution_domain` 'spot' | 'solana' | 'futures', required
    - `network` string, required
    - `protocol_id` string, nullable, required
    - `assets` object[], required
      - `namespace` 'eip155' | 'solana' | 'hyperliquid', required
      - `network` string, required
      - `identifier` string, required
      - `symbol` string
      - `kind` 'native' | 'wrapped_native' | 'token' | 'market', required
      - `decimals` integer
    - `action_kind` 'swap' | 'prepare_order', required
    - `lifecycle_id` string, uuid, required
    - `trail_id` string, nullable, required
    - `next_operation` ExecutionContinuationNextOperation, required
      - `method` 'POST', required
      - `endpoint` '/api/v1/agent/quote-intent' | '/api/agents/solana-swap' | '/api/agents/futures/prepare-order' | '/api/v1/agent/futures/prepare-order', required
      - `parameters` object, required
      - `required_fields` string[], required
    - `available_execution_modes` string[], required
    - `authority` 'NOT_GRANTED', required
    - `prerequisites` string[], required
    - `scout_trial` object, required
      - `exists` true, required
      - `domain` 'spot' | 'futures', required
      - `daily_limit` integer, required
      - `remaining` unknown, required
      - `status` 'unknown' | 'evaluation_required', required
      - `after_exhaustion` 'authoritative_admission', required
    - `expires_at` string, date-time, required
  - `next_operation` ExecutionContinuationNextOperation
    - `method` 'POST', required
    - `endpoint` '/api/v1/agent/quote-intent' | '/api/agents/solana-swap' | '/api/agents/futures/prepare-order' | '/api/v1/agent/futures/prepare-order', required
    - `parameters` object, required
    - `required_fields` string[], required
  - `ok` boolean
  - `recommendation` StrategyRecommendation
    - `recommendedStrategy` 'funding_arb' | 'momentum_long' | 'momentum_short' | 'trend_pullback_long' | 'trend_pullback_short' | 'mean_reversion' | 'no_trade'
    - `confidence` number
    - `asset` string
    - `marketRegime` 'trending' | 'ranging' | 'high_volatility' | 'low_liquidity'
    - `entry` number
    - `stopLoss` number
    - `takeProfit` number
    - `positionSize` number
    - `leverage` number
    - `riskPercent` number
    - `reasoning` string[]
    - `noTradeReason` string, nullable
    - `strategyObject` FuturesStrategyObject
      - `id` string
      - `type` 'futures'
      - `market` string
      - `direction` 'long' | 'short' | 'neutral'
      - `regime` 'trending' | 'ranging' | 'high_volatility' | 'low_liquidity'
      - `triggerConditions` string[]
      - `entryLogic` string
      - `exitLogic` string
      - `riskModel` object
        - `baseRiskPercent` number
        - `appliedRiskPercent` number
        - `riskMultiplier` number
        - `leverageCap` number
        - `stopModel` string
      - `leverageModel` object
        - `mode` 'adaptive'
        - `suggested` number
        - `cap` number
        - `drivers` string[]
      - `fallbackLogic` string[]
      - `telemetryTracking` string[]
    - `adaptiveRisk` FuturesAdaptiveRisk
      - `baseRiskPercent` number
      - `appliedRiskPercent` number
      - `confidenceMultiplier` number
      - `volatilityMultiplier` number
      - `drawdownMultiplier` number
      - `portfolioMultiplier` number
      - `finalRiskMultiplier` number
    - `simulation` FuturesTradeSimulation
      - `methodology` 'heuristic_preflight'
      - `holdingWindowHours` number
      - `entryValueUsd` number
      - `marginRequiredUsd` number
      - `marginImpactPct` number
      - `liquidationPriceEstimate` number, nullable
      - `stopScenarioPnlUsd` number
      - `targetScenarioPnlUsd` number
      - `oneAtrMovePnlUsd` number
      - `estimatedFundingPnl24hUsd` number
      - `estimatedFundingPnl72hUsd` number
    - `portfolioContext` FuturesPortfolioContext
      - `openPositionCount` integer
      - `sameAssetExposureUsd` number
      - `sameAssetExposurePct` number
      - `directionalExposurePct` number
      - `netDirectionalBias` 'net_long' | 'net_short' | 'balanced'
      - `concentrationWarning` string, nullable
    - `trailHeatCrossRef` object
      - `protocolId` string
      - `score` number
      - `farmingOpportunity` boolean
      - `referralLink` string, uri
    - `fundingAnalysis` FundingAnalysis
      - `coin` string
      - `fundingRate` number
      - `annualizedRate` number
      - `predictedRate` number
      - `crossVenueDelta` number
      - `premium` number
      - `openInterest` number
      - `isArbOpportunity` boolean
      - `arbDirection` 'long_spot_short_perp' | 'short_spot_long_perp' | 'null', nullable
    - `indicators` TechnicalIndicators
      - `ema8` number
      - `ema34` number
      - `emaCross` 'bullish' | 'bearish' | 'neutral'
      - `rsi` number
      - `macd` number
      - `macdSignal` number
      - `macdHistogram` number
      - `macdCross` 'bullish_cross' | 'bearish_cross' | 'neutral'
      - `adx` number
      - `atr` number
      - `bbUpper` number
      - `bbMiddle` number
      - `bbLower` number
      - `bbWidth` number
      - `volumeRatio` number
      - `zScore` number
  - `account` object
    - `equity` string
    - `availableMargin` string
    - `openPositions` integer
  - `guardrails` Guardrails
    - `maxLeverage` integer
    - `maxRiskPerTrade` string
    - `maxPositions` integer
    - `dailyLossLimit` string
    - `weeklyLossLimit` string
    - `maxDrawdown` string
  - `timestamp` integer
  - `warnings` DustStormWarning[]
    - `kind` 'dust_storm', required
    - `message` string, required

## Other responses

- `400`: Invalid parameters
- `402`: Free-tier limit exceeded — x402 payment required

---

[API](https://skmtc.dev/farmdash/apis/farmdash-agent-api.md) · [All operations](https://skmtc.dev/farmdash/apis/farmdash-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/farmdash/apis/farmdash-agent-api/revisions/96310281f58c?raw)
