Skip to main content

Fees

BitChill charges a small protocol fee on each purchase to sustain development and infrastructure.

Fee Structure

Fees are charged during each purchase, not on deposits or withdrawals. The fee is:

  1. Calculated based on the purchase amount
  2. Deducted from the stablecoin before swapping
  3. Sent to the protocol fee collector
  4. The remaining amount is swapped for rBTC

You receive rBTC based on the net amount after fees.

Current Fee Rate

Deployment defaults are 1% flat on each purchase (minFeeRate = maxFeeRate = 100). Live fee values are on-chain and can be changed via handler owner configuration.

Purchase AmountFee RateFee AmountNet Swap Amount
50 DOC1%0.50 DOC49.50 DOC
100 DOC1%1.00 DOC99.00 DOC
500 DOC1%5.00 DOC495.00 DOC

Sliding Scale Fee Model

While current deployment uses a flat fee, the contracts support a sliding scale where larger purchases pay lower percentage fees:

ParameterDescription
minFeeRateLowest fee rate (for large purchases)
maxFeeRateHighest fee rate (for small purchases)
feePurchaseLowerBoundBelow this amount, max rate applies
feePurchaseUpperBoundAbove this amount, min rate applies

The fee rate interpolates linearly between bounds. Fee rates are expressed in basis points (100 = 1%).

Example Sliding Scale

If configured as: minFeeRate=50, maxFeeRate=150, lowerBound=100, upperBound=1000

PurchaseFee Rate
50 tokens1.5% (max)
550 tokens1.0% (midpoint)
1000+ tokens0.5% (min)

What's Not Charged

BitChill does not charge fees for:

  • ✅ Depositing stablecoins
  • ✅ Withdrawing your stablecoin balance
  • ✅ Withdrawing accumulated rBTC
  • ✅ Creating or modifying schedules
  • ✅ Withdrawing accrued interest

Gas Costs

Automated Purchases

The BitChill swapper infrastructure pays gas for executing your scheduled purchases. You don't pay gas for the actual swap transactions.

User Transactions

You pay gas for transactions you initiate (create, update, withdraw, delete). Gas usage varies by action and network conditions.

Fee Transparency

All fee parameters are on-chain and publicly queryable:

handler.getMinFeeRate()
handler.getMaxFeeRate()
handler.getFeePurchaseLowerBound()
handler.getFeePurchaseUpperBound()
handler.getFeeCollector()

Next Steps