Select funding from the portfolio
Display the balances, then let your application or user choose one source chain and token. The orchestrator quotes swaps, bridges, and fees for that selected balance; it does not search the portfolio or combine balances across tokens or chains. A delivery always requires a source. Omittingsource.chain selects the destination chain, not the best available chain. Source-free execution has client-specific sponsorship requirements; see Sponsor fees. If a selected balance cannot fund the request, choose another source deliberately and review a new quote.
A portfolio is a balance snapshot, not a reservation guarantee. Prepare a
transaction to receive the executable quote and current costs.
Spendable balance
Portfolio results reflect observed availability, not reserved funds. Concurrent intents and balance changes can invalidate a quote; keep pending intent IDs rather than treating the portfolio as double-spend protection. Refresh after completed or failed intents, deposits, withdrawals, and other balance changes.Read and spend a unified balance
- Embedded wallet
- Custom signer
- REST API
Use the initialized
wallet client from Accounts. Read the authenticated EVM address from session.accounts.evm.address, including when requesting that user’s managed Solana holdings. See the migration guide for nested sessions and sends.Only effectively fully sponsored no-delivery execution with sponsorshipMode: "required" can omit source in the wallet SDK. Sponsorship does not supply assets consumed by calls or instructions.Read assets
UsegetAssets to read the portfolio. These alternatives depend only on your configured wallet:With experimental_solana, reads for the session’s own EVM address add managed Solana rows. Other addresses and EIP-1193 wallet_getAssets remain EVM-only. AssetBalance.chainId is number | SolanaChainId: narrow it before passing a row to EVM-only code. Solana mainnet rows belong to mainnets; Devnet rows belong to testnets. Failed Solana reads appear in unavailableChains without failing the whole portfolio request; an unavailable cluster is not a zero balance.Holdings do not prove wallet readiness, route availability, or pooled spending power. Setup does not fund a wallet. Confirm cluster readiness before funding.Each balance includes its chain ID, token address, symbol, decimals, and a base-unit balance string. getAssets requires the application access-token configuration from Sponsorship setup, including for user-paid intents. The access token identifies the application; it does not grant fee sponsorship by itself.getAssets rejects on missing app credentials, access-token failures, or portfolio request failures. Handle it with try/catch. This differs from sendIntent, which returns a structured success or failure result.Fund an intent
Reuse the tokens, amount, and calls from Send a transaction. Choose one balance from the portfolio as thesource:source takes exactly one token address or SPL mint, not a token symbol. For managed Solana, use the same-cluster delivery example, selecting the row’s cluster and mint explicitly. Native SOL holdings do not imply native SOL token-delivery support. A source can prevent a route even when the portfolio has enough value elsewhere.Omitting source.chain funds from the destination chain. Do not treat that call shape as a request to search the full crosschain portfolio.Sponsorship is required by default. sendIntent() does not expose the custom signer SDK’s prepared quote object to your application. See Send a transaction for funding and review options, then use the result to track the intent.Keep displayed and executable amounts distinct
- Display portfolio balances as available assets, not guaranteed transaction outputs.
- Use the prepared quote to show exact inputs, outputs, and fees when your client exposes one.
- Keep pending intent IDs and refresh balances after their terminal result.
- Do not add an existing balance to SDK
source.auxiliaryFundsor HTTPsource.auxiliaryFunds; that double-counts funds. - If funding is insufficient, change only the selected funding pair the user agrees to change, then request and review a new quote.