August 21, 20267 min read

How to Detect a BSC Rug Pull Token Before You Buy

A rug pull is not a market event — it is a contract feature. The code itself contains functions that give the deployer power to take your money. Here are the five patterns to look for, and how to check any BSC token before buying.

What is a rug pull in crypto?

A rug pull is when a token creator drains liquidity or manipulates the contract to steal buyer funds after people invest. The term comes from “pulling the rug out” — the project looks stable until the creator removes the floor.

What makes rug pulls different from a failed project is intent. The contract is designed from the start with functions that give the deployer unilateral power to extract funds. These functions are visible in the source code to anyone who reads it — but most buyers never check.

What does a rug pull look like in the contract code?

There are five patterns that appear in nearly every rug pull contract. A legitimate project can have one or two of these for valid operational reasons. A contract with three or more is a serious warning. A contract with all five is almost certainly designed to steal.

1. Unlimited Mint Authority

The owner can create new tokens at will with no cap. This means they can inflate the supply, crash the price, and sell their pre-existing holdings while yours become worthless.

What to look for:

function mint(address to, uint256 amount) external onlyOwner {
    _mint(to, amount); // no cap, no limit, no timelock
}

Legitimate version: mint functions with a hard supply cap (require(totalSupply() + amount <= MAX_SUPPLY)) or mint restricted to a specific schedule contract.

2. Blacklist / Whitelist Functions

The owner can add any wallet to a blacklist, permanently blocking it from selling or transferring tokens. Your tokens are in your wallet but you cannot move them.

What to look for:

mapping(address => bool) public blacklist;

function transfer(address to, uint256 amount) public override {
    require(!blacklist[msg.sender], "Blocked");
    super.transfer(to, amount);
}

Legitimate version: compliance-required blacklists with governance control (multisig, timelock) and public transparency about who is blocked and why. Rare for BSC tokens.

3. Uncapped Fee Setter

The owner can set transfer fees to any percentage — including 99%. You technically can sell, but 99% of the value goes to the deployer.

What to look for:

function setFee(uint256 newFee) external onlyOwner {
    transferFee = newFee; // no maximum, can be set to 99%
}

Legitimate version: fees capped in the contract itself (require(newFee <= 500, "Max 5%")) with the cap enforced on-chain, not just promised in documentation.

4. Missing Timelocks on Critical Functions

Functions that can move money, change fees, pause trading, or modify permissions execute instantly. There is no delay, no multisig, and no community notification. The deployer can change the rules and drain the contract in the same block.

Legitimate version: a timelock contract (OpenZeppelin TimelockController or equivalent) that enforces a 24-48 hour delay on all administrative functions, giving holders time to exit if they disagree.

5. Owner-Controlled ETH/BNB Withdrawal

The owner can withdraw all BNB or ETH from the contract in a single transaction. Combined with a honeypot mechanism that prevents selling, this means the deployer collects all the BNB from buys and holders can never get it back.

What to look for:

function withdraw() external onlyOwner {
    payable(owner()).transfer(address(this).balance);
}

Legitimate version: withdrawal functions with per-call caps, timelocks, multisig approval, and LP tokens locked in a third-party locker (not held by the deployer).

Can I check a BSC token myself before buying?

Yes, if the contract source code is verified on BSCScan. Go to bscscan.com/address/TOKEN_ADDRESS#code and look for “Contract Source Code Verified.” If the source is not verified, that is itself a warning — the team is hiding the code.

If you can read Solidity, search the code for the five patterns above. If you cannot, use a token scanner. A scanner reads the code for you and flags the patterns it finds.

HyperAudit’s Token Check costs $29, takes minutes, and returns a risk grade with plain-English explanations. It is not a full audit — it is a quick check designed for buyers, not developers.

What does a security scan actually check for?

A token security scan checks the contract for the five rug pull patterns above, plus additional indicators:

  • Unlimited or uncapped minting capability
  • Blacklist or whitelist functions that can block wallets
  • Fee setters without on-chain caps
  • Missing timelocks and multisig on owner functions
  • Direct ETH/BNB withdrawal by the deployer
  • Hidden transfer restrictions (honeypot patterns)
  • Proxy or upgradeable contracts that can be changed after deployment
  • Ownership concentration and centralization risks

What can’t a scan tell you?

A scan reads the contract. It cannot read the team’s intentions. Specifically:

  • Off-chain rug pulls — the team walks away, sells their allocation on the open market, or removes liquidity they hold in their own wallet. No contract-level signal.
  • Market manipulation — coordinated selling, wash trading, or social media pump-and-dump. These happen off-chain.
  • Team credibility — anonymous teams, fake advisors, copied whitepapers. A scan reads code, not LinkedIn.
  • Token economics viability — whether the project's business model actually works. That is a judgment call, not a code check.

A clean contract scan reduces your risk. It does not eliminate it. Treat it as one input in your decision, not the only one.

Check any BSC token in minutes

Token Check — $29. Paste the contract address, get a risk grade with plain-English findings.

Check a Token