---
title: "Execute a pre-signed order on Hyperliquid"
method: POST
path: "/v1/agent/futures/execute-order"
tags: ["Execution"]
---

# Execute a pre-signed order on Hyperliquid

`POST /v1/agent/futures/execute-order`

## Request

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

Forwards a pre-signed EIP-712 order to Hyperliquid. Requires prior
execution-ready analyze-strategy call within 60 seconds for risk-increasing orders (parameter-bound research gate). Scout signed capacity or x402 overage applies; paid capacity never creates authority.
FarmDash may receive routing compensation from supported venues. Risk guardrails enforced server-side.
`nonce`, `expiresAt`, and `intentHash` are required for request-scoped
expiry and auditability. `expiresAt` is forwarded as venue `expiresAfter`.
`market_ioc` is a signed, price-protected IOC limit order with a live 100
bps adverse-price cap, never an unbounded market order. It distinguishes
full, partial, and zero fill; an IOC resting response is unknown/inconsistent.
Venue nonce authority is `network + signer + nonce` across account and vault
contexts. Durable replay control fails closed before submission.
The signed order action discloses FarmDash builder `f=1`, which means
0.1 bp (0.001%) of filled notional—not 1 bp. Resting/rejected/unfilled
notional is not fee-bearing volume.
WARNING: Real market actions can cause financial loss. USER_SIGNED requires fresh manual approval for each order/cancel. BOUNDED_AUTONOMOUS permits local agent signing without per-order confirmation only under a valid explicit owner-signed futures grant, authenticated session, venue delegation and all applicable gates. Futures bounded autonomy remains preparation_only until the production canary passes.

## Headers

- `X-FarmDash-Session-Token` string
- `X-ClawHub-Skill` string

## Request body

- ExecuteOrderRequest
  - `executionTrialId` string: Inherited durable futures lifecycle. Accepted orders commit; ambiguous submission stays held pending direct venue reconciliation.
  - `accountAddress` string
  - `executionMode` 'USER_SIGNED' | 'BOUNDED_AUTONOMOUS': USER_SIGNED is preserved for unenrolled signers. Owner registration permanently enrolls the API wallet on its network across accounts, including after expiry/revocation; stripping mode/session fields cannot bypass bounded policy. Bounded dispatch returns nonretryable bounded_futures_preparation_only while rollout is not operational.
  - `grantId` string: Required for BOUNDED_AUTONOMOUS
  - `sessionId` string: Required for BOUNDED_AUTONOMOUS; binds session agent separately from API wallet
  - `sessionToken` string: Session capability; alternatively X-FarmDash-Session-Token header
  - `agentAddress` string, required
  - `coin` string, required
  - `isBuy` boolean, required
  - `size` string, required
  - `price` string, required
  - `orderType` 'limit_gtc' | 'limit_ioc' | 'limit_alo' | 'market_ioc' | 'stop_loss' | 'take_profit', required: `market_ioc` is a signed, price-protected IOC limit order with a live 100 bps adverse-price cap, never an unbounded market order.
  - `reduceOnly` boolean
  - `leverage` union
    - number
    - string
  - `signedAction` object: If supplied, must contain the signed FarmDash builder term `{ b: treasury, f: 1 }`; f is tenths of a basis point.
  - `nonce` integer, required
  - `expiresAt` integer, required
  - `intentHash` string, required
  - `signature` EIP712Signature, required
    - `r` string, required
    - `s` string, required
    - `v` integer, required

## Response `200`

Order execution result

- ExecuteOrderResponse
  - `ok` boolean
  - `state` 'fully_filled' | 'partially_filled' | 'zero_fill' | 'resting_unfilled' | 'rejected' | 'unknown'
  - `result` object
    - `status` string
    - `response` object
  - `order` object
    - `coin` string
    - `side` 'buy' | 'sell'
    - `size` string
    - `price` string
    - `type` string
    - `reduceOnly` boolean
    - `leverage` number
    - `leverageStatus` 'risk_check_metadata_only'
    - `builderFee` object
      - `recipient` string
      - `venueUnitsTenthsBps` number
      - `basisPoints` number
      - `percent` number
      - `appliesTo` 'filled_notional_only'
      - `signedInsideOrderAction` boolean
  - `intentHash` string
  - `expiresAt` integer
  - `timestamp` integer
  - `error` string
  - `warnings` DustStormWarning[]
    - `kind` 'dust_storm', required
    - `message` string, required

## Other responses

- `400`: Risk check failed or research not performed
- `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)
