Is My Wallet Blacklisted? How USDT and USDC Freezes Work on Ethereum

By Merunas Grincalaitis, founder of MEV DAO and a developer who builds MEV, sniping and trading bots on Ethereum. Last updated: October 2026.

TL;DR: On Ethereum, nobody can freeze your ETH, but the issuers of USDT (Tether) and USDC (Circle) can blacklist your address inside their token contracts. You can check it yourself for free: open the USDT contract on Etherscan and call isBlackListed, or open the USDC contract and call isBlacklisted under "Read as Proxy". If it returns true, no wallet, bot or Flashbots bundle can move those tokens, and the only way out is the issuer's own process. A false answer doesn't mean an exchange will accept your deposit, because exchanges run their own risk screening on top.

I get this question a lot from people whose wallets were drained or who received strange tokens. Usually it comes in a panic: "my USDT won't send, is my wallet blacklisted?" Most of the time it's something else, like no ETH for gas or a sweeper bot. But sometimes it really is a freeze, and it helps to know exactly what that means and how to check it in a minute.

What does it mean when a wallet is blacklisted?

A blacklisted wallet is an address that a token issuer has flagged inside its own smart contract, so that token refuses to move from it. It's not an Ethereum-wide ban. Ethereum itself has no blacklist; your ETH, NFTs and most other tokens keep working.

Only tokens whose contracts include a freeze function can do this. The two that matter for most people are:

Some other centralized tokens (tokenized gold, some regulated stablecoins) have similar controls. A random meme coin can also have a blacklist, but that's a different thing, a tax or anti-bot trick by the deployer that I cover in how to detect token taxes and blacklists.

How do I check if my wallet is blacklisted?

