---
layout: doc
title: Fees
---

# Dexorder Fee Schedule

## Fill Fee

Dexorder charges the same fee as the Uniswap pool you trade, capped at a maximum of 0.15%.

| Uniswap Pool Fee | Dexorder Fee | Total Fee |
|------------------|--------------|-----------|
| 0.01%            | 0.01%        | 0.02%     |
| 0.05%            | 0.05%        | 0.10%     |
| 0.30%            | 0.15%        | 0.45%     |
| 1.00%            | 0.15%        | 1.15%     |

## Gas Fees

To execute multi-tranche orders at various future times, Dexorder charges an up-front gas fee to cover the cost of all future smart contract calls required to fill your order. These gas fees depend on how many
tranches are in your order and whether the order triggers a conditional order (stop-loss or take-profit). These
gas fees are collected in native currency (ETH) and are included in your initial order placement transaction.
This means your wallet will display the total gas cost for your entire order when you first place it.

Once you place your order, you will never be charged additional gas fees. Dexorder's up-front gas charge is
treated like an insurance fund, guaranteeing future execution of your order, even if the price of gas increases
significantly. If your order does not execute all of its tranches or is cancelled, the gas fee is not refunded.

Dexorder does not aim to profit from gas fees; they are designed to only cover the actual cost of triggering your order multiple times in the future.

The formula for computing your gas cost is:

```python

# Standard order without any conditional order
estimatedExecutions = numberOfTranches / rateLimit
totalGasCost = trancheFee * estimatedExecutions

# Order which triggers a conditional order (stop-loss or take-profit)
estimatedConditionalExecutions = estimatedExecutions * numberOfConditionalTranches / conditionalRateLimit
totalGasCost = (trancheFee + orderFee) * estimatedExecutions + trancheFee * estimatedConditionalExecutions

```

`trancheFee` and `orderFee` are specified by the `FeeManager` contract and may be adjusted hourly. These fee adjustments have important limits and cannot be set to arbitrarily high values. See the [FeeManager](https://github.com/dexorder-trade/contract/blob/master/src/core/FeeManager.sol) source code for details on security measures.

The `estimatedExecutions` is computed as the number of tranches in the order, divided by any rate limit. For
example, if the rate limit is 20% per hour, then there will be at least 5 executions required to fill the total
amount, so the number of tranches is multiplied by 5 (same as dividing by 20%).

View the [source code](https://github.com/dexorder-trade/contract/blob/master/src/core/OrderLib.sol#L20) for fees.
