SupHerbs Honeypot
What happened
SupHerbs (SUPHERBS) is a BEP-20 token on BNB Smart Chain, deployed from 0x256Dd162…AD37cF in transaction 0xc06b752c…262c09 on 2021-05-20. De.Fi's REKT database lists it as an Exit Scam/Honeypot, saying the contract owner could disable the transfer function and so restrict users from selling. The verified source contains a transfer block built on a variable named newun: the first transferFrom records its recipient in newun, after which any transfer or transferFrom to that address reverts with "please wait".
The source file's header comment advertises fees, a locked liquidity fee and a burn, but the code contains no fee or burn logic. The source alone does not show which address ended up in newun or whether any sale actually failed.
How it happened
- The constructor mints the whole supply to the deployer, who becomes
owner:balances[owner] = _totalSupply;. transferFrombegins withif(from != address(0) && newun == address(0)) newun = to; else require(to != newun, "please wait");. Whilenewunis still the zero address, the firsttransferFromtherefore stores its recipient innewun. Liquidity added through a router is atransferFrominto the pair, so on a typical pool setup that recipient would be the pair; the code itself does not name the pair.- After that, every later
transferFromwhose recipient equalsnewunfails theelse require(to != newun, "please wait")check.transferhas the same guard:require(to != newun, "please wait");. - A holder's sale through a router pulls tokens into the pair with
transferFrom. Ifnewunholds the pair address, that call reverts beforebalances[from]is reduced, so the holder keeps the tokens but cannot swap them back. - The owner controls the block:
transfernewun(address _newun) public onlyOwnersetsnewunto any address. Pointing it at an unused address lifts the block; setting it back to the zero address re-arms capture by the nexttransferFrom. Nothing in the source shows which addressnewunholds or that the owner called this function. clearCNDAO()isonlyOwnerand sends the contract's own BNB balance to the owner, and theSUPHERBScontract accepts BNB throughfunction() external payable.
Protocol details
Evidence
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.