Internet Computer Honeypot

Reported loss Not disclosed
BNB Chain
Honeypot

What happened

Internet Computer (ICP) at 0x30969b71…788ba9 is a BNB Smart Chain token whose code blocks transfers into one address, which in a normal pool setup is the liquidity pair. The first transferFrom call from a non-zero address stores its recipient in newun, and every later transfer or transferFrom to that address reverts with "please wait". Buying from the pair still works, while selling (which moves tokens into the pair) fails.

De.Fi's REKT database lists the token as an exit scam/honeypot in which the owner could disable the transfer function and stop users from selling.

How it happened

  1. The deployer creates the token (symbol = "ICP", name = "Internet Computer") and the full supply 1000000000000000000000 is credited to owner. The source header claims a Binance listing, a locked LP and a 50% burn; none of this is enforced in code.
  2. The variable newun starts as the zero address. In transferFrom, the line if(from != address(0) && newun == address(0)) newun = to; stores the recipient of the first such call. When liquidity is added through a router, that recipient is the trading pair.
  3. From then on, both transfer paths refuse to send tokens to newun: require(to != newun, "please wait"); in transfer, and the same require in the else branch of transferFrom. A sell through a router calls transferFrom(holder, pair, amount), so it reverts. A holder's balance is never debited because the revert happens before balances[from] is reduced.
  4. Transfers from the pair to buyers go through transfer with the buyer as to, which is allowed, and wallet-to-wallet transfers are unaffected. Holders can therefore acquire and move tokens but cannot sell into the pair.
  5. transfernewun(address _newun) is onlyOwner and can overwrite newun. Pointing it at an unused address would lift the block; setting it to the zero address would let the next transferFrom capture a new recipient. Ownership has no renounceOwnership, only transferOwnership/acceptOwnership. No transaction showing the owner calling transfernewun was opened, so what the owner actually did is not established here.
  6. clearCNDAO() lets the owner send the contract's own BNB balance to themselves. It does not move token balances or pool liquidity.

Protocol details

Classification Token
Protocol Type Chain
Affected asset / contract ICP
Protocol links Website @dfinity

Build your security review skills

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