Swap Instructions
Get swap instructions for Solana that allow you to build custom transactions with your own instructions (e.g., Jito tips, fee transfers).
Query Parameters
Mobula chain id. EVM: evm:<integer> (e.g. evm:1, evm:8453, evm:42161). Solana: solana:solana. TON: ton:mainnet or ton:testnet.
Sell token address. Native identifiers — EVM: 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE (EIP-7528). Solana native SOL: So11111111111111111111111111111111111111111. Use wrapped SOL / WSOL mint So11111111111111111111111111111111111111112 only when swapping WSOL token-account balance. TON: EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM9c.
1Buy token address. Same native identifier rules as tokenIn.
1Human-readable amount (e.g. "1.5" for 1.5 tokens). Converted server-side: raw = amount × 10^decimals. Mutually exclusive with amountRaw.
Raw amount as a digit-only string (e.g. "1500000" for 1.5 USDC at 6 decimals). Use this when you already have the bigint to avoid float precision loss. Mutually exclusive with amount.
USD value of tokenIn to spend. Resolved server-side from the live weighted token price. Mutually exclusive with amount and amountRaw.
auto (default) lets the router choose adaptive slippage. A number is a fixed slippage tolerance in % (0-100).
Optional market impact guard in %. If the computed marketImpactPercentage is greater than this value, the quote is rejected with HTTP 400.
User wallet address — signer/source wallet for the swap.
1Solana only. Optional wallet that receives tokenOut. Defaults to walletAddress. Native SOL output is not supported yet with a separate destination wallet.
Deprecated Solana alias for swapRecipientAddress; kept for backward compatibility.
Solana only. Optional wallet that receives the exact final output after the Mobula on-chain router executes the swap and fee/slippage checks. For SPL outputs, Mobula creates the recipient ATA idempotently and closes router-created temporary output accounts when empty. Cannot be combined with destinationWallet.
DEX-level deny list (CSV). Example: pump-amm,raydium.
DEX-level allow list (CSV). Example: uniswap-v3,uniswap-v4.
Pin routing to a single pool (e.g. when you want a specific Uniswap V3 fee tier).
Aggregator filter (CSV) — jupiter, kyberswap, lifi, naos. Omit to let the API pick.
Solana only. Jupiter-compatible priority fee budget. Use auto, a fixed lamport amount, or { "priorityLevelWithMaxLamports": { "priorityLevel": "medium" | "high" | "veryHigh", "maxLamports": 1000000, "global": false } }.
Solana only. Dynamically sizes the compute unit limit from the assembled swap instructions. Default: true.
Solana only. Jito tip in lamports — adds a transfer to one of the Jito tip accounts for fast landing.
Caller referral fee in % (0-99). Mobula skims a 20% platform cut off the top. Requires feeWallet.
Wallet that receives the caller referral fee. Required when feePercentage > 0.
Minimum caller referral fee in native-token units (TON, or SOL on Solana). Floors the referral fee; honored when the fee asset is the native token. Currently honored on TON native-input swaps; requires feeWallet.
Solana only. Mint of a token in which to charge a flat MINIMUM fee (paired with minFeesTokenRaw). Charged via a separate transfer to feeWallet, independent of the swap route. Requires feeWallet.
Solana only. Raw amount (smallest unit) of feeToken to charge as a flat minimum fee. The swap reverts if the user lacks balance.
Solana only. Fee abstraction — separate fee payer from walletAddress. When different, both wallets sign; payerAddress pays transaction fees, priority/Jito tips, and ATA rent for accounts Mobula creates.
Solana only. Optional close authority for non-WSOL ATAs Mobula creates during the swap when payerAddress is used. If omitted, walletAddress remains the close authority. Ignored when no separate payerAddress is provided.
Solana only. true returns N candidate transactions over a durable nonce — race them across landers (Jito, Nozomi, 0slot). Only one commits.
Per-lander tip when multiLander=true. Defaults to each lander's minimum.
When true, reject quotes involving unverified launchpad tokens.