bfBTC Fees
Note: Fees are only taken during
requestWithdraw,requestWithdrawNative, and cross-chain actions.
Fee Types
solidity
uint8 private constant FEE_TYPE_EVM = 0; // For EVM chain operations
uint8 private constant FEE_TYPE_NATIVE = 1; // For native chain [Bitcoin] operations
uint8 private constant FEE_TYPE_CROSSCHAIN = 2; // For cross-chain operationsFee Parameters
- Withdraws:
- Percentage Fee
- Fee rate = 0
- Fee precision = 100000
- Actual fee = 0 bfBTC
- Fixed Fee
- Fee rate = 600
- Fee precision = 100000000 (1e8)
- Actual fee = 0.000006 bfBTC
- WithdrawsNative
- Percentage Fee
- Fee rate = 0
- Fee precision = 100000
- Actual fee = 0 bfBTC
- Fixed Fee
- Fee rate = 1200
- Fee precision = 100000000 (1e8)
- Actual fee = 0.000012 bfBTC
- Note: The Fixed Fee on the Hemi network is 2,000 (0.00002 bfBTC).
Fee Structure
solidity
struct FeeConfig {
uint128 percentageFee; // Percentage-based fee (precision: 100000)
uint128 fixedFee; // Fixed fee amount
}Fee Calculation
solidity
function calculateFee(
address user,
uint256 amount,
uint8 feeType
) public view returns (uint256 percentageFee, uint256 fixedFee)Description:
Calculate fees for a specific operation based on user address and amount.
Parameters:
user: Address of the user performing the operationamount: Amount of the operationfeeType: Type of fee to calculate (EVM/Native/Crosschain)
Return Values:
percentageFee: Calculated percentage-based feefixedFee: Fixed fee amount
Calculation Formula:
Notes:
- percentageFee precision is 100000
- Transaction reverts if total fee exceeds operation amount
Fee Events
solidity
event FeeUpdated(uint8 indexed feeType, uint256 percentageFee, uint256 fixedFee);
event FeeWhitelistUpdated(address indexed account, bool status);
event FeeCollected(
address indexed user,
uint8 indexed feeType,
uint256 id,
uint256 amount,
uint256 percentageFee,
uint256 fixedFee
);Additional Information
- Fees are collected in the bfBTC token
- Fee events provide tracking and auditing capabilities
- Whitelist mechanism allows for special cases and promotions
- Fee configuration can be updated based on market conditions