Jupiter Swap logo

Catalog action Solana Onchain wallet swap

Execute a token swap on Solana via Jupiter, the leading DEX aggregator. Automatically finds the best route across all Solana DEX pools for any SPL token pair. Ideal for: automated swaps, portfolio rebalancing, DCA strategies, and token distribution on Solana.

This action can require a wallet connector, gas, token movement, or an external side effect. Test with simulation or a controlled amount before using it in a live workflow.

At a Glance

FieldValue
Action IDjupiter-swap
CategorySolana Onchain
Connectorwallet
Requires gasNo
Funds movementswap
Tagsblockchain, solana, swap, jupiter, dex, trade, write

Payload Schema

FieldTypeRequiredDescription
inputMintstringYesContract address of the token you want to sell (e.g., the USDC or SOL mint address). Find it on Solscan or Jupiter.
outputMintstringYesContract address of the token you want to buy (e.g., the USDC or SOL mint address). Find it on Solscan or Jupiter.
amountstringNoAmount of the input token to swap, in human-readable format (e.g., "1.5" for 1.5 USDC). Supports full token precision.
rawAmountstringNoRaw amount in smallest unit (alternative to 'amount' for chaining from jupiter-quote). If provided, 'amount' is ignored.
slippageBpsnumberNoMaximum acceptable price difference in basis points. 50 = 0.5%, 100 = 1%. Default: 50 (0.5%).
allowUnverifiedTokensbooleanNoAllow swapping tokens not on the Jupiter verified list. Only applies to automated workflows. Manual executions always allow all tokens.
chainIdnumberYesSolana network (Mainnet or Devnet)

Result Schema

FieldTypeRequiredDescription
statusstringYes-
signaturestringYesTransaction signature (base58 encoded)
transactionHashstringYesTransaction hash (same as signature, for workflow engine compatibility)
inputMintstringYesInput token mint address
outputMintstringYesOutput token mint address
inputAmountstringNoInput amount in smallest unit (e.g. atomic units for SPL tokens)
outputAmountstringNoQuoted output amount in smallest unit (pre-slippage estimate, not confirmed received amount)
formattedInputAmountstringNoHuman-readable input amount (e.g. '1.5')
formattedOutputAmountstringNoHuman-readable output amount (pre-slippage estimate, not confirmed received amount)
inputSymbolstringNoSymbol of the input token (e.g. 'SOL', 'USDC')
outputSymbolstringNoSymbol of the output token (e.g. 'USDC', 'BONK')
priceImpactPctstringNoPrice impact as a percentage string (e.g. '0.01')
slotnumberNoSlot number where the transaction was confirmed
chainIdnumberNoChain ID where the transaction was executed

Examples

json
{ "type": "jupiter-swap", "payload": { "inputMint": "example-inputMint", "outputMint": "example-outputMint", "chainId": 7565164 }, "children": [], "connector": { "type": "wallet", "id": "conn_wallet" }}

Payload fields can use workflow expressions such as {{$trigger.body.amount}}, {{$nodes.fetch.result.price}}, and {{$props.asset}} when the value should come from a trigger, prior node, or reusable workflow prop.

Ask a question... ⌘I