TorqueTorque

Search docs

Search Torque documentation pages & sections

Lifecycle

Financial Action = Intent + wallet_order

Intent is the user goal; wallet_order is what Torque commits.

Lifecycle Stages

StageSummaryConstraint
READState + intelligenceRead-only. No wallet_order produced.
DECIDEIntent → executable planNo settlement. Outputs draft wallet_order only.
EXECUTEFinal settlementCommits wallet_order. Financial Action completes.
  1. READ: Portfolio and market context → Intent
  2. DECIDE: Assistant → functionResults (draft wallet_order)
  3. EXECUTE: Actions settlement (on_chain or merchant)

Intent Types

Intent is the user goal. DECIDE resolves it; EXECUTE commits the matching wallet_order through Actions. The wallet_order channel selects on_chain vs merchant, not a separate product API.

IntentDescriptionDECIDEEXECUTE Channel
swapExchange one asset for anothertrade (functionResults may show swap_tokens)on_chain
transferSend assets to a wallet or address (peer)transfer (functionResults may show transfer_tokens)on_chain
lendSupply assets for yieldlend (functionResults may show lend_tokens)on_chain
borrowBorrow against collateralborrow (functionResults may show borrow_tokens)on_chain
paySettle a merchant order (buyer → merchant)torque-checkout SDK (merchant server)merchant

transfer → on_chain (wallet JWT); pay → merchant (business key). Same move-value, different auth.

Merchants: merchant + Checkout. Wallet/Assistant: on_chain.

Wallet Order

Draft in DECIDE (functionResults); committed in EXECUTE via Actions (on_chain or merchant).

FieldDescription
intentTypeswap | transfer | lend | borrow | pay
statusdraft (DECIDE) → committed (EXECUTE)
channelon_chain → POST /execute/**; merchant → torque-checkout SDK + order webhooks
requiresConfirmationtrue for value-moving drafts from Assistant
transactionPrepared tx body (on_chain channel) or checkout session (merchant)
chainIdTarget chain for on_chain orders
// DECIDE output (draft wallet_order, on_chain)
{
  "toolName": "transfer_tokens",
  "result": {
    "success": true,
    "requiresConfirmation": true,
    "intentType": "transfer",
    "status": "draft",
    "channel": "on_chain",
    "chainId": 8453,
    "transaction": { ... }
  }
}

// pay: merchant channel; DECIDE via Checkout SDK (not Assistant)
{
  "intentType": "pay",
  "status": "draft",
  "channel": "merchant",
  "checkoutSession": { ... }
}

Execution Tiers

draft

DECIDE

wallet_order in functionResults; plan only, no settlement

committed

EXECUTE

wallet_order submitted; value moves or state changes

Actions Channels

EXECUTE is one surface (Actions) with two channels. Both finalize a wallet_order. Intent pay always uses merchant; swap / transfer / lend / borrow use on_chain.

SurfaceChannelRoutesAuth
Actionson_chainPOST /api/v1/execute/** (alias /actions/**)Smart Wallet JWT
Actionsmerchanttorque-checkout SDK, POST /api/webhooks/order-updatesk_live_… + Business ID
Tool NameEXECUTE RouteChannel
trade (alias swap_tokens)POST /api/v1/execute/tradeson_chain
trade / swap_tokens (Solana)POST /api/v1/execute/trades/solanaon_chain
transfer (alias transfer_tokens)POST /api/v1/execute/transfers/evmon_chain
transfer (alias transfer_tokens, Solana)POST /api/v1/execute/transfers/solanaon_chain
lend (alias lend_tokens)POST /api/v1/execute/lends/evmon_chain
borrow (alias borrow_tokens)POST /api/v1/execute/borrows/evmon_chain
torque-checkout SDK (pay)Checkout session + POST /api/webhooks/order-updatemerchant

READ: Portfolio

Portfolio state is READ-only: the unified ledger exposed to integrators. It informs Intent but does not produce a wallet_order. See How It Works for how balances aggregate behind this surface.

  • GET /api/v1/wallet/me: Smart Wallet JWT
  • walletAddress in Assistant context: business key

Also see Intelligence for feed, dataset, and market READ profiles.

Boundary Rules

If it does not produce or contribute to a wallet_order, it is not part of EXECUTE.

CategoryExamplesWhy
READ-only responsesGET /intelligence/feed, GET /data/*, GET /wallet/meContext only; no wallet_order
Assistant text-only repliescontent without functionResultsIntent answered; no draft wallet_order
System metadataGET /health, GET /capabilities, GET /openapiDiscovery, not execution
Rate tiles without commitOpportunities GET without downstream EXECUTEREAD context, not a wallet_order
Was this helpful?