MoonSquirrel Honeypot
What happened
MoonSquirrel (MNSL) is a BNB Smart Chain token whose verified code contains an owner-controlled transfer block. 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". A write-up by CryptoT3ddyBear on the same code pattern says newun ends up holding the PancakeSwap liquidity pool address, which makes sells through the pool fail; that post does not name MoonSquirrel, and this contract's source does not itself show which address newun holds.
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.
How it happened
- The constructor sets
symbol = "MNSL",name = "MoonSquirrel"and assigns the whole_totalSupplyof 100000000000000000000000000000000000000 raw units (1e20 tokens at 18 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 linked write-up describes this outcome for the pattern; this contract's code alone does not show which addressnewunholds. - 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 BNB balance to the owner.
Protocol details
Evidence
- report @Token_Sniffer incident report twitter.com
- report Sourcify copy of MoonSquirrel source repo.sourcify.dev
- report De.Fi REKT database listing for MNSL (proof link: Token Sniffer tweet, not retrievable) twitter.com
- address MoonSquirrel (MNSL) verified source code on BscScan bscscan.com
- analysis Scam explained: BSC stealthy LP block (CryptoT3ddyBear) cryptot3ddybear.gitlab.io
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.