EASYFEEDBACK Honeypot
What happened
EASYFEEDBACK (EASYF) is a BNB Smart Chain token (contract 0xdc154e08…53d456) with a hidden destination block in its transfer and transferFrom functions. The first transferFrom call made while the newun variable is empty stores its recipient in newun, and from then on every transfer to that address reverts with "please wait". If that first recipient is the trading pair, which is the first-liquidity pattern described by a 2021 write-up of identical code in other tokens, buys still work but sales into the pair fail.
The owner can reset the stored address with transfernewun. De.Fi's REKT database lists the token as an Exit Scam/Honeypot and states that the contract owner could disable the transfer function, which restricted users in selling their tokens.
How it happened
- The constructor mints the whole supply to the deployer:
_totalSupply = 1000000000000000000;withdecimals = 9(1,000,000,000 tokens),balances[owner] = _totalSupply;. The public variablenewunstarts as the zero address. transferFrombegins withif(from != address(0) && newun == address(0)) newun = to; else require(to != newun, "please wait");. The firsttransferFromwith a non-zerofromwhilenewunis empty passes without any check and stores itstoasnewun. Router-based add-liquidity moves tokens withtransferFrom, so the pair is the likely first recipient; the source alone does not show which address was stored.- After capture, the
elsebranch applies to every latertransferFrom:require(to != newun, "please wait"). A sale through a router istransferFrom(holder, pair, amount), so ifnewunis the pair it reverts for every holder and the holder's balance is not debited. transferhas the same rule:require(to != newun, "please wait");. It has no exemption for the owner, so the owner cannot send tonewuneither. Before capture,newunis zero, so only transfers to the zero address are blocked.- Transfers out of the pair are not blocked: a buy is
transferfrom the pair to the buyer, whose address is notnewun; liquidity removal pays tokens from the pair to the LP holder in the same way. - The owner can change the stored address with
transfernewun(address _newun). Setting it to the zero address re-arms the capture on the nexttransferFrom; pointing it at an address nobody sends to lifts the block; pointing it at the pair restores it. clearCNDAO()sends any BNB held by the contract to the owner, andtransferOwnership/acceptOwnershipallow handing the owner role to another address.- What happened is known only from the listing: De.Fi's REKT database classifies the token as an Exit Scam/Honeypot and gives no loss figure. A security write-up dated 2021-04-11 quotes the same two
transferFromlines for other tokens and says the first add-liquidity transaction setsnewunto the liquidity pool address, after which sells fail with "please wait". It names SafeBinance and SafeRocket, not EASYFEEDBACK, and no transaction for this token was opened.
Protocol details
Evidence
- report @Token_Sniffer incident report twitter.com
- report EASYFEEDBACK source on Sourcify (chain 56) repo.sourcify.dev
- address EASYFEEDBACKTOKEN verified source code on BscScan bscscan.com
- analysis De.Fi REKT database listing for EASYF (Exit Scam/Honeypot, 2021-06-14, Binance) de.fi
- 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.