Skip to main content
POST
Bundle several zap actions (e.g. multiple deposits, or a swap plus a deposit) into a single request. There are two endpoints: /v1/bundle/quote to price the bundle, and /v1/bundle/buildTx to get executable transaction data for it. Both accept the same request body and return the same overall response shape as /v1/quote and /v1/buildTx respectively - the difference is the actions array replaces the single srcToken/destToken pair.

Body

actions
object[]
required
Ordered list of zap actions to bundle. See “Action shape” below.
account
string
required
User account initiating the bundle.
recipient
string
required
Address to receive the final tokens/positions.
refundee
string
required
Address to receive refunds if an action fails partway.
slippage
number
required
Slippage tolerance, in percent. 0.5 = 0.5%.
quotesOnly
boolean
If true, skip building executable transaction steps (only meaningful on /v1/bundle/buildTx).
estimateGas
boolean
Whether to include a gas estimate in the response.
allowedDexes
string[]
Whitelist of swap protocols to consider.
allowedBridges
string[]
Whitelist of bridges to consider.
integrator
object
Integrator fee configuration.

Action shape

Each entry in actions[]:
action
string
required
Action type: swap, bridge, deposit, withdraw, stake, unstake, increase, or harvest.
srcChainId
integer
required
srcToken
object | object[]
required
A single { address: string; amount?: string } or an array of them (for multi-token deposits).
destToken
string
Destination token (or LP/NFT) address. Optional depending on the action.
destChainId
integer
Required for cross-chain actions.
positionDetails
object
NFT-related operation details (e.g. Uniswap V3 LP NFT).
poolDetails
object
Pool-specific details for liquidity operations.
protocol
string
Force a specific protocol for this action instead of auto-selecting the best one.

Response

Both endpoints return the same top-level status field. The data shape depends on which endpoint you call:
status
string
data.approvalData
object[]
Array of approvals to grant before executing (one per token that needs approval; empty if none needed).
data.output
object[]
Final output amount(s) of the whole bundle.
data.dust
object[]
Any leftover/unswept amounts produced by the route. Same shape as data.output items above.
data.path
object[]
Ordered list of route steps.
data.steps
object[]
Only present from /v1/bundle/buildTx. Ordered list of executable transaction steps - sign and submit these in order.

Examples

Last modified on July 14, 2026