X1000 ONLY Honeypot
What happened
De.Fi's REKT database lists X1000 ONLY on BNB Smart Chain as an Exit Scam/Honeypot, stating that the contract owner could disable the transfer function and so restrict users from selling. The verified source shows a variant of a known pattern: transferFrom stores the recipient of the first call in a variable called newun, and from then on both transfer and transferFrom revert with "please wait" for any transfer to that address. If that first recipient is the liquidity pool, buyers can still receive tokens from the pool but cannot send them back to it.
The contract was deployed on 2021-05-16 at 23:25 UTC in transaction 0x8c0dc497…fe376d. No loss figure is listed.
How it happened
newunstarts as the zero address. The owner can set it to any address withtransfernewun(address _newun) public onlyOwner.- In
transferFrom, the first call made whilenewunis zero stores the recipient:if(from != address(0) && newun == address(0)) newun = to;. The call is not restricted to the owner, and the tokens move normally. - If that first
transferFromis the one that moves tokens into a liquidity pool (the pattern the opened gitlab article describes for similar tokens),newunbecomes the pool address. The code does not show which addressnewunholds; that needs an on-chain read. - From then on, every later
transferFromrunselse require(to != newun, "please wait");andtransferrunsrequire(to != newun, "please wait");. A holder who sells through a router has the router calltransferFrom(holder, pool, amount), so the transfer tonewunreverts and the holder's balance is not changed. - Transfers from the pool to a buyer are not blocked, because the check only looks at the recipient. Buying works while selling to the same address fails.
- The owner can lift the block by pointing
newunat an address that is never used as a recipient. Setting it back to the zero address does not lift it: the nexttransferFromstores its recipient again. The source has norenounceOwnership, andtransferOwnershiponly starts a two-step handover to a new owner. clearCNDAO()lets the owner send the contract's own BNB balance to the owner, which is separate from the token-selling restriction.
Protocol details
Evidence
- report De.Fi REKT database listing for X1000 (proof link, Token Sniffer post) twitter.com
- report X1000 ONLY source on Sourcify repo.sourcify.dev
- address X1000 ONLY (MOON) verified source on BscScan bscscan.com
- analysis BSC-SCAM: Stealthy Liquidity Pool Block (cryptot3ddybear) cryptot3ddybear.gitlab.io
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.