Rate
When a route is chosen, BRDG compares it with the four next-best quotes a wallet could sign and works out how much better it is, on average, in basis points (bps). That saving sets the fee:
Only the four closest competitors count, so a venue with a very poor price cannot push the fee up. If there is nothing to compare against, for example because only one venue serves the route, there is no platform fee. In that case
fees.platform is null and each quote’s feeBps is 0.
Maximum
The platform fee on a single transfer is capped at $10, whatever the rate. BRDG converts the cap into the token you are sending at its own price for that token, andfeeAmountAtomic shows the amount after the cap. If BRDG has no price for the token, the cap cannot be applied and the rate alone is charged.
A referral fee has its own, separate $10 cap. See Referrals.
An integrator share (referralWallet + referralBps) and a user’s referralCode are both accepted on POST /fastfill/quote as well, on the same terms. The one exception: a fast fill the venue relays is gasless, so nothing the user signs can carry an integrator payout, and those rows are quoted at referralBps: 0 with fees.referral: null. The referralCode discount is unaffected.
Referral discount
A user referred through a BRDG referral link, or quoted with areferralCode, pays 10% less platform fee. The rate is rounded down to whole bps in the user’s favour: 5 becomes 4, 10 becomes 9, and 15 becomes 13. No platform fee stays no platform fee. Only the platform fee is discounted; venue fees, gas and any integrator share are not.
What you see in a quote
Every output amount in a quote already has the fee taken off, so the number you show your user is the number they receive. When you build a quote,expectedOutAtomic matches the amountOutAtomic you were shown.
The fee is disclosed in the quote before anything is signed:
bps and amountAtomic are measured in the token you send, and tierSavedBps is the saving that set the rate. When a referral code took 10% off, platform.discount holds the code and the undiscounted fullBps and fullAmountAtomic; otherwise it is null. A null entry means no fee of that kind is charged. Each quote in quotes also carries its own feeBps, feeAmountAtomic and tierSavedBps, because each one saved a different amount.
How the fee is collected
The fee comes out of the transfer itself, inside the one transaction or signed message your user already gives. Your user never pays it in a second token, and never signs a second transaction to pay it. ThefeeCapture field on the build response tells you how:
Send
atomicBatch: true on POST /bridge/build (or POST /fastfill/build) only when the wallet will submit every returned step in one atomic bundle. Leave it out otherwise: the build then carries no fee step at all, and the fee rides the venue’s own transaction or is not charged. A transfer from Tron never carries a fee step.
If a Solana transaction has no room for the extra instruction, BRDG drops the fee rather than the transfer, and feeCapture is none.