A withdrawal fee comes out of the withdrawal itself
You asked to withdraw, and the platform now says you must pay a fee, a tax or a 'release charge' before it will send your balance. That request is the warning sign.
A real exchange deducts its fee from the amount you withdraw. You receive less than your full balance, and the screen shows the fee before you confirm. On the blockchain, each wallet address has one balance for a given token (a coin such as USDT). A transfer from that address either lowers the balance or does not go through. The token standard has no separate 'release' step where your coins wait for a fee. If a platform says it cannot send your balance until you pay, the platform is the one holding the money back.
The fee ladder: a made-up example of what it looks like
In a made-up example, a withdrawal request is told it needs a small processing fee before it can proceed. The user pays it. The platform then asks for a second fee, larger than the first, citing a new reason: a tax, a compliance charge, a membership tier. A third request follows the same pattern. At no point does the original balance actually move.
Each new request is presented as the last payment standing between the user and their money. The fees go to an address the platform names for that payment, which has nothing to do with the user's balance. The balance on the platform's page stays the same after every fee, so the user is no closer to a payout than before the first one.
Two different problems get lumped into one word, 'fee'
A platform's own commission is already deducted from the amount you see before you confirm the withdrawal. Any request for money outside that confirmed transaction is a separate demand. The balance on screen may also not be real USDT. Tether's USDT exists on exactly one contract address per network, TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t on TRON and 0xdAC17F958D2ee523a2206206994597C13D831ec7 on Ethereum, and a platform showing a 'USDT' balance from any other contract is showing a token that only uses the name.
Checking the contract and the transfer before paying again
Before sending another payment, check the token and the address independently of what the platform's page tells you.
- Find the token contract address the platform lists for your balance. Look on the asset details screen or the withdrawal details screen.
- Compare it character by character against Tether's published contracts: TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t on TRON, or 0xdAC17F958D2ee523a2206206994597C13D831ec7 on Ethereum.
- Search that address on Tronscan if it is a TRON contract, or on Etherscan if it is Ethereum. Each explorer shows the sender, recipient, token contract, amount and time of every transfer.
- Run the platform's domain through the website checker to see whether we have flagged the site, and check the withdrawal address with the wallet checker to see the risk we found for it. A flagged result confirms the warning. A clean result only means we have no record against the site or address. It does not make a demand for a separate payment legitimate, so do not send another payment in either case.
What a matching contract confirms, and what it doesn't
If the contract address matches Tether's published addresses exactly and the explorer lists past transfers of that token, the token is genuine USDT. That tells you about the token only. The platform can still refuse to send it, and a real exchange does not require a new payment to release funds it already shows as yours. If the contract does not match, the balance on screen is a token that only uses the USDT name, and the fee request is how the platform collects real money from you. In both cases, stop paying, especially when each request comes back with a new reason. If you cannot tell whether the contract matches, do not pay until you can.


