Key Takeaways
- The number you type into a wallet is not always the number the recipient gets. Value can be removed by the sending platform, by the blockchain itself, or by the token contract.
- The block explorer is the only authoritative answer. The output value recorded on chain against the recipient address is the exact amount received, not the amount shown in your app history.
- Most blockchains do not take the fee out of the transfer amount. On Bitcoin the fee comes out of the sender's inputs, and on Ethereum and similar networks the fee is paid separately in the native coin.
Why the Amount Sent and the Amount Received Are Often Different
You send 0.05 BTC. Your friend says they received 0.04998 BTC. Nothing went wrong, and nobody stole anything. Small differences like this are normal, but almost nobody explains where the missing value went.
The confusion happens because the word "fee" is used for at least three different charges that behave in completely different ways. Some are taken before the transaction is even created. Some are taken by the network. A few are taken by the token itself. Once you know which is which, you can work out the received amount in under a minute.
The Three Places Value Can Be Removed
| Layer | Who charges it | Visible on the blockchain | Effect on the amount received |
|---|---|---|---|
| Platform withdrawal fee | The exchange, broker or custodial app you are sending from | No, it is deducted before the transaction is built | Usually reduces it directly |
| Network fee | The blockchain itself, paid to miners or validators | Yes, shown as the fee field | Usually does not reduce it, see below |
| Token or contract fee | The token's smart contract, or a bridge or payment processor | Yes, but only in the transfer logs | Reduces it when the token charges a transfer tax |
The single most common source of a "missing" amount is the first row. An exchange withdrawal fee is a price set by the company, not by the blockchain. It is often higher than the real network cost, because exchanges batch many customer withdrawals into one transaction and keep the difference.
Who Actually Pays the Network Fee
This is the part that most beginner guides get wrong. On the majority of networks, the recipient's amount is untouched by the network fee.
| Network type | How the fee works | Fee paid in | Does it reduce the recipient's amount |
|---|---|---|---|
| Bitcoin and other UTXO chains | Fee equals total inputs minus total outputs | BTC, taken from the sender's inputs | No, unless the sender chooses to deduct it |
| Ethereum and EVM chains | Gas used multiplied by effective gas price | ETH, BNB, POL and similar native coins | No, the token transfer amount is exact |
| Solana | Base fee of 5,000 lamports per signature plus an optional priority fee | SOL | No, but a first-time token account costs the payer roughly 0.002 SOL, which is refundable |
| Tron | Bandwidth and energy, either staked or paid by burning TRX | TRX | No |
| XRP Ledger | Small fixed fee that is destroyed rather than paid to anyone | XRP, taken from the sender's balance | No |
So if you send 500 USDT on Ethereum, the recipient receives exactly 500 USDT. Your ETH balance falls separately. If you send 0.02 BTC from your own wallet, the recipient's output is exactly 0.02 BTC and the fee comes out of your change.
The main exception is the "send max" or "deduct fee from amount" option. When you empty a wallet, there is no change left to pay from, so the wallet reduces the payment itself.
The Reliable Method: Read the Transaction On Chain
App balances round, delay and sometimes display the pre-fee number. The blockchain does not.
- Get the transaction ID. This is a long string of letters and numbers, called a TXID on Bitcoin and a transaction hash on Ethereum. Your sending app shows it once the transfer is broadcast.
- Open the correct explorer for the correct network. Use mempool.space or blockchain.com for Bitcoin, Etherscan for Ethereum, Solscan for Solana, Tronscan for Tron. A USDT transaction on Tron will not be found on Etherscan.
- Find the output that matches the recipient address. On Bitcoin, look down the output list on the right side. On Ethereum, look at the token transfer row, not the value field at the top.
- Read that value and stop. That number is the exact amount received. Ignore the total input value and ignore the fee line.
- Check the confirmation count. An amount is not final until the transaction is confirmed and, for exchange deposits, credited.
Two Traps When Reading a Bitcoin Explorer
Change outputs. A Bitcoin wallet spends whole chunks of coin called UTXOs. If you spend a 0.1 BTC chunk to send 0.02 BTC, the explorer shows 0.1 BTC going in and two outputs coming out: 0.02 BTC to the recipient and the remainder back to you. People see the 0.1 figure and panic. It is not what you sent.
Batched withdrawals. Exchanges group hundreds of customer withdrawals into one transaction. You may see a transaction with 300 outputs and a large fee. That fee belongs to the whole batch, not to you. Only your one output matters.
Working Out the Amount Before You Send
You do not need to guess. Two formulas cover most situations.
Bitcoin: fee in satoshis equals transaction size in virtual bytes multiplied by the fee rate in sat/vB. A standard one-input, two-output SegWit transaction is about 141 vB. At 12 sat/vB that is 1,692 satoshis, or 0.00001692 BTC.
Ethereum and EVM chains: fee equals gas used multiplied by effective gas price. A plain ETH transfer uses 21,000 gas. A typical ERC-20 token transfer uses roughly 45,000 to 65,000 gas, though it varies by contract.
| Example (illustrative figures) | You enter | Deduction | Recipient receives |
|---|---|---|---|
| Exchange BTC withdrawal, 0.00002 BTC platform fee | 0.05000000 BTC | Platform fee, taken before broadcast | 0.04998000 BTC |
| Self-custody BTC send, 141 vB at 12 sat/vB | 0.02000000 BTC | Fee taken from your change output | 0.02000000 BTC |
| Same wallet using "send max" on a 0.02 BTC balance | 0.02000000 BTC | Fee taken from the payment | 0.01998308 BTC |
| 500 USDT on Ethereum, 63,000 gas at 12 gwei | 500.00 USDT | 0.000756 ETH paid separately | 500.00 USDT |
Other Reasons the Received Amount Looks Wrong
| Cause | What is happening |
|---|---|
| Fee-on-transfer tokens | A small number of tokens charge a percentage tax inside the contract, so the transfer logs show less arriving than leaving |
| Bridges and swaps | Bridging or swapping is not a transfer. Bridge fees, spreads and slippage all apply |
| Deposit crediting rules | Some platforms charge a deposit fee or hold amounts below a minimum threshold |
| Display rounding | Bitcoin uses 8 decimals, most stablecoins use 6, ETH uses 18. Interfaces truncate |
| Dust limits | Very small outputs are rejected by the network as uneconomical to spend |
| Failed transactions | On Ethereum, a failed transaction still consumes gas and nothing arrives |
If the Numbers Still Do Not Match
Work through the layers in order rather than guessing. First, open the fee schedule of the platform you sent from and check the published withdrawal fee for that specific coin and network. Fees differ per network, so USDT on Tron and USDT on Ethereum are usually priced differently on the same platform.
Second, confirm on the explorer that the recipient address in the transaction is the one you intended. Third, if the funds went to an exchange or app, check that platform's deposit page for a minimum deposit amount or a required memo or tag. Deposits sent without a required memo are a common reason funds appear on chain but never arrive in an account balance.
If all three check out and the on-chain output still shows less than expected, the difference is coming from the token contract or from an intermediary such as a bridge, not from the base network.
Quick Checklist
- Note the amount you entered and the fee your app quoted before confirming.
- Copy the transaction ID as soon as it appears.
- Open the explorer that matches the network you actually used.
- Read only the output value assigned to the recipient address.
- Compare that figure against the entered amount and identify which layer explains the difference.
- Wait for confirmations before treating any amount as final.
Once you have done this two or three times, the process takes about thirty seconds and removes most of the anxiety around sending crypto.
Frequently Asked Questions
Does the recipient pay the network fee? On most networks, no. The sender pays it, either from their inputs on Bitcoin or from their native coin balance on Ethereum and similar chains. The exception is when a sender uses "send max" or a platform that deducts its fee from the payment.
Why does the explorer show more coins than I sent? That is almost always a change output. Bitcoin wallets spend whole UTXOs and return the remainder to an address they control. Read the specific output going to the recipient instead of the total.
Why did the recipient get less USDT than I sent? Check three things in order: whether the sending platform charged a withdrawal fee, whether the receiving platform charged a deposit fee, and whether the token has a transfer tax. Standard USDT and USDC do not.
Can I get the fee back if the transaction fails? On Ethereum and similar chains, a failed transaction still consumes gas and the fee is not refunded. On Bitcoin, a transaction that never confirms and is dropped from the mempool costs nothing, because the coins were never spent.
How do I estimate the fee before sending? Check current conditions on a fee tracker such as mempool.space for Bitcoin or the Etherscan gas tracker for Ethereum, then apply the two formulas above. Most wallets show a live estimate on the confirmation screen.
Related Terms
- UTXO: an unspent chunk of coin that a Bitcoin wallet must spend in full.
- Change output: the remainder of a spent UTXO returned to the sender.
- sat/vB: satoshis per virtual byte, the unit used to price Bitcoin block space.
- Gwei: one billionth of an ETH, the unit used to quote Ethereum gas prices.
- Batching: combining many payments into a single transaction with many outputs.
Sources
- Bitcoin Wiki, Weight units and virtual size: https://en.bitcoin.it/wiki/Weight_units
- Solana documentation, Fees: https://solana.com/docs/core/fees
- MetaMask developer documentation, sending ERC-20 tokens and gas limits: https://support.metamask.io/develop/building-with-infura/javascript-typescript/how-to-send-erc20-tokens-ethersjs/
- River Financial, Batching: https://river.com/learn/terms/b/batching/
Further Reading
- mempool.space, live Bitcoin fee estimates and transaction lookup: https://mempool.space
- Etherscan Gas Tracker, current Ethereum gas prices: https://etherscan.io/gastracker
- Solana, Understanding Solana transaction fees: https://solana.com/learn/understanding-solana-transaction-fees
Disclaimer: This article is educational content. It is not financial, investment, tax, or legal advice. Network behaviour, fees, and explorer interfaces change over time, so verify current details against official documentation before relying on them.
Not sure which problem you have?
Use the Fixing Crypto Mistakes hub to identify the transaction, wallet, network, or exchange issue before taking another action.
OPEN TROUBLESHOOTING HUB



