Skip to main content
Smart Contract Risks5 min read

Token Freeze (Transfer Pause)

An owner-controlled function that pauses all token transfers, preventing every holder from selling or moving their tokens until the owner unpauses.

What Is a Token Freeze?

A token freeze (also called a transfer pause) is a smart contract function that lets the token owner pause all token transfers. When paused, no one can buy, sell, or transfer the token — every transfer transaction reverts. The owner can unpause at any time, but in a scam, they never do.

This is distinct from a blacklist, which blocks specific wallets. A pause blocks everyone at once. It is the nuclear option — total control over whether holders can exit.

How Transfer Pauses Work

The contract typically uses OpenZeppelin's Pausable pattern or a custom equivalent:

bool public paused;

function pause() external onlyOwner {
    paused = true;
}

function _transfer(address from, address to, uint256 amount) internal {
    require(!paused, "Transfers are paused");
    // ... transfer logic
}

When the owner calls pause(), the paused flag is set to true, and every subsequent transfer fails with "Transfers are paused." The owner can callunpause() to re-enable transfers, but in a scam, they never do.

The Freeze-and-Drain Attack

The most common scam pattern using a pause function is:

  1. The team launches the token with a pause function (but does not mention it).
  2. They build hype, attract buyers, and the price rises.
  3. At the peak, they call pause() — no one can sell.
  4. While transfers are paused, they drain the liquidity pool (since LP withdrawal does not require token transfers).
  5. They never unpause. Holders are left with tokens they cannot sell, in a pool with no liquidity.

Token Freeze on Solana

On Solana, the equivalent of a pause is freeze authority. If the token team retains freeze authority, they can freeze individual wallet balances — those wallets cannot send or sell their tokens. Unlike an EVM pause (which is all-or-nothing), Solana freeze authority is per-wallet, making it more like a blacklist.

GuavaIntel's Solana honeypot checker verifies whether freeze authority has been renounced via RugCheck.

How to Detect a Pause Function

GuavaIntel's scanner checks for pause functions via GoPlus. To check manually, read the contract source and look for:

  • pause(), setPaused(), _pause
  • A paused boolean state variable
  • whenNotPaused modifier on the transfer function
  • OpenZeppelin Pausable import

Frequently Asked Questions

What is the difference between a blacklist and a pause?

A blacklist blocks specific wallets from transferring. A pause blocks ALL wallets from transferring. A blacklist is targeted (the owner picks who to trap), while a pause is blanket (everyone is trapped at once). Both are common in honeypot scams.

Can the owner unpause after pausing?

Yes. A pause function is reversible — the owner can pause and unpause at will. However, in a scam, the owner pauses and never unpauses. The tokens are effectively frozen forever, and the team drains the liquidity pool while no one can sell.

Are pausable tokens always a scam?

No. Some legitimate tokens (like PAXG and some regulated stablecoins) include pause functions as a safety mechanism for emergency response. However, in the context of meme coins and unverified projects, a pause function is a major red flag because it gives the team total control over whether holders can exit.

Check Before You Trade

Run a free security scan on any token across Ethereum, BSC, Base, and Solana.

Scan a Token Now