USDC & USDT Smart Contract Blacklist Functions

Technical documentation of how Tether (USDT) and Circle (USDC) freeze addresses on-chain — the exact contract functions, events, and what each one does. Paste any address above to check its live blacklist status.

ETH & TRON: blacklist + sanctions check. BTC: sanctions only.

The USDT smart contract (TRC-20 and ERC-20) freezes addresses with addBlackList(address), unfreezes them with removeBlackList(address), and permanently burns their balance with destroyBlackFunds(address). The USDC smart contract (ERC-20) freezes with blacklist(address) and unfreezes with unBlacklist(address) — it has no burn function, so frozen USDC is locked but not destroyed. Only the token issuer (Tether or Circle) can call these functions.
addBlackList()
USDT Freeze Function
destroyBlackFunds()
USDT Burn Function
blacklist()
USDC Freeze Function
TRON + Ethereum
Networks

Live on-chain data from the official USDT & USDC contracts on TRON and Ethereum, updated continuously.

How It Works

1

The issuer (Tether or Circle) submits a blacklist transaction naming a TRON or Ethereum address.

2

The smart contract flags the address so it can no longer send or receive the token.

3

The contract emits an event — AddedBlackList / DestroyedBlackFunds (USDT) or Blacklisted (USDC) — recorded permanently on-chain.

4

USDTBanList indexes these events in real time and alerts subscribers within seconds.

Features

addBlackList(address) — USDT freeze

Tether Limited calls addBlackList(_evilUser) on the USDT contract (TRC-20 and ERC-20) to freeze an address. It emits the AddedBlackList event. The address can no longer transfer USDT. On Ethereum, the call goes through Tether’s multisig, so a submit precedes the on-chain execution.

removeBlackList(address) — USDT unfreeze

removeBlackList(_clearedUser) reverses a freeze and emits RemovedBlackList. Used after legal review or when an address is cleared. The reading getBlackListStatus(address) returns the current state.

destroyBlackFunds(address) — USDT burn

destroyBlackFunds(_blackListedUser) permanently burns the entire USDT balance of an already-blacklisted address and reduces total supply. It emits DestroyedBlackFunds. This is irreversible — tokens cannot be recovered. Used in criminal seizures.

blacklist(address) / unBlacklist(address) — USDC

Circle calls blacklist(_account) on the USDC (FiatToken) contract to freeze an address and unBlacklist(_account) to release it, emitting Blacklisted / UnBlacklisted. isBlacklisted(address) reads the state. USDC has no burn equivalent of destroyBlackFunds — frozen USDC is locked, not destroyed.

How USDT & USDC Blacklist Functions Work On-Chain

Both USDT and USDC are centrally administered stablecoins: the issuer keeps a privileged role in the smart contract that lets it freeze any holder. This is the mechanism behind every “Tether froze a wallet” headline. The functions are simple, but the difference between the two issuers matters a great deal in practice.

Tether’s USDT contract exposes three blacklist functions. addBlackList(address) freezes; removeBlackList(address) unfreezes; and destroyBlackFunds(address) burns the frozen balance outright, permanently shrinking supply. The burn step is what makes USDT freezes final — once destroyBlackFunds runs, the funds are gone. On Ethereum these calls are gated by a multisig, which is why a “submit” transaction is visible before execution; that gap is the window in which a fast holder can sometimes move funds before the freeze lands.

Circle’s USDC contract is more conservative. blacklist(address) and unBlacklist(address) are the only two levers, and there is no destroyBlackFunds analogue — a frozen USDC address is locked but its balance is never burned. Circle also restricts itself to freezing in response to law enforcement orders and sanctions designations (such as the OFAC SDN list), rather than at its own discretion. The result: roughly 570 USDC addresses have ever been blacklisted, versus more than 9,000 for USDT.

For exchanges, payment processors, and OTC desks, knowing these functions is operational, not academic. Receiving tokens from an address that later gets blacklisted does not freeze your wallet, but it taints the funds and can flag you in compliance screening. The only way to react before a freeze executes is to watch the on-chain events these functions emit — AddedBlackList, DestroyedBlackFunds, Blacklisted — in real time, which is exactly what USDTBanList does.

Frequently Asked Questions

What is the addBlackList function in the USDT smart contract?
addBlackList(address _evilUser) is the function Tether Limited calls to freeze an address on the USDT contract (both TRC-20 on TRON and ERC-20 on Ethereum). After the call, the address cannot send or receive USDT. It emits the AddedBlackList event. Only the contract owner (Tether) can call it.
What does destroyBlackFunds do?
destroyBlackFunds(address _blackListedUser) permanently burns the entire USDT balance of an address that is already blacklisted, and lowers total supply. It emits DestroyedBlackFunds and is irreversible — the tokens cannot be recovered. Tether uses it to confiscate funds in criminal cases.
What is the USDC blacklist function called?
On the USDC (Circle FiatToken) ERC-20 contract the freeze function is blacklist(address _account) and the unfreeze function is unBlacklist(address _account). They emit the Blacklisted and UnBlacklisted events. isBlacklisted(address) returns whether an address is currently frozen.
Is there a wipeBlacklistedAddress function in USDC?
No. The canonical Circle USDC contract on Ethereum mainnet exposes blacklist, unBlacklist, and isBlacklisted — there is no wipeBlacklistedAddress function and no burn-on-freeze. Unlike Tether’s destroyBlackFunds, Circle only freezes USDC; it never destroys a blacklisted balance. (Some other tokens copy USDC’s code and add wipe functions, which is likely the source of confusion.)
Can a blacklisted address be unfrozen?
Yes. Tether calls removeBlackList(address) and Circle calls unBlacklist(address) to release a frozen address, typically after legal proceedings or compliance review. However, if destroyBlackFunds has already burned a USDT balance, unfreezing the address does not restore the destroyed tokens.
How can I monitor these blacklist functions in real time?
Watch the events the functions emit — AddedBlackList, RemovedBlackList, DestroyedBlackFunds for USDT and Blacklisted, UnBlacklisted for USDC. USDTBanList indexes all of them across TRON and Ethereum and pushes alerts within seconds via @USDTBanBot, the web dashboard, and the API.

Related Tools

Monitor USDT & USDC Blacklist Events in Real Time

Get instant alerts when addresses are banned, unbanned, or funds are destroyed.

USDC & USDT Smart Contract Blacklist Function — Documentation | USDTBanList