Platforms can now split swap fees across multiple recipients in a single transaction using the Swap and Gasless APIs. No custom contracts, no off-chain redistribution.
March 26, 2026
Feature Release

A platform earns a fee on every swap routed through its app. Partners, affiliates, and distributors driving volume to the platform should all earn a cut. Until now, splitting that fee required off-chain redistribution or a custom smart contract. Integrators building on Coinbase Developer Platform raised this as one of their top requests, but the need extends well beyond any single use case.
The Swap and Gasless APIs now accept multiple fee recipients in a single transaction. Each party gets paid at settlement. No extra transactions or intermediary contracts required.
Fee splitting is controlled by the following query parameters:
swapFeeRecipient accepts one or more wallet addresses, comma-separated. These are the addresses that receive fees at settlement.
swapFeeBps accepts one or more fee amounts denominated in basis points, comma-separated. Each value defines how much the corresponding recipient earns.
swapFeeToken (optional) specifies which token fees are collected in, either the buyToken or sellToken. If omitted, 0x defaults to the buy token, unless the sell token has higher priority (stablecoins or a more liquid asset) or the buy token is ineligible.
The parameters are positionally matchedand co-dependent. The first value in swapFeeBps applies to the first address in swapFeeRecipient, the second to the second, and so on. Both must be present and the same length.
Each fee is delivered directly to the specified address at settlement.
Here's an example where the platform earns 5 Bps and a distribution partner earns 10 Bps on a WETH to USDT swap:
const params = new URLSearchParams({
chainId: "1",
buyToken: "0xdac...",
sellToken: "0xc02...",
sellAmount: "100000000",
taker: "0x70a...",
swapFeeRecipient: [
"0xPLATFORM_ADDRESS", // index 0
"0xPARTNER_ADDRESS", // index 1
].join(","),
swapFeeBps: "5,10", // 5 Bps → index 0, 10 Bps → index 1
// swapFeeToken (optional) defaults to buyToken if omitted
});
const response = await fetch(
`https://api.0x.org/swap/allowance-holder/price?${params}`,
{
headers: {
"0x-api-key": process.env.ZEROX_API_KEY!,
"0x-version": "v2",
},
},
);
const data = await response.json();
data.fees.integratorFees.forEach((fee, i) => {
console.log(`Recipient ${i}: ${fee.amount} of ${fee.token}`);
});
The fees object in the response now includes two fields for integrator fees:
integratorFee (singular) returns the first fee in the list. This is the original field. It is backwards compatible, so existing single-fee integrations will continue to work without requiring code changes.
integratorFees (plural) is a new array containing every fee specified in the request and maps positionally to the swapFeeRecipient and swapFeeBps values.
{
"fees": {
"integratorFee": {
"amount": "49989",
"token": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"type": "volume"
},
"integratorFees": [
{
"amount": "49989",
"token": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"type": "volume"
},
{
"amount": "99978",
"token": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"type": "volume"
}
],
"zeroExFee": {
"amount": "149968",
"token": "0xdac17f958d2ee523a2206206994597c13d831ec7",
"type": "volume"
},
"gasFee": null
}
}
How the request maps to the response:
integratorFee (singular) always matches index 0. For the full breakdown, read from integratorFees (plural).
The same feature applies anywhere multiple parties earn from a single swap:
Marketplace and platform fees: A marketplace charges its fee, and third parties building on that platform charge their own fee independently. Both are collected in a single transaction.
Revenue sharing: A protocol and the frontend that sourced the trade each collect their own fee at settlement. No separate off-chain reconciliation required.
Affiliate and referral splits: A referral link routes a swap through a platform. The referrer earns alongside the platform. No manual payouts.
Copy and social trading: A social trading platform takes a fee. The trader being copied, or the creator who sourced the trade, takes a separate fee. Both parties set their own fee at the API level.
Multi-party treasury distributions: A DAO can now route swap fees to multiple treasury addresses in a single call.
Multi-Fee Support is live today on all supported chains. See the docs for the full API Parameter Reference and additional code examples.
Contents
Subscribe to newsletter