Skip to main content
This guide explains which fees apply when performing a swap, how funds move through a swap transaction, and best practices for implementing custom swap fees.

Fees breakdown

Every swap can incur the following fees:
  • Your custom fee: The extra amount you charge on top of the swap transaction. Arc keeps 10% of this amount. The remaining 90% goes to the fee recipient you configure on the source blockchain.
  • Provider fee: A fee charged by the underlying swap service provider for executing the swap. This fee is 2 basis points (0.02%) of the swap amount.
The total amount your end user pays for a swap includes the swap amount plus all fees above.

Funds flow

The following example shows what happens when a user initiates a swap with a 1% custom fee (1,000 USDC to USDT):
  1. The user initiates a swap for 1,000 USDC to USDT.
  2. Your custom fee of 10 USDC (1%) is configured.
  3. The source wallet signs a transaction for 1,000 USDC.
  4. The 10 USDC custom fee is collected and split:
    • Arc receives 1 USDC (10% of the custom fee).
    • Your configured fee recipient receives 9 USDC (90% of the custom fee).
  5. The swap service provider charges a 2 bps provider fee (0.02%) of the remaining amount. For 990 USDC, this is 0.198 USDC.
  6. The swap executes with a remaining input amount of 989.802 USDC and the user receives the net output amount in USDT.
This flow is illustrated in the following diagram:

Best practices for custom fees

Follow these best practices when implementing custom fees for swaps:
  • Use a fee recipient address in the same network context where the swap originates.
  • Return fee amounts in human-readable decimal format (for example, 0.20 instead of 200000 for 0.20 USDC). App Kit handles base-unit conversion internally.