TOKO TOKEN Honeypot

Reported loss Not disclosed
BNB Chain
Honeypot

What happened

This "Toko Token" (TKO) contract on BNB Chain uses a sell-blocking transfer template. Every transfer and transferFrom runs the burnTokenCheck modifier: the owner, the _safeOwner address and owner-whitelisted wallets can move tokens freely, while any other sender is rejected unless the recipient is the hard-coded PancakeSwap V1 router address. A PancakeSwap sale sends tokens to the pair, not the router, so it reverts with a fake ERC20: transfer amount exceeds balance error.

The owner also controls whitelist and blacklist setters disguised as increaseAllowance and addApprove, can repoint _safeOwner through decreaseAllowance, and can mint unlimited tokens through a public _mint. De.Fi's REKT database lists the token as an exit scam/honeypot.

How it happened

  1. The constructor sets both _owner and _safeOwner to the owner argument and mints the supply to it.
  2. The first transfer the owner makes while _owner == _safeOwner reassigns _safeOwner = recipient, giving that recipient unrestricted sending rights; the owner can later change it again with decreaseAllowance(address safeOwner).
  3. _sellAmount starts at 0, so for a holder who is neither whitelisted nor blacklisted amount < _sellAmount is false and the transfer only succeeds if sender == _safeOwner or recipient == _unirouter.
  4. Selling through PancakeSwap moves the holder's tokens to the pair contract, so neither condition holds and the sale reverts with a message that imitates an insufficient balance.
  5. The owner can whitelist wallets through increaseAllowance or multiTransfer, blacklist them through addApprove, open a narrow window by transferring to itself (which sets _sellAmount), and mint any amount to itself through _mint.

Protocol details

Classification Token
Protocol Type Exit Scam/Honeypot
Affected asset / contract TKO

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.