Skip to main content
Request the output token and amount on the target chain. Select one source chain and token. The wallet clients below quote the swap and any bridge, and deliver the requested output in one intent.

Choose the intent shape

For a plain swap with the SDK, omit destination.calls. Direct Caucasus HTTP selects one source chain/token and one destination asset, and omits destination execution for a token-only quote. Do not add dummy calldata, a self-transfer, or { data: "0x" }. Use target-chain token addresses for the requested token. For EVM funding, select one source token and chain from the user’s portfolio. Custom signer SDK portfolio reads are EVM-only; the embedded wallet can also read managed Solana holdings. Neither client searches or combines other balances; delivery requires a source even when sponsored.

Request a token-only swap

This example requests 100 USDC on Arbitrum and restricts funding to WETH on Base:
For a self-send without destination execution, the amount can be treated as the target’s final balance when existing destination funds are also eligible as funding. In Caucasus HTTP, they must belong to the selected source pair. Both examples restrict the source to Base, so any USDC already on Arbitrum is outside that scope and the full 100 USDC is delivered.
Use the initialized wallet client from Accounts after the user signs in; sends always use the authenticated account:
This embedded-wallet swap uses numeric EVM chain IDs, one source token, and one destination token, with no calls for a plain swap. source.chain applies the WETH address to Base; omitting it funds from the destination chain rather than searching other chains. sendIntent() manages quote preparation and does not expose the custom signer SDK’s ranked prepared.quotes object.Sponsorship is required by default. Reuse the funding, review, and completion options from Send a transaction. Preserve the whole result, including intentId, submission flags, native destination identifier, and refund evidence; never blindly retry an uncertain submission.

Managed Solana boundary

Managed Solana same-cluster delivery requires matching SPL mints, so it is not a different-mint swap. Native SOL token delivery and cross-cluster transfers are unsupported. For an EVM → Solana token-delivery example, see Send a transaction; supply a destination mint and recipient, without calls or instructions. Do not rely on Solana → EVM delivery as a swap route yet; see Networks for current limitations. Solana SmartSessions and cross-VM contract execution are unsupported.
Omit destination.amount to request the maximum output from the source token. source.maxAmount caps the observed source balance, not the total spend. Neither client’s cap guarantees exact-input spend.

Trade and deposit

This procedure is EVM-only. When the output feeds another action, include the actual calls and the matching destination token and amount in one intent. This example swaps WETH into 100 USDC on Base, approves the Steakhouse Prime USDC ERC-4626 vault, and deposits for shareRecipient:
Submit the shared calls with the embedded wallet’s field names:
The output delivery and calls belong to one intent. The approval and deposit execute in order and revert together if either call fails. This is not a queue of separate trades. See Sponsor fees for funding modes. Continue to the end-to-end transaction flow for status and recovery details.