TorqueTorque

Search docs

Search Torque documentation pages & sections

Financial Action

Financial Action = Intent + wallet_order

A Financial Action pairs Intent (user goal) with a wallet_order (the executable unit the system 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. READPortfolio state, intelligence feeds, and data pipelines. Informs Intent.
  2. DECIDEAssistant, quotes, and routing turn context + goal into a draft wallet_order (functionResults).
  3. EXECUTEActions finalizes settlement — on_chain or merchant channel. The Financial Action completes.

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 anotherswap_tokenson_chain
transferSend assets to a wallet or address (peer)transfer_tokenson_chain
lendSupply assets for yieldlend_tokenson_chain
borrowBorrow against collateralborrow_tokenson_chain
paySettle a merchant order (buyer → merchant)torque-checkout SDK (merchant server)merchant

Peer transfer commits on the on_chain Actions channel (wallet JWT). Merchant pay commits on the merchant Actions channel (business key + Business ID) — same move-value idea, different DECIDE path and auth.

Merchant integrators: Actions — merchant channel and Checkout SDK. Wallet / Assistant flows: Actions — on_chain channel.

wallet_order

The executable unit. Draft in DECIDE (functionResults). Committed in EXECUTE through Actions (on_chain or merchant channel).

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": { ... }
  }
}

// Merchant pay — channel merchant; DECIDE on merchant server (Checkout SDK), not Assistant tools
{
  "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
toolNameEXECUTE routeChannel
swap_tokensPOST /api/v1/execute/tradeson_chain
swap_tokens (Solana)POST /api/v1/execute/trades/solanaon_chain
transfer_tokensPOST /api/v1/execute/transfers/evmon_chain
transfer_tokens (Solana)POST /api/v1/execute/transfers/solanaon_chain
lend_tokensPOST /api/v1/execute/lends/evmon_chain
borrow_tokensPOST /api/v1/execute/borrows/evmon_chain
torque-checkout SDK (pay)Checkout session + POST /api/webhooks/order-updatemerchant

READ — Portfolio

Portfolio state is READ-only. It informs Intent but does not produce a wallet_order.

  • 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?