πŸ’ΈFees & Spread

Commission

Users will be charged commission when opening and closing positions. The commission rate is uniformly charged at 0.1%.

For example, if a user opens a long ETH position with a margin of 100 USDT and 10x leverage, the opening commission is 100*10*0.1%=1USDT. When the user closes the position, the ETH price rises and the user's position becomes 1100 USDT. The closing commission still is 1000*0.1%=1USDT.

Execution Fee

There are two transactions involved in opening / closing a position:

  1. User sends the first transaction to request open / close, include market / limit / TP/SL order.

  2. keepers observe the blockchain for these requests then execute them.

The cost of the second transaction is displayed as the "Execution Fee". This network cost is paid to the blockchain network.

Funding Fee

Perpetual contracts of CEX use funding rates to balance the price deviation between perpetual contracts and spot to avoid the price of perpetual contracts deviating from the spot price excessively. KiloEx does not have this problem because it uses Oracle Price to calculate the user's opening and closing prices. However, there is another problem that under some market conditions, long and short positions are extremely imbalanced. Long-term imbalance will put Vault at risk. Therefore, funding rates are introduced to alleviate this situation. The funding rate is calculated based on the difference between the system's long and short positions. If long>short, the long position needs to pay the funding rate and the short position receives the funding rate, and vice versa.

In order to better address the issue of high net oi util leading to reduced available open positions for some tokens in a one-sided market, we have decided to cancel the borrowing fee and adjust the funding fee algorithm. This will allow some users to reduce their net oi util through funding farming during one-sided markets. The new funding fee will be calculated as follows:

funding fee = position size * funding_rate

funding_rate = net oi / maxExposure * fundingMultiplier

net oi = long oi - short oi

maxExposure = vault balance * weight ratio

The fundingMultiplier is calculated based on the volatility of the token and updated daily.

Borrowing Fee( Will be cancelled after April 25th, 2024)

Borrowing Fee will be paid entirly to Vault,this helps prevent users from opening both long and short positions to take up pool capacity without paying any fees, meanwhile, it allows traders to use lower leverages while maintaining solid risk management for the protocol.

The calculation of Borrowing Fees is complex. It will consider the volatility of the currency and the current opening amount accounting for the maximum amount that can be opened. The higher the volatility of the currency, the greater the risk Vault bears. The higher the current opening amount accounting for the maximum amount that can be opened, the higher the Borrowing Fee will be

borrow_fee_rate = (product.openInterestLong + product.openInterestShort) / (maxExposureMultiplier * maxExposure) * product.borrowing_factor
product.borrowing_factor = sma(natr, 365) / y
borrow_fee = user.position * borrow_fee_rate * user.position_duration / 365d

product.borrowing_factor is a parameter set for the product. The purpose of sma(365) is to make the value smoother and better reflect the volatility characteristics of the currency. Dividing by y is to make borrowing_factor in a reasonable range.

The sma(natr, 365) of BTC is basically around 5. Take y=5, under the condition of liquidity exhaustion, the annualized maximum value of borrow_fee_rate can reach 100%. For other trading pairs, the values are different according to the different sma(natr, 365).

Spread

Simulate the depth of transactions through a mechanism similar to the AMM of the spot DEX. The AMM parameters are set based on the depth of the entire trading market at the time of product listing of currency pair and can be adjusted according to changes in market depth afterwards.

Through the user's position and AMM parameters, the user's slippage can be calculated. The final transaction price can be calculated using the current oracle price and slippage

Last updated