JizzUs Honeypot
What happened
JizzUs (JIZUS) is a 3-decimal BEP20 token on BNB Smart Chain whose transfer and transferFrom functions refuse any move whose recipient equals a stored address called newun. The contract fills newun itself from the recipient of the first transferFrom call, and the owner can overwrite it at any time with transfernewun. If newun ends up holding the liquidity pair, a holder's sell into the pair reverts with "please wait", while transfers out of the pair are not touched by this check.
De.Fi's REKT database lists JIZUS as an Exit Scam/Honeypot dated 2021-05-13 and says the contract owner could disable the transfer function, which restricted users in selling their tokens. The contract was deployed on 2021-05-11 at 23:29:10 UTC by 0x6B01D20a…07AB2e in transaction 0x0150c5dd…95a076.
How it happened
- The constructor gives the whole supply to the deployer:
owner = msg.senderandbalances[owner] = _totalSupply;with_totalSupply = 10000 * 10**6 * 10**8, which is 10^18 raw units, or 10^15 tokens at 3 decimals. - The first
transferFromcall sets the blocked address without any check:if(from != address(0) && newun == address(0)) newun = to;. A router liquidity deposit pulls tokens withtransferFrom, so in that flow the pair would becomenewun; a write-up of this code pattern describes the pair being captured this way. The contract itself never names the pair. - Once
newunis set, every latertransferFromrunselse require(to != newun, "please wait");and everytransferrunsrequire(to != newun, "please wait");. A router sell callstransferFrom(holder, pair, amount), so ifnewunis the pair the call reverts beforebalances[from]is debited. The owner is not exempt from the check. - The owner controls the block:
function transfernewun(address _newun) public onlyOwner { newun = _newun; }. Pointing it at an unused address lifts the block for the pair; setting it to the zero address re-arms the capture in step 2 for the nexttransferFromrecipient. The contract has no timelock of its own and no cap on how often this can be called. JizzUsalso definesclearCNDAO(), which sends the contract's whole BNB balance to the owner, and a payable fallbackfunction() external payable {}that lets the contract receive BNB.
Protocol details
Evidence
- report @Token_Sniffer incident report twitter.com
- address BscScan verified source for JizzUs bscscan.com
- analysis Scam explained: BSC stealthy LP block cryptot3ddybear.gitlab.io
- analysis Sourcify match for JizzUs on chain 56 repo.sourcify.dev
- analysis De.Fi REKT database listing for JIZUS (Exit Scam/Honeypot, 2021-05-13) de.fi
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.