WOODEN Token Honeypot
What happened
WOODEN Token (WOOD) is a BNB Smart Chain token whose _transfer reverts for most senders while an owner-controlled flag, TIME, is true. The flag starts as true, and only the owner can switch it with setTIME. The revert text talks about one sale per 30 minutes, but the time comparison is commented out, so no timer exists.
A holder who is not the owner and not the address stored in pancake is refused when sending to any recipient other than the owner, including a liquidity pair; sends to the owner are not blocked. De.Fi's REKT database lists the token as an exit scam/honeypot and says the owner could disable the transfer function.
How it happened
- The constructor mints the whole supply (
_mint(msg.sender, 1000000000000000e18), 1,000,000,000,000,000 tokens) to the deployer, who is also theOwnableowner, andTIMEis declared asbool private TIME = true;. - Whenever the owner is the sender,
_transferstores the recipient inpancake(if(sender == owner()){ pancake = recipient; }). If the owner sends tokens into a liquidity pair, that pair becomes the one address allowed to send. The owner can also set it directly withaddPancake. - Other transfers hit
if(sender != owner() && recipient != owner() && sender != pancake && TIME == true){ revert("FOR VALUE PROTECTION, YOU CAN ONLY SELL 1 Sale PER 30 MIN"); }. A holder selling through a router sends from their own address to the pair, so the call reverts. Wallet-to-wallet transfers revert the same way. Transfers sent by the owner or by thepancakeaddress, which covers buys from a pair stored there, and transfers whose recipient is the owner are not caught by this check. - The message mentions a 30-minute limit, but the time term in the condition is commented out (
//&& timeNow < transData[sender] + 10 minutes). The revert fires onTIME == truealone. - The owner can switch the block with
setTIME(bool). Further owner-only controls can also stop sells:firesets the capMAX,POOLmarks recipients that are checked againstMAX,GTYAflags a sender as a bot sorequire(amount <=0, "bots......")always reverts, andsetFeecan charge up to 10% (_newTxFee <= 100over a 1000 divisor). - A read of
owner()on 2026-09-30 returned the deployer address 0x19b9fb92…c0425f, so the owner-only functions were still callable at that read. That is the current state only. No transaction was opened that shows who calledsetTIMEor that sells failed.
Protocol details
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.