.. index:: ! fees .. _fees: ########## Flat fee ########## When a swap is traded on the DEX, a flat fee will is charged by the DEX that is fully covered by the swap taker. Per default the flat fee is 0.001 Ether per trade on Ethereum and [TBD] Matic per trade on Polygon. .. _fee_discount: Fee discount ============ A swap taker can reduce or even bypass the fee entirely by owning NFT.org tokens ($NFT). The contract maintains a fee bypass low threshold `felo` and a fee bypass high threshold `fehi`. If the taker owns less than `felo` $NFT tokens, the full flat fee will be charged. If the taker owns equal to `felo` $NFT tokens, then they receive a 10% discount and have to pay only 90% of the flat fee. If the taker owns more than `felo` and less than `fehi` $NFT tokens, then the discount scales linearly from 10% to 100%, respectively. The following list shows examples for fee discounts based on the taker's $NFT token balance: * full flat fee below a 10,000 $NFT token balance, * 90% of flat fee at a 10,000 $NFT token balance, * 80% of flat fee at a 20,000 $NFT token balance, * 70% of flat fee at a 30,000 $NFT token balance, * 60% of flat fee at a 40,000 $NFT token balance, * 50% of flat fee at a 50,000 $NFT token balance, * 40% of flat fee at a 60,000 $NFT token balance, * 30% of flat fee at a 70,000 $NFT token balance, * 20% of flat fee at a 80,000 $NFT token balance, * 10% of flat fee at a 90,000 $NFT token balance, * no fee at a 100,000 or higher $NFT token balance. The `felo` and `fehi` thresholds can be changed by the multisig account. If the taker sends more Ether than was required as a fee, then the excess amount will be returned to the taker by booking a refund to their account on the DEX. The refund can be withdrawn using the `pull` function in the contract. A user can inspect the available withdrawal balance using the contract's `pend` function. Paying the fee ============== The swap is paid by the swap taker, and the amount of Wei of Ether to be paid can be queried using the `fees` function in the contract. This function will inspect the balance of NFT.org tokens of the taker account and applies the discount accordingly.