Not all ERC20 transfer fees come from the Ethereum network. A specific category of tokens includes fee-on-transfer mechanics built directly into the smart contract, meaning the recipient receives less than what was sent — regardless of the network gas fee.
What Are Fee-on-Transfer Tokens?
Fee-on-transfer tokens deduct a percentage from every transaction through a modified transfer() function. For example, a 5% fee-on-transfer token means: if you send 1,000 tokens, the recipient receives 950, and 50 tokens are redistributed (to holders, burned, or sent to a treasury).
Examples of Fee-on-Transfer ERC20 Tokens
Historical examples include SAFEMOON (early versions) with 10% transfer tax, DGX (Digix Gold), and CGT (Contentbox). USDT has a fee mechanism built in that was historically disabled at launch. Many "reflection" or "tokenomics" tokens in the DeFi space use this model.
Always check a token's smart contract or documentation before transferring. A 10% fee-on-transfer token combined with a $5 ETH gas fee can make small transfers extremely expensive in percentage terms.
How It Differs from Gas Fees
Gas fees are paid in ETH to validators and do not affect token amounts. Fee-on-transfer deductions happen inside the token contract and reduce the token amount received. You pay both: the ETH gas fee to the network AND the token fee encoded in the contract.
DeFi Compatibility Issues
Fee-on-transfer tokens are incompatible with many DeFi protocols that expect the received amount to equal the sent amount. Uniswap, for example, requires explicit handling of such tokens. The ERC20 EIP-3214 proposal (2021) aimed to standardize interfaces for fee-on-transfer tokens to improve DeFi compatibility.
How to Check if a Token Has Transfer Fees
Review the token's contract on Etherscan under the "Contract" tab. Look for variables like transferFee, feePercent, or a modified _transfer() function. Reputable token analytics platforms also flag fee-on-transfer tokens with dedicated labels.









