BSCcommunity Honeypot

Reported loss Not disclosed
BNB Chain
Honeypot

What happened

BSCcommunity is a BNB Smart Chain token whose transfer and transferFrom revert when the recipient equals a stored address called newun. newun is empty at deployment, and the first transferFrom call stores its recipient there without any check; the owner can later overwrite it with transfernewun. A Gitlab write-up describes this pattern in other tokens: if the first transferFrom is the one that pays tokens into the liquidity pool, the pool becomes the blocked recipient, so purchases work and sales fail with "please wait".

De.Fi's REKT database lists BSCcommunity as an Exit Scam/Honeypot, stating that the owner could disable the transfer function and restrict users from selling.

How it happened

  1. The constructor assigns the entire supply to the deployer: balances[owner] = _totalSupply;. The state variable newun starts as the zero address.
  2. The first call to transferFrom takes the capture branch: if(from != address(0) && newun == address(0)) newun = to;. The recipient of that call is stored in newun and the transfer then proceeds with no check. In a liquidity-adding call made by a router, that recipient would be the pool, which is how the Gitlab write-up describes the same code in other tokens; this contract's own transactions were not opened.
  3. From then on both transfer paths refuse that recipient: require(to != newun, "please wait"); in transfer, and else require(to != newun, "please wait"); in transferFrom. Nothing restricts transfers out of newun, so tokens leaving it, as in a purchase, are not blocked by these lines.
  4. If newun is the pool, a holder's sale reaches transferFrom(holder, pool, amount), reverts at the require, and the holder's balance is not debited because the whole call is undone.
  5. The owner can change the block at any time: function transfernewun(address _newun) public onlyOwner { newun = _newun; }. Pointing it at an unused address lifts the block for everyone. Setting it to the zero address lets the next transferFrom capture a new recipient.
  6. The BSCcommunity contract also has an owner-only clearCNDAO that sends the contract's own BNB balance to the owner (_owner.transfer(address(this).balance);) and an empty payable fallback that lets the contract receive BNB. This is separate from the token balances held by holders.
  7. The code shows what the owner can do; De.Fi's REKT database lists the token as an Exit Scam/Honeypot, and no transaction showing a sale failing, a transfernewun call or liquidity removal was opened here.

Protocol details

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

Build your security review skills

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