🎫Fees & Spread

Introduction

In line with industry standard, fees are calculated on the value of the total position size (leverage x collateral). It is also worth noting that spread and price impact are only relevant to opening a trade and not to closing.

Fees Breakdown

The "Market/Limit" fee below goes to Buyback & Distribute if the order is a market order, and to oracle bots if the order is a limit order.

Additionally, the referrer rewards are always taken from the "Governance Fund" fees.

Finally, while all trades are open, they may pay a borrowing fee, which goes into the overcollateral layer of the corresponding gToken vault.

Cryptocurrencies

There are 0% spreads on BTC/USD and ETH/USD, and dynamic depending on the price impact formula on all other pairs.

  1. Opening a trade: 0.08%

    • 0.03% -> Governance Fund

      • 0.015-0.02% -> Referrer

    • 0.046% -> Buyback & Distribute

    • 0.004% -> Market/Limit

  2. Closing a trade: 0.08%

    • 0.046% -> Buyback & Distribute

    • 0.03% -> gToken Staking

    • 0.004% -> Market/Limit

Forex (Major)

Spreads on all major forex pairs are fixed at 0.01%.

  1. Opening a trade: 0.012%

    • 0.0045% -> Governance Fund

      • 0.00225-0.003% -> Referrer

    • 0.0069% -> Buyback & Distribute

    • 0.0006% -> Market/Limit

  2. Closing a trade: 0.012%

    • 0.0069% -> Buyback & Distribute

    • 0.0045% -> gToken Staking

    • 0.0006% -> Market/Limit

Forex (Minor)

Spreads on all minor pairs are fixed at 0.01%.

  1. Opening a trade: 0.016%

    • 0.006% -> Governance Fund

      • 0.003-0.004% -> Referrer

    • 0.0092% -> Buyback & Distribute

    • 0.0008 -> Market/Limit

  2. Closing a trade: 0.016%

    • 0.0092% -> Buyback & Distribute

    • 0.006% -> gToken Staking

    • 0.0008% -> Market/Limit

Forex (Exotic)

Spreads on all exotic forex pairs are set per pair depending on their volatility.

  1. Opening a trade: 0.02%

    • 0.0075% -> Governance Fund

      • 0.00375-0.005% -> Referrer

    • 0.0115% -> Buyback & Distribute

    • 0.001% -> Market/Limit

  2. Closing a trade: 0.02%

    • 0.0115% -> Buyback & Distribute

    • 0.0075% -> gToken Staking

    • 0.001% -> Market/Limit

Commodities (Tier 1)

This category currently only includes XAU/USD (Gold). Spreads on all tier 1 commodities are fixed at 0.01%.

  1. Opening a trade (0.05%)

    • 0.01875% -> Governance Fund

      • 0.009375-0.0125% -> Referrer

    • 0.02875% -> Buyback & Distribute

    • 0.0025% -> Market/Limit

  2. Closing a trade (0.05%)

    • 0.02875% -> Buyback & Distribute

    • 0.01875 -> gToken Staking

    • 0.0025% -> Market/Limit

Commodities (Tier 2)

This category currently includes XAG/USD (Silver), WTI/USD (Oil), XPD/USD (Palladium), and XPT/USD (Platinum). Spreads on all tier 2 commodities are fixed at 0.04%.

  1. Opening a trade: 0.08%

    • 0.03% -> Governance Fund

      • 0.015-0.02% -> Referrer

    • 0.046% -> Buyback & Distribute

    • 0.004% -> Market/Limit

  2. Closing a trade: 0.08%

    • 0.046% -> Buyback & Distribute

    • 0.03% -> gToken Staking

    • 0.004% -> Market/Limit

Revenue Distribution

For a Market order, the stream of revenue from fees is allocated as follows:

For a Limit order, the stream of revenue from fees is allocated as follows:

A Market order refers to when an order is manually opened and/or closed, and a Limit order refers to when an order is opened by a limit or stop limit, and/or closed by a take profit, stop loss, or a liquidation. Please note that a trade can be opened manually and closed via a take profit for example, opened via a stop limit and closed manually, and so forth. The open and close fees remain the same for the trader, but the revenue allocation differs depending on how a trade was opened and closed. The Buyback & Distribute category is dynamic, and the current distribution can be found here.

