Protocol fee
Swift has no protocol fee. Orders filled through Swift, which is most swaps, carry zero. Other methods do charge one, and the rate can change. The live value for any quote is returned asprotocolBps in the quote response, so read it rather than hardcoding it.
Relayer fees
Route-dependent, and returned per quote:
Show
clientRelayerFeeSuccess if you display a cost breakdown. It is already the aggregate.
Earning as an integrator
Set areferrer address and a referrerBps on the quote, then pass the matching referrerAddresses at swap time. The fee is collected onchain.
referrer, whatever the source and destination chains, including EVM to EVM.
referrerAddresses is keyed by network type, because the address that receives the fee depends on which chain it settles on:
Where the fee is paid
Each route collects and pays differently.
Two cases earn nothing. On MCTP, a plain USDC to USDC transfer has no destination swap. On Wormhole Swap, a transfer that does not swap, such as ETH on Ethereum to WETH on Solana, does not qualify either.
Setting the rate
On Swift, MCTP and Fast MCTP, set the rate withreferrerBps on the quote request.
On Wormhole Swap the rate is set onchain instead. Use Referrer Fee Management to set it against your Solana address.
Collecting
Fees transfer to your address automatically on every route except Swift with an EVM source chain. Those accumulate in the fee manager contract, and you withdraw them at explorer.mayan.finance/withdraw-fee-swift.Splitting across wallets
Pass areferrers object to fetchQuote instead, with a bps share per wallet, then pass the same object at swap time. The SDK throws if it does not match the quote. See Fee Splitting.
Next steps
Fee Splitting
Split the referrer fee across several wallets.
Fetching Quotes
Setting
referrer and referrerBps on the quote.