Blog
7 min readPublished October 21, 2026

Sending USDT to a Blacklisted Address: Why It Can Still Succeed

Ethereum USDT often gates the sender, not the recipient—so outbound can succeed into a locked address. Pre-send isBlackListed checks for desks and P2P.

Stablecoins & Freezeable Assets
Wallet Operations
#wallet-screening
#OTC
#blacklist
#USDT
#Tether
#freeze-risk
#compliance
Sending USDT to a Blacklisted Address: Why It Can Still Succeed

Sending USDT to a blacklisted address can succeed on many Ethereum USDT paths because the classic contract checks the sender (and transferFrom’s _from), not the recipient. The transaction looks fine in the wallet. The receiver’s balance increases. Those tokens then cannot leave while the destination stays blacklisted—and may later face destroyBlackFunds. Desks that only screen their own hot wallet before an outbound miss the trap.

Educational only. Not legal advice. Not a bypass guide. Do not coach “send anyway and dispute.” Pre-send screening of the destination is the control; recovery after a successful send into a blacklist is an issuer/LE process problem, not a wallet bug.

Finance / transfer stand-in — outbound USDT can clear into a locked destination.

Check a wallet before you act

Run a FreezeRadar scan for issuer-freeze signals, sanctions exposure, counterparty risk, and freezeable asset sensitivity before moving funds.

Scan a wallet

Direct answer

On Tether’s widely cited Ethereum USDT implementation, transfer requires !isBlackListed[msg.sender] and transferFrom requires !isBlackListed[_from]. A blacklisted recipient can still receive. That is why toxic inbound keeps arriving after a flag, and why OTC/P2P desks need a pre-send blacklist read on the counterparty address—beyond treasury alone. USDC’s blacklistable module is broader on many deployments (sender/payer/recipient style checks)—never inherit a USDT conclusion onto USDC without a fresh read. TRC-20 USDT is a separate contract and blacklist domain; always name the chain.

Why the wallet UI lies to ops

What L1 seesWhat the contract enforcedDesk translation
Green “Success” / confirmed txSender was not blacklistedOutbound cleared
Receiver balance upRecipient check absent (ETH USDT classic path)Funds may now be trapped at destination
Sender balance downOrdinary debitNot proof destination was clean
Later “can’t withdraw” ticket from counterpartyDestination isBlackListed == trueYou funded a freeze, not a settle

Companion receiver IR (different angle): Received frozen USDT desk IR. This post is outbound control.

Chain and asset differences that break copy-paste playbooks

Ethereum USDT (ERC-20)

Official contract 0xdAC17F958D2ee523a2206206994597C13D831ec7. Public reads: isBlackListed / getBlackListStatus. Privileged writes: addBlackList, removeBlackList, destroyBlackFunds. Sender-side gate on the classic transfer path is the trap’s mechanical root. Secondary industry explainers (ZanoX, BlockSec freeze checker FAQs, NullTX “ghost flag” write-ups) repeat the receive-still-works observation; treat them as secondary and verify against the verified source on Etherscan.

Tron USDT (TRC-20)

Contract TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t is its own blacklist domain. Moving ERC-20 USDT to “avoid” a Tron flag (or the reverse) is not an unfreeze and not a pre-send control. See TRC-20 vs ERC-20 freeze mechanics. Confirm receive behavior on the exact contract you settle—do not assume Ethereum semantics.

USDC (desk contrast)

Circle documents contract-level allow/block-list behavior. On many USDC deployments the restriction reaches further than Ethereum USDT’s sender-only pattern, so a blacklisted USDC address may reject inbound as well. Dual-rail treasuries must screen both assets. Deep links: Tether blacklist check, USDT wallet freeze check.

Pre-send desk control (outbound)

Before P2P release, OTC settle, treasury vendor payment, or “refund” to a customer address:

  1. Freeze the destination string in the ticket (full address, not truncated UI).
  2. Read blacklist on the official USDT (and USDC if relevant) for that chain.
  3. Screen graph risk with a wallet scan—venue holds and multi-hop exposure are separate from the bool flag (before CEX deposit workflow, pre-P2P freeze checklist).
  4. If destination is blacklisted: do not send. Escalate to compliance. Offer an alternate verified receive address only after a clean read.
  5. If destination is clean but AML score / sanctions label is hot: that is the screening plane, not the issuer bool—handle under your policy matrix, still do not “test send.”
  6. Log the read timestamp. Blacklist state can change between quote and release.

Worked composite

