MoonkeyKong Honeypot
What happened
MoonkeyKong (MOKONG) is a BNB Smart Chain token whose code stores an address in a public variable called newun. The first transferFrom call with a non-zero from while newun is empty sets newun = to, and after that every transfer or transferFrom whose recipient is newun reverts with "please wait". When newun is a liquidity pair, that stops holders from sending tokens into it, which is how a sale on a DEX is executed, while buys are not covered by the check.
De.Fi's REKT database lists the token as an Exit Scam/Honeypot, describing a contract whose owner could disable the transfer function, which restricted users in selling their tokens.
How it happened
- The
TokenBEP20constructor setssymbol = "MOKONG",name = "MoonkeyKong",decimals = 3and gives the whole supply toowner. A public variableaddress public newun;starts empty. transferFrombegins withif(from != address(0) && newun == address(0)) newun = to; else require(to != newun, "please wait");. The first call with a non-zerofromtherefore records its recipient innewunwithout any check. If that call is the router moving tokens into a new liquidity pair, the pair address is the one captured.- From then on,
transferFromtakes theelsebranch andrequire(to != newun, "please wait")reverts any transfer whose recipient isnewun.transferhas the same guard unconditionally:require(to != newun, "please wait");. - A holder selling through a router calls
transferFrom(holder, pair, amount). Withnewunset to the pair,to == newunand the call reverts. The check is on the recipient only, so a transfer fromnewunto another address, which is what a purchase from the pair is, is not blocked by it, and neither is the pair paying out to an address removing liquidity. - The owner can change the guard.
transfernewun(address _newun)isonlyOwnerand overwritesnewun. Pointing it at an address nobody uses lifts the block, while setting it toaddress(0)re-arms capture, so the nexttransferFromcall with a non-zerofromrecords its recipient as the new blocked address. - The
Ownedcontract has onlytransferOwnershipandacceptOwnership, and no function that renounces ownership.MoonkeyKongalso exposesclearCNDAO(), restricted byonlyOwner, which sends the contract's own BNB balance to the owner. Theowner()value read on 2026-09-30 was 0xedd4c563…f34656, the same address that deployed the contract; this is a current-state read, not a historical one. - This describes what the code allows. The supplied source does not show which address
newunheld, whether it was ever changed, or whether any liquidity was removed on this deployment.
Protocol details
Evidence
- report De.Fi REKT database listing for MOKONG (proof link: Token Sniffer tweet, returned 404) twitter.com
- report MoonkeyKong (MOKONG) source on Sourcify repo.sourcify.dev
- address MoonkeyKong (MOKONG) verified source on BscScan bscscan.com
- analysis Scam explained: BSC stealthy LP block (cryptot3ddybear blog) cryptot3ddybear.gitlab.io
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.