How to Review a DEX's Fee Disclosure
A conservative way to separate network fees, interface fees and price impact.
This article may contain affiliate links. Commercial relationships are disclosed in the affiliate policy.
A fee disclosure is the part of a DEX or wallet interface that tells you what the trade will cost before you sign it. Reading it properly means decomposing that cost into three separate things — the network fee the protocol charges, the fee the interface keeps, and the price impact the trade itself creates — because only the first two are fees in any meaningful sense, and the third is not a fee at all yet is usually presented in the same breath.
The reason this deserves a fixed routine is that the three components move independently and are billed differently. A wallet can show you a precise network fee and a vague interface fee in the same panel, and the vagueness is where a reader loses track of what they agreed to.
Start by identifying which of the three costs you are looking at
The network fee is set by the chain, not by the exchange. On Ethereum it is gas used × (base fee + priority fee). The base fee is set by the protocol and must be paid for the transaction to be valid at all; the priority fee is the tip you choose to make your transaction attractive to validators. This number is knowable in advance of execution and is set by the protocol plus your own choice, not by the venue.
The interface fee is the venue’s own charge, and this is the one that actually varies between providers. The Ethereum wallet directory published by ethereum.org is a useful illustration of how inconsistently this is disclosed: across the wallets listed, stated swap fees include 0%, 0.03%–0.3%, 0.05%–0.7%, 0.25%, 0.5%, 0.875%, 1%, and buy/sell fees of 1%–3.8%. Several entries are listed simply as “variable”, and at least one reads “not disclosed”.
Price impact is not a fee. It is the cost of your own trade moving the pool against you, and it grows with trade size relative to pool depth. It is also the component most often buried in a percentage next to the fee without ever being named.
A disclosure that shows you a single blended “fee” percentage has collapsed these three into one number. That is the specific thing to catch.
Treat “variable” and “not disclosed” as findings, not as answers
The wallet directory comparison above is the clearest available evidence that fee opacity is normal, not exceptional. When a provider lists its swap fee as “variable”, the disclosure is not wrong — it is incomplete in a way that shifts the entire burden onto you.
The practical question for a variable fee is whether the rate can be read before signing. If the interface can only show a rate after the transaction is submitted, you are not choosing a fee; you are discovering one. If it can be shown before signing, “variable” is acceptable provided the range is bounded and visible.
“Not disclosed” is weaker still. There is no number to check against a competitor and no way to distinguish a competitive rate from an expensive one. Treat an undisclosed interface fee as a cost you have chosen not to measure, and size your trade accordingly.
Check the network fee against the two failure modes, not against the lowest number
The network fee has a specific structure that determines whether you overpay or underpay, and both mistakes are visible in the disclosure.
Paying too little is not free. You set a maximum fee per gas; if it does not cover the base fee plus your tip, the transaction is not valid and will not be included. The base fee adjusts by at most 12.5% per block in either direction, so a max fee set well below the current base fee can be overtaken within a block or two.
Paying too much has a specific refund path. The sender is refunded the difference between the max fee and the actual base fee plus tip, so a generous max fee alone does not guarantee an overpayment — the overpayment happens when the priority fee is set far above what the network currently demands. Unused gas is also returned.
The gas limit is a separate field and has an asymmetric failure mode worth understanding. A standard ETH transfer consumes 21,000 gas. If you set a limit of 50,000 for a simple transfer, the unused 29,000 comes back. If you set 20,000, the transaction is rejected during validation before it is included in a block, and no gas is consumed at all. But if a contract interaction runs out of gas mid-execution, the EVM reverts the changes and still consumes the entire gas provided. A bad gas limit can therefore be free or expensive depending on which of those two paths you hit.
Separate the refund question from the fee question
Most wallets set a recommended fee automatically, combining the base fee with a suggested priority fee. That is convenient and it is also where a reader stops looking, because a pre-filled number has no visible justification attached to it.
To review an automatic figure, decompose it. Is the priority fee the current network demand, or a multiple of it? Is the max fee set high enough to survive a rising base fee for the next few blocks? If the answer to the first is “several times”, the difference is being paid whether or not you notice it.
Ask what happens to the fee when the trade fails
A fee that is charged whether the transaction succeeds or fails changes how you should read a quote. On Ethereum the gas fee is paid regardless of whether a transaction succeeds or fails, so a failed swap still costs the network fee. What a venue may or may not refund is its own interface fee on an unfilled order.
If the disclosure does not say, that is a question to resolve before signing, not after. The network component is a sunk cost either way; the interface component is negotiable in principle and silent in practice.
Write down the three numbers before signing
The habit that makes a fee review auditable is separating the three figures onto one line before committing: network fee in ETH and gwei, interface fee as a percentage, and expected price impact as a percentage. Three numbers, one line, written down.
After the trade settles, the block explorer receipt lets you verify the network component against what you actually paid. Comparing the estimate with the settled figure is the only way to build a realistic expectation for the next trade — and an estimate that is consistently far below the settled cost is a signal about the venue’s quoting, not about your own arithmetic.
What this review cannot tell you
Nothing in the fee disclosure tells you whether the pool you are trading against is honest, whether the token you are buying has transfer fees or honeypot mechanics, or whether the contract you are approving can move your funds later. Those are separate questions with separate checklists, and a clean fee disclosure is not evidence about any of them.
A fee disclosure you can decompose is a sign the venue is willing to be specific about its own economics. It is not a trust signal, and it should not be read as one.