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
With a single referrer wallet, the fee transfers straight to your address when the order completes, except on two routes that credit it to the fee manager contract instead:- Swift with an EVM source chain. The fee is credited when the order is unlocked on the source chain, in the locked source asset.
- Same-chain swaps on EVM chains.
- The token is USDC, USDT or ETH.
- The balance is at least 10 USDC, 10 USDT or 0.01 ETH.
- You earned a fee in that token on that chain in the last 24 hours.
withdrawFee(token, amount) on the fee manager from that wallet, with the zero address as token for ETH.
If you split the fee across wallets, it is credited to a shared address derived from your wallet list rather than to any one wallet. The same automatic payout divides it among the wallets by their bps share, under the same conditions.
To track all of this, sign in with your referrer wallet, EVM or Solana, at explorer.mayan.finance/referrer-dashboard. It sums your balances across every chain, including your share of any split, and shows what has been paid out and why any balance is not being paid out.
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.