Curve Trades#
| Component | Rate | Goes to |
|---|---|---|
| Protocol fee | 0.95 percent | the protocol's fee recipients, swept permissionlessly |
| Creator fee | 0.30 percent | the coin's creator, its sharing configuration, or its holders |
| LP fee | 0 | the curve has no liquidity providers |
| Total | 1.25 percent |
Rates are expressed on the curve amount before fees. On a buy, the fees are added to what you pay; on a sale, they are deducted from what you receive. Rates are read from the fees module per trade, by market capitalisation tier and quote class. The launch configuration has a single tier, so every curve trade pays the same rates.
Graduation#
| Item | Value |
|---|---|
| Migration fee | 0.5 BNB, deducted from the raised BNB before the pair is seeded |
| Cap | the contract refuses any configuration above 3 percent of the raise at completion (0.510 BNB at the launch curve) |
| Share of the raise | 2.94 percent |
| Who collects it | the withdraw authority, through collectMigrationFee (a pull, see Roles and Governance) |
After Graduation#
PancakeSwap v2 charges its standard 0.25 percent pool fee on trades in the graduated pair. Baofa takes no fee on those trades; there is no hook, no router surcharge and no creator share on the pair. The liquidity provider share of the pool fee compounds into the burned pool.
How Fees Are Paid#
Baofa never pays a recipient inside a trade. Each trade records its fees on the curve and in the fees module; payment happens later through permissionless calls:
| Call | Who can call | Effect |
|---|---|---|
sweepProtocolFee(coin, recipient) |
anyone | moves the coin's accrued protocol fee to one of the configured protocol recipients |
sweepCreatorFee(coin) |
anyone | moves the coin's accrued creator fee to the creator's claimable balance |
collectCreatorFee(quoteAsset) |
the creator | pays the caller's claimable balance |
distributeCreatorFees(coin) |
anyone | pays a sharing configuration's wallets by their shares |
A recipient that refuses plain BNB is paid in WBNB instead, so no recipient can stall a sweep, a claim or a trade. The design follows the rule that a trade must never depend on a third party's willingness to accept payment.
Whitelist Account#
The contracts carry one fee-exempt whitelist account, inherited from the reference design. It is not set at launch (the parameter is the zero address), so every trader pays the same fees. Setting it would be a governance action with its own event.
Changing the Rates#
Fee rates and tiers are set by the protocol admin through the fees module and take effect for subsequent trades. Every change emits an event (UpdateFeeConfigEvent, UpsertFeeTiersEvent) and the contract validates that the three rates sum below the whole trade, refusing a configuration that would mis-charge. Governance process and timelocks are described under Roles and Governance.