Comment on page
🎫

Fees & Spread

Topics covered in this section:

Dynamic Spread

When you place simple Up/Down orders on, Buffer includes a spread in to the strike price. The price impact will be specific for each pair, and will also be different on each side (Up/Down). Hence, the opening price for an option now slightly exceeds the current price for "up" options and slightly undershoots it for "below" options.
Goal: to protect the volatility surface i.e. remove spot oracle manipulation risk, LP protection and allowing listing pairs with lower liquidity.
Note: Spread never applies when closing a trade.

Calculation:

Spread as a function of implied volaitlity (iv) proxied as historical volatility and open interest (oi) scales linearly from the lowest value which is 0.4 basis points at 2.5% hv to 0.8 basis points at 16% hv. Then this lowest value of spread increases linearly to 1.5 (spreadFactor) times the lowest value as utilization of that market increases.
​
The formula is as follows:
Spread=(m⋅hv+c)⋅(1+spreadFactor⋅totalMarketOImaxOI) \text{{Spread}} = \left( m \cdot \text{{hv}} + c \right) \cdot \left(1 + \frac{{\text{{spreadFactor}} \cdot \text{{totalMarketOI}}}}{{\text{{maxOI}}}} \right)
Where:
  • ​
    mm
    is the rate change of spread with historical volatility
m=0.8−0.40.16−0.025 m = \frac{{0.8 - 0.4}}{{0.16 - 0.025}}
  • ​
    cc
    is the base spread at minimum volatility
c=0.4−(m⋅0.025) c = 0.4 - (m \cdot 0.025)
  • ​
    hvhv
    is the historical volatility*
  • ​
    spreadFactorspreadFactor
    is the factor by which the spread is adjusted based on market utilization.
  • ​
    totalMarketOItotalMarketOI
    is the total open interest in the market.
  • ​
    maxOImaxOI
    is the maximum open interest allowed in the market.
It means the open price of all trades will still follow the strike price of the pair, but depending on the open interest on the pair it will be higher (Up) or lower (Down).
*Buffer uses a historical volatility as a proxy for implied volatility.
How does hv work?
Historical Volatility calculated using garman-klass from the OHLC data obtained from Pyth. The hv values are continuously monitored for all the markets. These values are edited on-chain if the new values are 10% different from the values set in the contracts.

Dynamic Pricing

Buffer employs a "Dynamic Pricing" mechanism to incentivize or penalize traders, with the aim of maintaining balance in the Open Interest (OI) across various markets and promoting diversification among traders.
Dynamic pricing is designed to impose higher fees during periods of market volatility. The fee is applicable to all trades and dynamically scales, influenced by trading volume, and payouts.
With this mechanism in place payouts can range between a maximum dynamic of 90% to a minimum dynamic of 75% or lower.
Configs:
Pair
C (Spread factor)
Max Payout %
Initial Payout %
BTC/USD
500
90
75
ETH/USD
500
90
75
GBP/USD
500
90
75
EUR/USD
500
90
75
XAU/USD
500
90
75
XAG/USD
500
90
75

Settlement Fee Distribution:

Based on the trading pool a %age of the fee collected is distributed to BLP holders and BFR stakers.
This fee goes to the Settlement Fee Disbursal (SFD) Contract. SFD contract transfers this fee to the reward distributor contracts of staking.
The protocol uses the chainlink keeper to distribute the fee accumulated in the SFD contract to the respective distributors every Wednesday at 12:00 UTC.
Pool
LPs
aBLP
70% to LPs, 15% to BFR stakers, 15% held in treasury for incentives
uBLP
60% to LPs, 40% to BFR stakers
BFR (only supported on the Classic Buffer App)
50% Burned (until max supply of 50M BFR is reached), remaining 50% held in treasury for v2.5 incentives

Keeper Fee

Placing Up/Down trades on Buffer incurs a flat fee for interactions with the Buffer keeper to compensate for the gas paid to the underlying blockchain while allowing for a 2x faster 1 Click trading experience.
Keeper fees are as follows:
  • Placing an Up/Down trade: 0.1 USDC (flat)