Fee Distribution

All post-graduation fee operations are permissionless — anyone can trigger distribution, and the split is enforced on-chain with no admin override.

Fee Split

When distributeFees(token) is called, the accumulated pendingFees[token] are split:

RecipientShareMechanism
Deployer30%Credited to deployerBalance[token] — deployer withdraws via withdrawDeployerFees()
Platform10%Added to platformBalance — processed via processPlatformFees()
Reinvest60%Swapped into tokens and added as LP via _reinvestAsLiquidity()

Reinvestment Mechanics

The 60% reinvestment share works as follows:

  1. Half the ETH is swapped into tokens via the Universal Router (fee-free internal swap)
  2. The other half ETH + acquired tokens are added as liquidity to the existing LP position
  3. Any leftover token dust is sent to the dead address (burned)
MEV Protection

Reinvestment swaps include slippage protection: the expected token output is estimated from the current spot price, and a minimum output of expected * (1 - 4.8%) is enforced. If a sandwich attack pushes the price beyond this tolerance, the transaction reverts.

Platform Token Special Case

Fees from the platform token's pool go 100% to platformBalance — they are not split 30/10/60. When processPlatformFees() is called, the entire platform balance is reinvested as liquidity into the platform token's pool.

Distribution Thresholds

ThresholdBaseBSCPurpose
DISTRIBUTE_THRESHOLD0.0004 ETH0.0008 BNBMinimum pending fees for reinvestment to execute
PLATFORM_THRESHOLD0.001 ETH0.002 BNBMinimum platform balance for processing

If pendingFees are below the distribute threshold, the deployer and platform shares are still credited, but the reinvest portion is kept in pendingFees until it accumulates enough.

Buy-and-Burn Alternative

Instead of the standard 30/10/60 split, the deployer can choose to use all pending fees for a buy-and-burn operation via buyAndBurn(token). This takes 10% platform fee first (unless it's the platform token), then swaps the rest into tokens sent to the dead address. This is deployer-only and uses all pending fees to prevent platform fee bypass.

Deployer Fee Withdrawal

After distribution, the deployer calls withdrawDeployerFees(token) to withdraw their accumulated balance. Only the registered deployer can call this function.