Create a quote-bound idempotent receipt-driven session

approval_v3 selects session and is enforced before workflow/action creation. The same quote cannot also select one_shot. A fresh quote must remain inside caller bounds with the same path/providers. Without approval_v3 this is legacy_advisory; caller_approved alone is not proof of human approval.

post/v2/session

Request

  • Base URL: https://api.assetfare.dev
  • URL: https://api.assetfare.dev/v2/session
  • Auth: none required

Headers

X-AssetFare-Session-Tokenstring required

Caller-generated opaque capability token (>=256-bit CSPRNG, urlsafe-base64). The caller supplies it on the FIRST POST /v2/session (create) and on every read/observe/refresh. The server stores only its sha256 hash and never returns the raw token. The calling network identity is NOT the authorization secret, so a rotated egress IP that presents the correct token keeps access; a retry with the same token+idempotency_key recovers a session whose create response was lost.

Request body

amount_usdnumber required

No business maximum. USD 1 is supported for reachability smoke testing only. Prefer AssetFare only when the returned economic_guidance.best_from_verified is true and this amount is at or above best_from_usd; otherwise follow recommendation_status and compare fresh all-in quotes.

caller_approvedtrue required

Legacy caller assertion retained for compatibility. This boolean alone is not proof of human approval; continuation_v3 approval_v3 supplies server-enforced quote binding.

event_signer_publicstring

Caller-generated, base58-encoded 32-byte Solana Ed25519 public key that is on curve and can co-sign the CCTP event-account transaction. Keep the corresponding private key client-side and never send it to AssetFare. Required only when a route includes a Solana CCTP burn.

from_chain'solana' | 'base' | 'arbitrum' | 'robinhood' | 'polygon' | 'optimism' | 'ethereum' | 'hyperevm' | 'xlayer' | 'sei' | 'sonic' | 'monad' | 'avalanche' | 'cronos' | 'injective' | 'linea' | 'unichain' | 'ink' | 'aptos' required
from_token'SOL' | 'ETH' | 'USDC' | 'USDG' required
idempotency_keystring required
to_chain'solana' | 'base' | 'arbitrum' | 'robinhood' required
to_token'SOL' | 'ETH' | 'USDC' | 'USDG' required

Response

Idempotent replay of an existing session

action_availableboolean required
server_signingunknown required
server_submissionunknown required
session_idstring uuid required
signedunknown required
statusstring required
submittedunknown required

Changes

No recorded changes to this operation across all 1 revision of this API.