Lifecycle of a Trade

Opening Fee

Let's say we use 250 DAI at 10x leverage to long ETH/USD. The fee is applied to leveraged amount: 2,500 DAI.

2,500 * (0.08/100) = 2 DAI fee

248 DAI is the total collateral value of your newly opened trade, and therefore its total position size is 2,480 DAI.

Fixed Spread

When opening a trade the Chainlink oracle returns a price for the asset, for instance 3,003.19. The spread is then taken into account (0.04%), so the open price would be 3004.39 before consideration of the dynamic spread (see section below).

That is: 3,003.19 + (3,003.19 * 0.04 / 100) = 3004.39

Please make note that the spread is different for each pair - smaller pairs with lower liquidity have a higher spread. It is displayed on the front end next to the Price in the Trade Parameters box, and can be confirmed in the Pairs Storage contract by searching for the relevant pair index.

Dynamic Spread

Dynamic Spread, formerly known as 'Price Impact' is added on top of the fixed spread (if the pair has one). It depends on the open interest of the pair, the position size of the trade being opened, and on the direction of the trade (long / short).

Dynamic Spread (%) = (Open interest {long/short} + New trade position size / 2) / 1% depth {above/below}.

The most in depth discussion of this can be found in the relevant medium article here. Please remember that when this article refers to Price Impact, this is the same thing - but is now called Dynamic Spread.

Cryptocurrencies

Dynamic spreads using the 1% depth in each direction (long: 1% depth above / short: 1% depth below) from Binance, apart from BTC/USD and ETH/USD which use fixed spreads (currently 0%, i.e., no spreads).

Forex

Fixed spreads.

Commodities

Fixed spreads.

ETH/USD Example

So using our above price example with a position size of 2,480 after fees, if the "1% depth above price" parameter for ETH/USD is 8m and there is 100,000 DAI of open long interest:

(100,000 + 2,480 / 2) / 8,000,000 = 0.0126% dynamic spread

This percentage is then applied to the opening price including the Fixed Spread. In the case of crypto, as there is no Fixed Spread, this is just 3,003.19:

Final opening price = 3003.19 + (3003.19 * 0.0126 / 100) = 3003.57

So in this case if the median spot price was 3003.19, the opening price would be 3003.57.

Borrowing Fees

Borrowing fees are applied to trades while they are open.

Borrowing Fee

Borrowing fees treat open trades of the dominant side as vault borrowers. The fee is determined by a pair's (or the group the pair is part of) net OI relative to the overall vault TVL, meaning pairs (or groups) with more lopsided OI will charge more than pairs with balanced OI.

The fee is charged per block on a trade's total position size.

Please refer to the Medium article for further details.

Liquidation Prices

Trades liquidation prices can get closer over time if you pay borrowing fees.

Liquidation Price Distance = Open Price * (Collateral * 0.9 - Borrowing Fees) / Collateral / Leverage.

Liquidation price = If Long: Open Price - Liquidation Price Distance Else (Short): Open Price + Liquidation Price Distance.

For example, let's say that you have opened a long on BTC/USD at 20,000 USD using 100x leverage and 50 DAI collateral, and that you have paid 1 DAI in borrowing fees:

Liquidation Price = 20,000 - 20,000 * (50 * 0.9 - 1) / 50 / 100 = 19,824 USD.

Closing Fee

Let's say ETH/USD went up 1% from the open price, and we close the trade at 3,033.6. The pending profit (PnL) will be 1% of 2480 (our leveraged collateral), which is 24.8 DAI.

Now, we close the trade, and therefore pay the closing fee. Please note that the fees are always applied on the initial position size (without PnL).

2480 * (0.08/100) = 1.984 DAI closing fee

--> 24.8 - 1.984 = 22.816 DAI PnL

Now let's also say that the trade paid 0.5 DAI of borrowing fees:

22.816 - 0.5 = 22.316 DAI final PnL

Therefore, you would receive 270.316 DAI (248 DAI collateral + 22.316 PnL) to your wallet after closing your trade.

Last updated