Comment on page
Fees and Spread
Fees and spreads charged by the protocol
A base spread is considered to simulate a bid/ask spread on a CLOB exchange for execution price. Currently, a base spread of 0.025% is applied on the spot price returned from oracle. Spread only applies when opening a trade
Price impact is implemented to simulate execution price in a CLOB exchange mechanism and protects NLP holders from directional skew. As such, we take the current aggregate open interest on the platform plus half of the trade position size, divided by 1% of order book depth on a reference exchange. It is calculated as follows:
Note: Price impact never applies when closing a trade
For crypto, 1% depth is calculated as the 1% depth of Binance multiplied by 2. Our pricing oracle uses the median price of 7 centralized exchanges, hence multiplying the depth of the most liquid exchange by 2 serves as a conservative measure
For stocks, the 1% depths are set at $10m (tier 1), $5m (tier 2), and $2.5m (tier 3) in both directions (long/short).
There is no price impact for FX.
1% depth above: $20M
Long open interest: $500k
New trade position size: $200k (collateral x leverage)
The price impact (%): 500k + 200k/2 20m = 0.03%
Then add the spread (0.025%) → 0.03% + 0.025% = 0.055%.
Borrowing fees simulate borrowing costs as the Narwhal platform provides synthetic leverage, and maintains solid risk management for the protocol.
Rollover fees are charged on the initial collateral of the trade and are tallied on a per-block basis. The rollover fee rate is annualized and then divided as a per-block fee, which assumes the BNB chain processes 28,800 blocks per day, or 10,512,000 blocks per year.
Rollover fees should vary depending on the volatility of the underlying assets being traded, which is measured using the average true range (ATR) indicator, expressed as a percentage over the average closing price (ATRP):
X = 1.25
Y = 20
10,512,000 is number of blocks per year on BNB Chain.
Current block: 1,010,000
Trade open block: 1,000,000
Rollover fee %: 157% = 0.00001% per block
Rollover fee = (1,010,000 - 1,000,000) * 0.00001/100 * 1,000 = 1
To book perpetual exchanges, a funding rate is introduced to incentivize perpetual prices to trade at par to spot prices through a funding rate mechanism, where longs pay shorts if contracts are traded at a premium to spot, and vice versa. Narwhal Finance uses oracle-based pricing but includes a funding fee to incentivize neutral long-short skew to protect NLP holders better. Similar to rollover fees, funding fees are charged per-block basis. However, fees are charged on the total position size rather than the initial collateral.
X = 1.25
Y = 60
Blocks per year on BNB 10,512,000, and on Arbitrum 126,144,000
ATR: Average True Range; calculated as:
If the value is negative, it is added to the trade value just like positive PnL, and the liquidation price goes further away. If the value is positive, it is removed from the trade value just like negative PnL, making the liquidation price closer.
However, if the funding fee rate per block corresponds to 40% per year, it doesn’t mean that 40% will be charged at all times. It will only be the case if there is 0 exposure on the opposite side, as the funding rate is only applied to the net exposure of the pair.
For example, if there is $1m long exposure and $500k short exposure on this pair, the funding fees paid will be ($1m — $500k) * 40 / 100 = $200k per year, which represents a cost of 20% / year for longs and a reward of 40% / year for shorts.