Trading

Trading Fees

Complete fee schedule for spot, margin, and perpetual trading on LX DEX

Trading Fees

Specification: LP-9001 DEX Trading Engine

LX DEX uses a maker-taker fee model with volume-based VIP tiers and referral discounts. Makers add liquidity (limit orders resting in the book), takers remove liquidity (market orders or crossing limit orders).

Fee Overview

Trading TypeMakerTakerVIP Discount
Spot0.10%0.20%Up to 60% off
Perpetuals0.10%0.50%Up to 70% off
Margin0.10%0.10%Volume-based

VIP Fee Tiers

VIP tiers are based on your 30-day trailing trading volume across all markets.

Perpetual VIP Tiers

VIP Tier30-Day VolumeMaker FeeTaker FeeSavings
VIP 0$00.10%0.50%Base
VIP 1$1M0.08%0.45%10%
VIP 2$5M0.06%0.42%16%
VIP 3$10M0.04%0.39%22%
VIP 4$25M0.02%0.36%28%
VIP 5$50M0.00%0.27%46%
VIP 6$100M0.00%0.24%52%
VIP 7$250M0.00%0.21%58%
VIP 8$500M0.00%0.18%64%
VIP 9$1B0.00%0.15%70%

Spot VIP Tiers

VIP Tier30-Day VolumeMaker FeeTaker FeeSavings
VIP 0$00.10%0.20%Base
VIP 1$100K0.08%0.18%10%
VIP 2$500K0.06%0.16%20%
VIP 3$1M0.04%0.14%30%
VIP 4$5M0.02%0.12%40%
VIP 5$10M0.00%0.10%50%
VIP 6$50M0.00%0.09%55%
VIP 7$100M-0.01%0.08%60%
VIP 8$250M-0.01%0.07%65%
VIP 9$500M-0.02%0.06%70%

Note: Negative maker fees = rebates (you earn for providing liquidity).

Referral Fee Discounts

Referees receive additional discounts on top of VIP tiers:

Referral TierReferee DiscountCombined with VIP
Tier 15%Stacks
Tier 210%Stacks
Tier 310%Stacks
Tier 415%Stacks
Tier 515%Stacks
Tier 620%Stacks

Combined Discount Example

VIP 5 Perpetual Taker + Tier 3 Referral:

Base Fee: 0.50%
VIP 5 Fee: 0.27% (46% VIP discount)
Tier 3 Discount: 10% off VIP fee
Final Fee: 0.27% × 0.90 = 0.243%

Total Savings: 51.4% off base

See Referral & Rebates for full program details.

Fee Structure by Market

Spot Trading Fees

Fee TypeRateDescription
Maker0.00% - 0.10%Limit orders resting in book
Taker0.06% - 0.20%Market orders or crossing limits
WithdrawalNetwork costPass-through (no markup)

Perpetual Trading Fees

Fee TypeRateDescription
Maker0.00% - 0.10%Limit orders resting in book
Taker0.15% - 0.50%Market orders or crossing limits
Liquidation0.50%Paid to liquidator
FundingVariableEvery 8 hours

Margin Trading Fees

Fee TypeRateDescription
Open Position0.10%Fee on notional when opening
Close Position0.10%Fee on notional when closing
Collateral Swap0.30%Converting between collateral types
Stablecoin Swap0.04%Swapping between stablecoins
Liquidation5.00%Fee paid to liquidator

Fee Calculation Examples

Perpetual Fee Example

Trade: Open 100x Long BTC-USD ($100,000 position)

VIP 0 (Base Tier):
- Taker Fee: $100,000 × 0.50% = $500
- Maker Fee: $100,000 × 0.10% = $100

VIP 5 (Tier 5):
- Taker Fee: $100,000 × 0.27% = $270
- Maker Fee: $100,000 × 0.00% = $0

VIP 9 (Top Tier):
- Taker Fee: $100,000 × 0.15% = $150
- Maker Fee: $100,000 × 0.00% = $0

With Tier 3 Referral Discount (10% off):
- VIP 5 Taker: $270 × 0.90 = $243
- VIP 9 Taker: $150 × 0.90 = $135

Spot Fee Example

Trade: Buy 1 BTC at $50,000 (Market Order)

VIP 0:
- Taker Fee: $50,000 × 0.20% = $100
- Total Cost: $50,100

VIP 5:
- Taker Fee: $50,000 × 0.10% = $50
- Total Cost: $50,050

VIP 9 with Maker Rebate:
- Maker Rebate: $50,000 × 0.02% = -$10 (you earn)
- Total Cost: $49,990

Margin Fee Example

Position: Open $50,000 BTC Long with 5x leverage

Collateral Required: $10,000
Position Fee: $50,000 × 0.10% = $50

If liquidated:
- Remaining Collateral: $500
- Liquidation Fee: $500 × 5% = $25 (to liquidator)
- Insurance Fund: $475

Fee Discounts

LUX Token Discount

Pay fees with LUX tokens for additional savings:

Payment MethodDiscount
Pay in LUX25% off all fees
Stake LUXAdditional 5-20% off

Referral Program

TierReferrer RebateReferee Discount
Tier 15%5%
Tier 210%10%
Tier 315%10%
Tier 420%15%
Tier 525%15%
Tier 630%20%

See Referral & Rebates for full details.

Market Maker Program

Qualified market makers receive enhanced fee structures:

