KimJongMoon Honeypot
What happened
KimJongMoon (KIMJ) is a BNB Smart Chain token whose verified code contains a transfer block that the owner controls. The first transferFrom call made while newun is empty stores its recipient in newun; after that, every transfer or transferFrom whose recipient is newun reverts with the message "please wait". If newun holds the liquidity pair address, sells through that pair fail while buys, which move tokens out of the pair, are not touched by the check.
Only the owner can change newun, through transfernewun. De.Fi's REKT database lists the token as an Exit Scam/Honeypot, saying the contract owner could disable the transfer function, which restricted users in selling their tokens. The source header advertises 10% fees and holder-milestone burns, but the code contains no fee, reflection or burn logic.
How it happened
- The constructor sets
symbol = "KIMJ",name = "KimJongMoon"and assigns the whole_totalSupplyof 10000000000000000000000 raw units (10 trillion tokens at 9 decimals) toowner. - In
transferFrom, the lineif(from != address(0) && newun == address(0)) newun = to;runs on the first call whilenewunis unset. It records the recipient of that call, whoever it is, and applies no check on that call. - From then on the
elsebranch runs:else require(to != newun, "please wait");.transferhas the same check,require(to != newun, "please wait");, so no caller, including the owner, can send tokens tonewun. - A swap that sells tokens pulls them with
transferFrom(holder, pair, amount). If the pair is the address stored innewun, that call reverts and the holder's balance is not debited. The code does not show which addressnewunholds, so this is the case the pattern is built for rather than something the source proves. - The owner can call
transfernewun(_newun)at any time. Setting it toaddress(0)re-arms capture by the nexttransferFrom; pointing it at an address nobody uses lifts the block. Nothing in the source forces either. - De.Fi's REKT database lists the token as an Exit Scam/Honeypot. The source contains no function that mints, blacklists or withdraws liquidity;
clearCNDAOonly sends the contract's own native-coin balance to the owner.
Protocol details
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.