Reading the Receipt Without Counting Twice
Uniswap Labs identifies this transaction as a v3 swap example. Its receipt shows three distinct $USDC movements:
– **Pool output:** The pool transferred 2.326653 $USDC to Uniswap’s Universal Router. – **Fee transfer:** The router sent 0.005816 $USDC to an address Etherscan labels “Uniswap: Fees 2.” – **Wallet receipt:** The remaining 2.320837 $USDC went to the trader.
The fee transfer and wallet receipt reconcile to the pool’s output. Subtracting that fee again from the wallet’s received amount would count the same deduction twice. The receipt’s separate $ETH transaction fee is a network expense, not another deduction from those $USDC transfers.
Pool Fees Depend on the Version
Uniswap’s developer documentation describes swap fees that compensate liquidity providers. For an enabled v3 pool with a 0.05% fee tier, its published breakdown is 0.0375% for liquidity providers and 0.0125% for the protocol. Those components total 0.05%; adding another 0.0125% to the full tier would double-count the protocol’s share.
That is not a universal fee formula. In v4, the core fee calculation takes the protocol fee from the input first, then applies the liquidity-provider fee to the remainder. The protocol charge is not simply carved out of the stated liquidity-provider rate as in the v3 example—a distinction behind the fee-switch debate previously covered by The Defiant.
The documentation also says v4 pools can use dynamic swap fees. Custom hook fees are separate and can coexist with protocol fees. Hooks are code that customizes pool behavior, so the selected pool matters to the charges a trader encounters.
Price Impact and Slippage Are Not Fees
Price impact is the change in a token’s price directly caused by the trade. It depends on trade size relative to available liquidity; a thinner pool can produce a worse execution price without that difference being a fee paid to anyone.
Slippage is the difference between expected and actual execution. Slippage tolerance limits how much worse execution may be than the preview; it is not an automatic deduction. A tighter limit can cause a swap to fail, while a looser one permits fewer tokens to arrive. Measuring realized slippage requires the original quote on the same basis as the received output, not just a transaction receipt.
The route also changes how network costs are paid. For a classic swap, the trader pays the transaction’s network bill separately; Ethereum uses $ETH for this expense. A failed transaction can still incur network costs.
UniswapX instead uses third-party fillers. Its whitepaper explains that fillers submit orders onchain, pay gas on the trader’s behalf and recover those costs through the execution price. That gas should not be subtracted again from the trader’s net output as though the trader also paid it separately.
A required onchain token approval can carry its own network cost. A Permit2 signature, by contrast, does not require a network payment.