RequirementMaker FeeTaker Fee
2-sided quotes, 95% uptime0.00%0.04%
Tight spreads (under 0.05%)-0.01%0.03%
High volume (over $1B/mo)-0.02%0.02%

See Market Maker Program for details.

Fee API

Get Fee Schedule

import { DEX } from '@luxfi/trading'

const dex = await DEX({ rpcUrl: 'https://api.lux.network/rpc' })

// Get your current fee tier
const fees = await dex.getFees()

console.log(`30-day Volume: $${fees.volume30d}`)
console.log(`VIP Tier: ${fees.vipTier}`)
console.log(`Maker Fee: ${fees.makerFee}%`)
console.log(`Taker Fee: ${fees.takerFee}%`)
console.log(`Referral Discount: ${fees.referralDiscount}%`)
console.log(`LUX Discount Applied: ${fees.luxDiscount}`)

Get VIP Tier Progress

// Check progress to next VIP tier
const progress = await dex.getVIPProgress()

console.log(`Current Tier: VIP ${progress.currentTier}`)
console.log(`Current Volume: $${progress.volume30d}`)
console.log(`Next Tier: VIP ${progress.nextTier}`)
console.log(`Volume Needed: $${progress.volumeToNextTier}`)
console.log(`Days Until Reset: ${progress.daysUntilReset}`)

Calculate Trade Fee

// Pre-calculate fee for a trade
const estimate = await dex.estimateFee({
  symbol: 'BTC-USD-PERP',
  side: 'buy',
  type: 'market',
  size: '100000'    // $100K notional
})

console.log(`VIP Tier: ${estimate.vipTier}`)
console.log(`Base Fee: ${estimate.baseFee}%`)
console.log(`VIP Discount: ${estimate.vipDiscount}%`)
console.log(`Referral Discount: ${estimate.referralDiscount}%`)
console.log(`Final Fee: ${estimate.finalFee}%`)
console.log(`Fee Amount: $${estimate.feeAmount}`)

Fee History

// Get fee history for account
const history = await dex.getFeeHistory({
  startTime: Date.now() - 30 * 24 * 60 * 60 * 1000, // 30 days
  endTime: Date.now()
})

console.log(`Total Fees Paid: $${history.totalFees}`)
console.log(`Maker Fees: $${history.makerFees}`)
console.log(`Taker Fees: $${history.takerFees}`)
console.log(`Rebates Earned: $${history.rebates}`)
console.log(`Referral Discounts: $${history.referralDiscounts}`)

Funding Rates

Perpetual positions are subject to funding rates that transfer between longs and shorts:

ParameterValue
Funding Interval8 hours
Settlement Times00:00, 08:00, 16:00 UTC
Max Rate±0.75% per interval
Typical Rate±0.01% per interval
Funding Payment = Position Size × Funding Rate

Example:
- Long Position: $100,000
- Funding Rate: 0.01% (longs pay shorts)
- Payment: $100,000 × 0.01% = $10

If funding rate is negative, shorts pay longs.

Track Funding Rates

// Get current funding rate
const funding = await dex.getFundingRate('BTC-USD-PERP')

console.log(`Current Rate: ${funding.rate}%`)
console.log(`Annualized: ${(funding.rate * 3 * 365).toFixed(2)}%`)
console.log(`Predicted Next: ${funding.predictedRate}%`)
console.log(`Time Until Settlement: ${funding.nextSettlement}`)

Withdrawal Fees

AssetNetwork FeeMin Withdrawal
BTC0.0001 BTC0.001 BTC
ETHDynamic (gas)0.01 ETH
USDT1 USDT10 USDT
USDC1 USDC10 USDC
LUX0.01 LUX1 LUX

Note: Network fees are passed through at cost. LX DEX does not add markup to withdrawal fees.

Fee Distribution

Trading fees are distributed as follows:

AllocationPercentagePurpose
Liquidity Providers50%LP rewards
Referral Rebates15%Referrer rewards
Protocol Treasury20%Development and operations
Insurance Fund10%Cover liquidation shortfalls
Stakers5%LUX staking rewards

Best Practices

Minimize Fees

  1. Use limit orders - Maker fees are lower (or negative!)
  2. Build VIP volume - Higher tiers save significantly
  3. Use referral code - Additional discount on top of VIP
  4. Pay in LUX - Get 25% discount on all fees
  5. Use post-only - Guarantee maker fee execution
  6. Refer others - Earn rebates on their trading

Fee-Efficient Trading

import { DEX } from '@luxfi/trading'

const dex = await DEX({ rpcUrl: 'https://api.lux.network/rpc' })

// Use limit orders for maker fees
const order = await dex.limitBuy('BTC-USDC', '1.0', '49900.00', {
  postOnly: true  // Reject if would be taker
})

// Check fee before market order
const fee = await dex.estimateFee({
  symbol: 'BTC-USD-PERP',
  type: 'market',
  size: '100000'
})

if (fee.finalFee > 0.2) {
  console.log('Consider limit order for lower fee')
}

Volume Optimization

// Check volume needed for next tier
const progress = await dex.getVIPProgress()

if (progress.volumeToNextTier < 100000) {
  console.log(`Only $${progress.volumeToNextTier} to VIP ${progress.nextTier}!`)
  console.log(`Potential savings: ${progress.savingsAtNextTier}%`)
}