Run & status

Run reads and writes with thirdfy-agent run, check the venue before a write, and follow a run's status.

Use thirdfy-agent run to read data or to place orders, deposits and swaps. Reads are safe to run at any time. Writes move funds, so check the venue and preview first.

Run a read

A read returns data and never moves funds.

thirdfy-agent run --action get_cmc_fear_greed --provider cmc --json

thirdfy-agent run --action get_allora_market_forecast --provider allora \
  --params '{"assets":["BTC","ETH"],"horizon":"8h"}' --json

You find the action's result at data.data.result. Typed reads also include typed, parseIssues and freshness. Before you use a value, check that parseIssues is empty.

For more read examples, see each integration page.

Run a write

A write places an order, makes a deposit or runs a swap. Send one in three steps.

1. Check the venue

thirdfy-agent venue readiness hyperliquid --json

Here is a trimmed response from a real check on 2026-10-08, for an agent that has not funded Hyperliquid yet:

{
  "success": true,
  "readiness": {
    "venue": "hyperliquid",
    "ready": false,
    "fundingReady": false,
    "credentialsReady": true,
    "approvalsReady": true,
    "nextAction": "HYPERLIQUID_DEPOSIT_REQUIRED",
    "blockingReasons": ["HYPERLIQUID_DEPOSIT_REQUIRED"],
    "userMessage": "Fund Hyperliquid with at least 5 USDC via Bridge2 before placing orders."
  }
}

Go on only when ready is true and blockingReasons is empty.

To fund a venue, run thirdfy-agent venue fund hyperliquid --json. It returns a funding plan and moves nothing. You send each funding step as a write with run.

The one-time venue setup runs by itself with your first order, so you rarely need venue setup. For details, see each venue's integration page.

2. Preflight

thirdfy-agent preflight --action place_hyperliquid_perps_order --provider hyperliquid \
  --run-mode agent_wallet \
  --params '{"coin":"ETH","isBuy":true,"size":0.01,"limitPx":2000,"orderType":"limit"}' \
  --json

Preflight runs Thirdfy's checks on the run mode, the execution wallet and the shape of your params. It does not replace step 1. For venue actions, always check venue readiness too.

On agent_wallet, you can also run thirdfy-agent preview with the same flags. It tells you whether Thirdfy would sign the order (wouldSign), shows the order and risk preview, and prints the run command. Nothing is sent.

3. Run

thirdfy-agent run --action place_hyperliquid_perps_order --provider hyperliquid \
  --run-mode agent_wallet \
  --params '{"coin":"ETH","isBuy":true,"size":0.01,"limitPx":2000,"orderType":"limit"}' \
  --confirm-writes --json

Pass --confirm-writes on every write. When an action's schema asks for a confirmation field, the CLI fills it in for you. Veranta writes and the Hyperliquid and Polymarket bridge and funding steps work this way.

Thirdfy still refuses the run if any of these is true:

  • The action is not on the agent's allowlist.
  • The agent is over its daily limit.
  • The venue, delegation or credits are not ready.

Poll status

A run on a single wallet returns its final state in the run response.

A fan-out run sends one intent (a request to act) to many delegated wallets. It returns an intentId instead. To follow it, poll its status:

thirdfy-agent intent-status --intent-id "<intentId>" --json

Useful flags

FlagUse
--provider <id>Resolve the action within one provider
--chain-id <id>Target chain for on-chain actions
--params '<json>'Action params; the schema is in thirdfy-agent actions --provider <id> --json
--idempotency-key <key>Make a retried write safe to repeat
--confirm-writesConfirm a write; filled into the action's confirmation field when its schema has one
--agent-api-key <key>Use a key without a saved profile (CI)

Solana

On Solana, your agent acts from the managed Solana wallet Thirdfy holds for it. Use --run-mode agent_wallet. Any other run mode fails with SVM_REQUIRES_AGENT_WALLET before anything runs.

The chain ids are 101 (mainnet) and 103 (devnet).

# Solana actions and their params
thirdfy-agent actions --chain-id 101 --json

# Quote, then swap 5 USDC to SOL with Jupiter
thirdfy-agent run --action get_jupiter_quote --chain-id 101 --run-mode agent_wallet \
  --params '{"inputMint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","outputMint":"So11111111111111111111111111111111111111112","amount":"5"}' --json

thirdfy-agent run --action jupiter_swap --chain-id 101 --run-mode agent_wallet \
  --params '{"inputMint":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","outputMint":"So11111111111111111111111111111111111111112","amount":"5"}' \
  --estimated-amount-usd 5 --json
  • inputMint and outputMint are base58 token mints (above: USDC and SOL). amount is in units of inputMint.
  • An action that runs only on Solana defaults to chain 101 when you pass no --chain-id.
  • Solana addresses are base58 and case-sensitive. Fund the base58 execution wallet that login email printed, not the EVM one.
  • Thirdfy sponsors Solana network fees. Keep a little SOL only for rent on new token accounts (about 0.002 SOL each) and any SOL an action spends.

More on Solana: Solana integration.

To do the same over HTTP, see the Execute Intent API. For every flag, see the CLI command reference.