---
title: "Manage independent spot delegation and owner-signed futures policies"
method: POST
path: "/v1/agent/authority"
tags: ["ExecutionAuthority"]
---

# Manage independent spot delegation and owner-signed futures policies

`POST /v1/agent/authority`

## Request

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

Dual execution authority management. Actions: get_authority, request_delegation,
register_delegation, prepare_autonomous_swap, confirm_autonomous_swap, release_autonomous_reservation, revoke.
Futures actions request/register a policy or inspect/revoke exact session grants. Session tokens never create authority; registration requires the owner signature. Futures BOUNDED_AUTONOMOUS remains preparation_only.
Zero key custody: calling agent local signer retains wallet authority.

## Request body

- object
  - `action` 'get_authority' | 'status' | 'request_delegation' | 'register_delegation' | 'prepare_autonomous_swap' | 'confirm_autonomous_swap' | 'release_autonomous_reservation' | 'release_reservation' | 'revoke' | 'request_futures_policy' | 'register_futures_policy' | 'get_futures_authority' | 'revoke_futures_policy', required
  - `policy` FuturesPolicy: Owner-signed FarmDash policy, separate from Hyperliquid delegation. USD limits are exact positive decimal strings. maxRiskPerTrade is conservative full-notional admission USD, not a realized loss guarantee. Unix-second validity. Policy order types map actual route semantics: IOC/market_ioc -> market, Gtc/Alo -> limit.
    - `ownerAddress` string, required
    - `agentAddress` string, required
    - `apiWalletAddress` string, required
    - `accountAddress` string, required
    - `vaultAddress` string, nullable, required
    - `network` 'mainnet' | 'testnet', required
    - `sessionId` string, required
    - `allowedMarkets` string[], required
    - `allowedActions` string[], required
    - `allowedOrderTypes` string[], required
    - `allowedDirections` string[], required
    - `maxOrderNotionalUsd` string, required: Strictly positive USD limit; zero is invalid
    - `maxAggregateExposureUsd` string, required: Strictly positive USD limit; zero is invalid
    - `maxSessionNewRiskNotionalUsd` string, required: Strictly positive USD limit; zero is invalid
    - `maxRiskPerTrade` string, required: Strictly positive USD limit; zero is invalid
    - `maxSessionLossUsd` string, required: Strictly positive USD limit; zero is invalid
    - `maxDailyLossUsd` string, required: Strictly positive USD limit; zero is invalid
    - `maxLeverage` integer, required
    - `validAfter` integer, required: Unix seconds
    - `validUntil` integer, required: Unix seconds, greater than validAfter
    - `nonce` string, required: Single-use owner uint256 decimal nonce
    - `policyVersion` 1, required
  - `signature` string: Owner EIP-712 signature for register_futures_policy
  - `sessionToken` string: Alternatively use X-FarmDash-Session-Token header
  - `ownerAddress` string
  - `sessionId` string
  - `grantId` string

## Response `200`

Authority operation success

- object
  - `ok` boolean, required

## Other responses

- `400`: Invalid parameters
- `402`: Free-tier limit exceeded — x402 payment required
- `403`: Policy violation or structured authority rejection

---

[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)
