bfUSD Fees
Overview
Fee configurations for bfUSD follow a silent rule: staking, minting, and standard redemption are fee-free, while instant redemption and cross-chain movement carry small factory-set charges. All fee details are exposed through the FeeLibrary helper so that front-ends can display transparent costs.
Fee Library Structures
struct FeeConfig { uint128 percentageFee; uint128 fixedFee; }– each fee type is represented as a percentage (with precision) plus an optional fixed amount.redemptionFee()– returns the applicable fee for standard or instant redemptions, depending on the caller (a whitelist may bypass the percentage portion).crossChainFee()– calculates the share burn required when sending funds via LayerZero, covering cross-chain messaging and settlement costs.
Redemption Fees
Standard redemption:
redemptionFee()returns zero for the default path; the only cost is the epoch wait time and manual claim.Instant redemption: Charges 0.5% of the redeemed bfUSD and is capped by the redeemer's quota. The fee is collected in bfUSD contracts and emitted through
WithdrawalClaimedor immediate redemption events.
Cross-Chain & Other Flows
LayerZero transfers:
crossChainFee()estimates the share-level fee prior to callingsend; the vault also emitsCrossChainFeeCollectedso UIs can highlight the exact cost.Fee events:
FeeUpdated,FeeWhitelistUpdated, andFeeCollectedallow tracking when rates change, when an address is granted discounted treatment, and how much was collected per operation.
Fee Calculation Formula
percentageFee = amount * percentageFeeConfig / FEE_PRECISION
totalFee = percentageFee + fixedFeeThe vault reverts when the total fee exceeds the requested output, ensuring users never receive a negative amount.
Last updated