Read the flag straight from the token contract. It's free, read-only, and you never connect a wallet or sign anything.

  1. Open the USDT contract's Read Contract tab on Etherscan.
  2. Find isBlackListed (there's also getBlackListStatus, which returns the same thing). Paste your address and click Query.
  3. For USDC, open the USDC contract, go to Read as Proxy (USDC is an upgradeable proxy), find isBlacklisted, paste your address and query.
  4. true means frozen for that token. false means not frozen right now.

If you're comfortable with a terminal, Foundry's cast does the same thing:

# USDT
cast call 0xdAC17F958D2ee523a2206206994597C13D831ec7 \
  "isBlackListed(address)(bool)" 0xYourAddress --rpc-url https://ethereum-rpc.publicnode.com

# USDC (call the proxy address, it forwards to the implementation)
cast call 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 \
  "isBlacklisted(address)(bool)" 0xYourAddress --rpc-url https://ethereum-rpc.publicnode.com

I ran both against a test address while writing this; each returns a plain false/true. Two more checks are worth doing at the same time:

  • The OFAC sanctions list. The US Treasury's Sanctions List Search accepts digital currency addresses. If your address is on the SDN list, that's a much bigger problem than a stablecoin freeze.
  • The token's event logs. On the USDT contract's Events tab you can look for AddedBlackList events. That's how you see when a freeze happened.

Be careful with "free blacklist checker" sites that ask you to connect your wallet or sign something. Reading a public contract never needs a signature. If a site asks for one, close it; that's the same pattern as the wallet drainer approvals I see in rescue cases.

What happens to a blacklisted USDT or USDC balance?

The balance still shows in your wallet, but the token contract rejects any transfer out. The details differ between the two, and they matter:

USDT (Tether) USDC (Circle)
Check function isBlackListed(address) isBlacklisted(address)
Can the frozen address send? No (transfer and transferFrom both check the sender) No
Can it receive? Yes, the Ethereum contract doesn't check the recipient No, transfers to it revert too
Can it approve a spender? Not blocked by the contract, but transferFrom still fails No (approve checks both sides)
Can the issuer wipe the balance? Yes, the owner can call destroyBlackFunds, which zeroes it and reduces supply No burn function on a blacklisted address
Public policy Tether's statements Circle's USDC terms

I pulled the USDT behavior from the verified source on Etherscan: transfer starts with require(!isBlackListed[msg.sender]) and transferFrom with require(!isBlackListed[_from]), while nothing checks _to. USDC's transfer uses notBlacklisted(msg.sender) and notBlacklisted(to) modifiers, so it blocks both directions.

The practical takeaway: a freeze isn't something you can "work around." It's enforced by the token contract on every call, so it doesn't matter which wallet app, RPC, private relay or bundle you use.

Why would Tether or Circle freeze a wallet?

Mostly sanctions, law enforcement requests and hacks. Both companies publish the general rules.

  • Tether says it freezes privately held wallets when it gets a legitimate request from verified law enforcement, and that it doesn't freeze exchange or service wallets (Tether, 2022). Since December 2023 it also voluntarily freezes secondary-market wallets that appear on OFAC's SDN list (Tether, Dec 2023).
  • Circle says in its USDC terms that it can block addresses tied to illegal activity or when it receives a valid government order, under a published blocklisting policy. When Tornado Cash was sanctioned in August 2022, Circle blocked the sanctioned addresses in USDC and explained why (Circle).

Sanctions can also be lifted. OFAC removed Tornado Cash from the SDN list on March 21, 2025. That's a reminder that lists change, so a check is only valid for the moment you run it.

In my rescue work, the freeze I see most often is on the attacker's address, not the victim's. When stolen USDT sits on a hacker's wallet and a victim gets a police report in quickly, Tether can freeze it before it's swapped. I go through that process in can stolen crypto be traced.

My USDT won't send. Is it blacklisted or something else?

Run the check above first, because a frozen balance is rarer than these more common causes:

  1. No ETH for gas. Sending USDT is a contract call that costs ETH. A wallet with stablecoins and zero ETH can't move anything. See how much ETH you need for gas.
  2. A sweeper bot. If any ETH you send disappears within seconds, your key is leaked and a bot is stealing the gas. That's a compromised wallet, not a freeze. Start with the compromised wallet checklist.
  3. A fake token. Scammers airdrop tokens named "USDT" that aren't Tether. Compare the contract address with the official one above. Fake tokens often can't be sold or "require" you to visit a site.
  4. The wrong network. USDT on Tron, BNB Chain or an L2 is a different contract with different rules. The Ethereum check says nothing about those.
  5. An exchange hold. If the funds are on an exchange and withdrawals are blocked, that's the exchange's compliance team, not the token contract.

Can an exchange flag my wallet even if it isn't blacklisted?

Yes. Exchanges screen deposits with their own risk tools, and those don't show up on Etherscan. A wallet can return false on both stablecoin checks and still have a deposit held because it received funds that analytics firms link to a hack, a mixer, a sanctioned address or a scam.

This is why I tell people that a clean isBlackListed result is necessary but not sufficient. Chainalysis used to offer a free on-chain sanctions oracle for this, but its docs now say it's deprecated, with the last update on March 18, 2026, so don't rely on it for current answers.

If you think you received "tainted" funds by accident, the best defense is records: where the funds came from, transaction hashes, and any trade or invoice that explains them. Exchanges ask for exactly that when they review a held deposit.

What can you do if your wallet is blacklisted?

Contact the issuer directly with proof of who you are and where the funds came from. There's no technical route around it.

  1. Confirm it's real. Re-run the check on the official contract and note the block where the AddedBlackList (USDT) or Blacklisted (USDC) event happened.
  2. Move everything else. ETH and other tokens aren't affected. If the freeze is linked to a hack, assume the key is compromised and move unfrozen assets to a new wallet. If a sweeper is active, a Flashbots rescue can still save non-frozen tokens.
  3. Write to the issuer. Tether and Circle each handle freezes through their own support and legal channels. Include the address, the transactions that funded it and identity documents if they ask. If the freeze followed a police request, the case usually goes through that agency.
  4. Ignore anyone who offers to "unfreeze" it. Nobody outside Tether or Circle can change their contract's blacklist. People who claim they can are running a recovery scam, which I break down in crypto recovery scams.

I'll be honest about the odds: if the freeze was ordered by law enforcement, the issuer generally won't lift it without that agency or a court agreeing. Getting documents together early is the only thing that speeds it up.

Frequently asked questions

Can someone freeze my ETH?

No. ETH is Ethereum's native currency and there's no function that lets anyone freeze it in your address. Only tokens whose contracts include a freeze or blacklist function, like USDT and USDC, can be frozen.

How do I know if my address is blacklisted by Tether?

Open the USDT contract (0xdAC17F958D2ee523a2206206994597C13D831ec7) on Etherscan, go to Read Contract and call isBlackListed with your address. True means it's frozen; false means it isn't frozen right now.

Can a blacklisted wallet still receive USDT?

On Ethereum, yes. The USDT contract only checks the sender, so tokens can arrive but can't leave. USDC is different: a blacklisted address can't send or receive it.

Is my wallet blacklisted if a transaction fails?

Usually not. The most common causes are no ETH for gas, a sweeper bot stealing your gas, a fake token, or using the wrong network. Run the contract check before assuming a freeze.

Can a Flashbots bundle or rescue bot move frozen USDT?

No. The freeze is checked by the token contract on every transfer, so it fails the same way inside a bundle. A rescue can only save tokens that aren't frozen.

Do exchanges use the same blacklist?

No. Exchanges run their own screening with blockchain analytics firms, so they can hold a deposit from a wallet that Tether and Circle haven't frozen.


A frozen stablecoin balance is one of the few things I can't rescue, but everything else in a compromised wallet usually can be moved. If your key leaked and a sweeper is stealing your gas, the MEV DAO Token Rescue Bot page explains how a rescue works, or message me on Telegram.

← More on MEV Bot Development All articles