Build an unsigned swap transaction from a quote.
Visibility modes:
visibility: "public" (default) — pure pass-through to the Jupiter/Metis upstream. The returned transaction is whatever the upstream produces.visibility: "private" — the server forces Jupiter’s output into a program-owned stash ATA (deterministically derived from (userPublicKey, quoteResponse.outputMint)), prepends an idempotent ATA-create, and appends a schedule_private_transfer instruction that registers a one-shot Hydra crank. When the crank fires, it self-CPIs into the on-chain private-transfer flow to deliver the swapped tokens to destination with the requested delay/split policy. The returned transaction is a v0 VersionedTransaction that is still unsigned — the client signs and submits.When visibility = "private", the fields destination, minDelayMs, maxDelayMs, and split are required. clientRefId and validator are optional. Explicitly setting destinationTokenAccount to anything other than the server-derived stash ATA returns 400.
Public key of the wallet that will sign the swap transaction.
"3rXKwQ1kpjBd5tdcco32qsvqUh1BnZjcYnS5kYrP7AYE"
Quote response from GET /v1/swap/quote.
Optional fee payer for transaction fees and rent.
"3rXKwQ1kpjBd5tdcco32qsvqUh1BnZjcYnS5kYrP7AYE"
Automatically wrap and unwrap native SOL when needed.
true
Allow shared accounts for intermediate routing state.
true
Optional initialized token account used to collect platform fees.
Optional public key used for downstream transaction tracking.
Optional priority fee configuration or fixed lamport amount.
x >= 0Build a legacy transaction instead of a versioned one. Not allowed when visibility = "private".
Optional destination token account for the output mint. When visibility = "private", this is server-controlled and must match the derived stash ATA.
Optional destination account for native SOL output. Not supported when visibility = "private".
Estimate compute usage and set the compute unit limit automatically.
Skip extra RPC checks for required user accounts.
Let the upstream swap builder overwrite slippage on the transaction.
Optional exact compute unit price in micro-lamports.
x >= 0Optional transaction expiry window in slots.
x >= 0Optional positive slippage collection settings.
public (default) proxies Jupiter/Metis as-is. private routes the output through a scheduled private transfer.
public, private "public"
Final private-transfer recipient (wallet pubkey). Required when visibility = "private".
Earliest (ms) the queued transfer may settle. Required when visibility = "private".
^\d+$"0"
Latest (ms) the queued transfer may settle. Required when visibility = "private". Must be >= minDelayMs and <= 600000 (10 minutes).
^\d+$"60000"
Number of queue entries to split the transfer across. Required when visibility = "private". Must be between 1 and 14.
1 <= x <= 14Optional u64 client correlation id attached to each queued split.
^\d+$Optional validator pubkey for the transfer-queue PDA. Defaults to the well-known MagicBlock validator (MAS1Dt9qreoRMQ14YQuhg8UTZMMzDdKhmkZMECCzk57).
Swap transaction