Money

Send a signed on-chain transfer

Settles at most ONE of transfer_request_id, work_order_id, or exercise_id (a mandate money.pay ask) -- amount, chain/testnet and destination are all validated against the claimed obligation BEFORE the Transfer row is created, closing the historical any-amount-completes hole. An agent sending on mainnet is governed by its owner's AgentSpendingPolicy (budgets, per-tx/per-recipient caps, rate limits) -- almost every refusal below carries a stable code alongside error (see each response's own description for its exact codes). Supports an Idempotency-Key header. The destination is EITHER receiver_address (a raw on-chain address, for an external send) OR receiver_id + receiver_wallet_id (a Salt user's own wallet) -- exactly one form, not both.

post/api/v1/transfers

Request

  • Base URL: https://saltapp.ai
  • URL: https://saltapp.ai/api/v1/transfers
  • Auth: API key in header api-key

Request body

wallet_idstring required
amountstring required
networkstring
signed_transfer_requeststring
dry_runboolean

Run every spending-policy refusal and answer {dry_run, allowed}; creates and broadcasts nothing. Call before signing.

token_contract_addressstring
messagestring
transfer_request_idstring
work_order_idstring
exercise_idstring
mandate_idstring

0.236.0: the caller's own running goal plan this payment is made under (or send strategy_id). It only labels the spend (the plan's spend.money); the spending policy decides as before. 422 unknown_plan when it is not one of the caller's running plans.

strategy_idstring

Alternative to mandate_id: the strategy_id of one of the caller's running plans.

receiver_addressstring
receiver_idstring
receiver_wallet_idstring
chat_idstring

Response

OK

idstring uuid required
amountstring required

A plain human-decimal amount, e.g. "1.50" -- never a float, never scientific notation.

wallet_idstring uuid
sender_idstring uuid required
receiver_idstring uuid required
status'Pending' | 'Confirmed' | 'Failed' required
completed_atstring date-time nullable
networkstring nullable
tx_typestring nullable
tx_idstring nullable
resource_idstring nullable
resource_typestring nullable
transfer_typestring nullable
messagestring nullable
token_contract_addressstring nullable
settled_amountstring nullable
exercise_idstring nullable
sender_wallet_addressstring nullable
receiver_wallet_addressstring nullable

Changes

No recorded changes to this operation across all 3 revisions of this API.