Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.arc.network/llms.txt

Use this file to discover all available pages before exploring further.

You can configure your swaps to collect a custom fee from end users on each swap call. For how custom fees fit into the overall fees breakdown, see How swap fees work.
If you use this feature, Arc keeps 10% of the custom fee you collect from your end users.

Prerequisites

Before you begin, ensure that you’ve: These are required so any example below runs with a valid kit and adapter.

Set a custom fee on a swap

This example adds a 1% (100 basis points) fee to a single swap call:
TypeScript
import { AppKit } from "@circle-fin/app-kit";
import { createViemAdapterFromPrivateKey } from "@circle-fin/adapter-viem-v2";

const kit = new AppKit();

const adapter = createViemAdapterFromPrivateKey({
  privateKey: process.env.EVM_PRIVATE_KEY as string,
});

const output = await kit.swap({
  from: { adapter, chain: "Arc_Testnet" },
  tokenIn: "USDC",
  amountIn: "1.00",
  tokenOut: "EURC",
  config: {
    kitKey: process.env.KIT_KEY as string,
    customFee: {
      percentageBps: 100, // 1% fee
      recipientAddress: "0xYourFeeRecipientAddress",
    },
  },
});