MONKEY Honeypot
What happened
MONKEY is a BEP-20 token on BNB Chain built from a known PancakeSwap "liquidity pool block" template. The first transferFrom call, which normally happens when liquidity is added through the PancakeSwap router, silently stores the recipient (the new pair) in a variable named newun. From then on every transfer or transferFrom whose recipient is newun reverts with please wait, so holders can buy from the pool but cannot sell into it.
The owner, a hard-coded address, can also change newun at any time through transfernewun. De.Fi's REKT database lists MONKEY as an exit scam/honeypot; no transaction evidence of losses was found.
How it happened
- The constructor credits the full supply to the hard-coded
owneraddress 0xc55847BF…f98272. - When liquidity is first added, the router calls
transferFrom(owner, pair, ...); becausenewunis still empty, the lineif(from != address(0) && newun == address(0)) newun = to;records the pair address and lets that transfer through. - Buyers receive tokens from the pair through
transfer, which only checks that the recipient is notnewun, so buys succeed. - A sale requires moving tokens to the pair, so
require(to != newun, "please wait")reverts every sell, whether sent throughtransferor the router'stransferFrom. - Nothing in the token restricts tokens leaving the pair, so the code does not stop the liquidity provider from withdrawing the pool's liquidity while holders are unable to sell.
Protocol details
Evidence
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.