Desk agrees to return 35k USDT ERC-20 to a maker’s “personal” address after a failed trade. Maker pastes an address that matches their prior invoices on the first/last characters. Pre-send getBlackListStatus returns true. Release aborted. Maker admits the address was a compromised sweep wallet already flagged. Correct outcome: zero outbound, new KYC’d address, re-screen. Wrong outcome: “tx succeeded, not our problem” after funding a destroy candidate.

After a mistaken successful send

  1. Preserve the success hash and destination blacklist read (before and after).
  2. Stop retrying “maybe it will bounce.”
  3. Notify the counterparty in writing that funds may be issuer-restricted.
  4. Open lawful escalation only through contact issuer / exchange / LE—especially if the destination later shows destroy/burn activity.
  5. Do not hire Telegram “unstuck USDT” services (see the fake-unfreeze warning in this wave).
  6. Update the address book / allowlist so the bad destination cannot be re-selected from history (poisoning-adjacent hygiene).

OTC / P2P release gate (printable)

Use this as an L2 checklist before the “release” button:

  • Destination address pasted from a verified channel (not TX history alone)
  • Full string compared character-by-character to the invoice (middle chars included)
  • Official USDT contract selected for the settle chain
  • isBlackListed / getBlackListStatus = false at T−release (screenshot saved)
  • USDC (if dual rail) screened separately
  • FreezeRadar /scan or equivalent graph screen attached
  • No open sanctions / venue-policy hold notes on that counterparty for this settle
  • Dual control: second operator confirms address + reads

If any box fails, the settle pauses. “Customer is yelling” is not a control override.

What destroyBlackFunds changes about the trap

A successful send into a blacklisted address does more than create a stuck receivable. On Ethereum USDT, destroyBlackFunds is an owner-only step that requires the address already be blacklisted, then zeroes that address’s USDT balance and reduces total supply. Desks that treat trapped inbound as “eventually negotiable inventory” are marking assets that the issuer can later destroy under its authority. Operationally: escalate early, do not keep topping up the same flagged destination “to average a relationship,” and keep freeze vs destroy in the ticket links.

Common objections (and short answers)

“Explorer shows the transfer, so the address is fine.”
Explorers show state transitions. They do not mean the recipient can spend.

“We’ll send a dust test.”
A dust success proves the same sender-gate story. It can still trap the dust and teach nothing safe about a 6-figure release.

“They said Tronscan marked them clean yesterday.”
Blacklist state is per contract and per moment. Re-read at release. Tron ≠ Ethereum.

“Our AML vendor score is green.”
AML scores and issuer bools are different columns—see the blacklist-vs-AML desk brief elsewhere in this wave. Green score + blacklisted destination is still a no-send.

Integration note for automated releasers

If your OTC stack auto-releases on invoice match + balance check, add an explicit issuer-blacklist boolean gate beside AML score. Teams that only gate on “address format valid” and “AML < threshold” will keep funding trapped destinations. Log both the bool and the RPC endpoint used so audits can replay the decision. When the read fails closed (RPC error), fail closed on release—not open.

P2P marketplace edge cases

Marketplace chat often pressures “send first, verify later.” For USDT, verification later may be impossible if the receive address is already flagged. Escrow rules that only check “tx confirmed” are incomplete; they must check destination spendability or accept that the buyer funded a trapped balance. Operators writing dispute policies should define: confirmed-into-blacklist ≠ successful delivery for the purpose of releasing fiat.

Refunds create a second outbound. Screen the refund destination as carefully as the original—attackers sometimes demand refunds to a different lookalike or already-flagged wallet.

Honest limits

Contract reads are authoritative for issuer flags at query time and silent on whether a venue will credit a deposit. Receive-still-works is a property of specific USDT transfer implementations—always re-verify the bytecode path you care about after upgrades. FreezeRadar indexes executed freeze evidence and related risk; it does not guarantee a pre-send screen was done, and it cannot reverse a confirmed transfer into a blacklisted address. This page does not help anyone route around a blacklist.

Key takeaway

A confirmed USDT send is not proof the destination can spend. On common Ethereum USDT paths the blacklist gates the sender; blacklisted addresses can still receive—and trap—what you just paid. Pre-send isBlackListed / getBlackListStatus on the counterparty, plus a /scan for broader risk, before every material outbound.

Cover: Pexels photo 4386372 — finance / transfer stand-in for outbound settlement risk. Pexels License — https://www.pexels.com/photo/4386372/. Light resize long edge 720px + optimize for FreezeRadar. Not an official Tether or Circle diagram.

Sources (5)

Continue exploring FreezeRadar knowledge content.