ELON INU Honeypot
What happened
ELON INU (ELONINU) is a BEP-20 token on BNB Smart Chain, deployed from 0xcCf00dD3…Ce81bA at contract address 0xca33eb8a…f19d30. All 10 billion tokens are minted to a hard-coded owner address, 0x961266bD…2f5516, in the constructor. The token's transfer and transferFrom functions contain a variable, newun, that records the first address to receive tokens through transferFrom and then rejects every later transfer to that address with the message "please wait".
Because a trading pool receives tokens whenever someone sells, this blocks selling once the pool address has been captured, while buying (tokens leaving the pool) is not checked. De.Fi's REKT database lists the token as an Exit Scam/Honeypot in which the contract owner could disable the transfer function, restricting users from selling. The listing gives no loss figure and no transaction hashes.
How it happened
- The constructor sets
symbol = "ELONINU",name = "ELON INU"and_totalSupply = 10000000000e18, and assigns the whole supply tobalances[owner]; the owner address is hard-coded asowner = 0x961266bD90AE587b68e58e1EDCA131Bdd82f5516. transferFromrunsif(from != address(0) && newun == address(0)) newun = to; else require(to != newun, "please wait");. The firsttransferFromwith a non-zero sender therefore stores its recipient innewunwithout any check. A router-based liquidity add moves the owner's tokens to the pool withtransferFrom, so the pool can becomenewunthis way (the code allows this; the on-chainnewunvalue was not read).- From then on every
transferFromwhose recipient equalsnewunreverts, because theelsebranch requiresto != newun. A sell through a router callstransferFrom(seller, pool, amount), so it fails for every holder.transferhas the same guard:require(to != newun, "please wait");. - Buys are not affected by this check: the pool pays buyers with
transfer(buyer, amount), and the guard only tests the recipient againstnewun. Holders can therefore acquire tokens that they cannot sell back through the pool. - The owner can call
transfernewun(address _newun)(onlyOwner) to overwritenewun. Setting it toaddress(0)makes the nexttransferFromrecipient be captured again, so the block re-arms; only pointing it at an address that is not the pool lifts it. There is no function that changes the owner excepttransferOwnership/acceptOwnership, and norenounceOwnership. clearCNDAO()(onlyOwner) sends the contract's own BNB balance to the owner, and the contract has a payable fallback. This does not touch holders' tokens or the pool.- What happened on chain is not established here: no sell transactions, liquidity removal or owner calls were opened. Only De.Fi's REKT database listing states that selling was restricted.
Protocol details
Evidence
- report De.Fi REKT database listing for ELONINU (as imported in the job meta) twitter.com
- address BscScan verified source code, ELON INU (ELONINU) bscscan.com
- analysis Scam explained: BSC stealthy LP block cryptot3ddybear.gitlab.io
- analysis Sourcify repository entry, chain 56 contract 0xca33eb8ac68e1378ed0f9f9eaed96836b4f19d30 repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.