DREAMSWAP Honeypot
What happened
DREAMSWAP (DREAM) is a BEP-20 token on BNB Chain that uses a hidden address variable, newun, to block sales. The first transferFrom call from a non-zero sender stores its recipient in newun; when liquidity is added through the PancakeSwap router, that recipient is the liquidity pair. After that, every transfer or transferFrom whose recipient is the pair reverts with the message "please wait", so holders can buy but cannot sell back into the pool.
The owner can also repoint newun at any address through transfernewun. De.Fi's REKT database lists the token as an exit scam/honeypot; no transaction evidence of losses was found.
How it happened
- The constructor mints the full supply of 1,088,000
DREAMto the deployer, andnewunstarts as the zero address. - The first
transferFromwith a non-zerofromrunsif(from != address(0) && newun == address(0)) newun = to;. Adding liquidity through the router moves tokens withtransferFrominto the pair, so the pair address becomesnewun. - Buys still work because the pair pays buyers with
transfer, whose recipient is the buyer, notnewun. - A sale moves tokens from the holder to the pair, either by the router's
transferFromor by a directtransfer. Both functions checkrequire(to != newun, "please wait"), so the sale reverts. - The owner can change the blocked address at any time with the
onlyOwnerfunctiontransfernewun, and can withdraw any BNB held by the contract withclearCNDAO.
Protocol details
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.