agent.transfers.quote({ from: { network, asset }, to: { address }, amount }) returns the amount, the most it pays in fee of feeSymbol, and validity; transfers.create({ from: { network, asset }, to: { address }, amount }, options?) executes it. Both engines use the session wallet as sender. The optional second argument retains its admitted operation reference.
amount is whole tokens, rounded down to the token’s smallest unit, or on create "max", { balancePercent } of the session’s own holding of from. "max" never exceeds what the wallet can send after fees. Solana quotes simulate and report live fees and recipient-account rent, sized for a new associated token account’s extensions; reverts preserve detail and failed RPC reads reject. Solana transfers use the mint’s owning SPL Token or Token-2022 program and check the mint and decimals. Transfer fees follow the mint’s rules and can reduce the amount credited to the recipient; transfer hooks requiring extra accounts and mint/account restrictions still fail simulation. Create rechecks balance, gas and policy, returning a completed operation with receipts. gasBalanceWarning reports a projected ETH balance below 0.002 without blocking execution. No future-transaction reserve applies.
HyperCore sends use the same API with from.network: "hypercore", a token index as asset, and the recipient’s EVM address. USDC is "0" and HYPE is "150". Never pass a ticker or hexadecimal token ID as asset. Sendable quantity is max(0, total - (spotHold ?? hold)); Circuit adds no reserve. Creation rechecks exact spot availability before signing and submission. Sends credit the recipient’s spot compartment through sendAsset; Core↔EVM movement uses swaps. Insufficiency fails without resizing or retrying.
Lighter sends use from.network: "lighter", a Lighter asset index as asset (USDC is "3"), and the recipient’s EVM address. The recipient must already have a Lighter account; otherwise swap the funds to another network for that address with swaps. Lighter charges its transfer fee in USDC on top of the amount; transfers.quote reports it as fee and rejects USDC amounts that leave no room for it.