Adding Fees#
The OKX DEX API supports configuring referral fees and fee-receiving addresses for token swaps
You can extend the implementation to include fee parameters in your swap quotes and charge up to 3% per swap from your users.
The OKX DEX API plans to take a certain percentage of the referral fee charged by you to your users. Currently the OKX DEX API charges no fees.
Note
Ton chain currently does not support commission splitting.
// Extended quoteParams with fee support
const quoteParams = {
chainId: SOLANA_CHAIN_ID,
amount: rawAmount,
fromTokenAddress,
toTokenAddress,
slippage: "0.5",
userWalletAddress: userAddress,
// Fee-related parameters
fromTokenReferrerWalletAddress: "Your_REFERRER_WALLET_ADDRESS", // Optional: Referrer address for commissions based on fromToken
toTokenReferrerWalletAddress: "REFERRER_WALLET", // Optional: Referrer address for commissions based on toToken
feePercent: "1.5", // Optional: Commission percentage (0-3%, max 2 decimal points)
} as Record<string, string>;
Important Fee Configuration Notes:
- The feePercent parameter must be between 0 and 3%
- Maximum 2 decimal points are supported for feePercent E.g. 1.326% is the actual input, but the final calculation will only adopt 1.32%
- For Solana , the commission address must have some SOL deposited for activation
- Each transaction can only choose commission from either the fromToken or the toToken
Example Usage with Fees:
// .. Previous code implementation
// Get swap quote
const quoteParams = {
chainId: SOLANA_CHAIN_ID,
amount: rawAmount,
fromTokenAddress,
toTokenAddress,
slippage: "0.5",
userWalletAddress: userAddress,
// Additional Fee params
fromTokenReferrerWalletAddress: "fee-recipient-wallet-address",
feePercent: "1",
// The wallet addresses to receive the commission fee (Each transaction can only choose commission from either the fromToken or the toToken)
// toTokenReferrerWalletAddress: "fee-recipient-wallet-address",
// fromTokenReferrerWalletAddress: "fee-recipient-wallet-address",
} as Record<string, string>;
const timestamp = new Date().toISOString();
const requestPath = "/api/v5/dex/aggregator/swap";
const queryString = "?" + new URLSearchParams(quoteParams).toString();
const headers = getHeaders(timestamp, "GET", requestPath, queryString);
const response = await fetch(
`https://www.okx.com${requestPath}${queryString}`,
{ method: "GET", headers }
);
const data = await response.json();
// .. Continue code implementation
Command Line Usage with Fees:
# Example: Swap .01 SOL to USDC with 1.5% fee to referrer
npx ts-node swap.ts .01 11111111111111111111111111111111 EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --referrer YOUR_REFERRER_ADDRESS --fee 1.5
Fee Calculation Example: For a trade of 100 USDC with a 1.5% fee:
- Fee amount: 1.5 USDC (1.5% of 100 USDC)
- Actual swap amount: 98.5 USDC
- The fee (1.5 USDC) will be sent to the referrer address