How It Works
- You submit a transfer with fees on the source chain
- Relayers detect your transfer and verify it’s profitable
- A relayer finalizes the transfer on the destination chain
- The relayer claims your fee as payment
Getting a Fee Quote
Including Fees in a Transfer
Pass the fee values tovalidateTransfer():
Two Ways to Pay
You can pay fees in the transfer token, the native token, or both:Token Fee
Paid in the token you’re transferring. Deducted from the amount.Native Fee
Paid in the source chain’s native token (ETH, NEAR, SOL). Recipient gets the full amount.Combined
Split between both. Useful for optimizing costs.Fee Factors
Fees depend on:- Source chain — Gas costs for proof verification
- Destination chain — Finalization costs
- Token — Some tokens have different fee structures
- Amount — Large transfers may have percentage-based fees
Fee quotes are valid for a limited time. Fetch a fresh quote right before sending large transfers.
UI Pattern
Show users what they’ll receive:Updating Fees on Stuck Transfers
If your transfer isn’t getting picked up (fee too low, market changed), you can increase the fee:- Only the original sender can update token fees
- Fees can only increase, never decrease
- Attach the difference when increasing native fees
Without Fees
Set both to zero:Error Handling
Next Steps
Track Status
Monitor your transfer’s progress
Manual Finalization
Finalize without relayers