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:- Embedded wallet
- Custom signer
- REST API
Use the initialized This embedded-wallet swap uses numeric EVM chain IDs, one
wallet client from Accounts after the user signs in; sends always use the authenticated account: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 forshareRecipient:
- Embedded wallet
- Custom signer
Submit the shared calls with the embedded wallet’s field names: