SafePOODLE Honeypot
What happened
SafePOODLE (SAFEPOODLE) is a token on BNB Smart Chain at 0x545466b8…21aaab. Its transferFrom function requires allow[_from] == true, and the constructor sets that flag only for the deployer. Any other holder is blocked from transferFrom, the call a DEX router uses to pull tokens for a sale, unless the privileged account adds them with addAllow.
Plain transfer has no such flag. De.Fi's REKT database lists the token as an Exit Scam/Honeypot and says the contract owner could disable the transfer function, which restricted users in selling their tokens. No sale or liquidity transaction was opened, so how many holders were affected and how much was lost is not established.
How it happened
- The constructor, called by the deployer, sets
balances[msg.sender] = totalSupply;andallow[msg.sender] = true;. No other address is givenallowstatus at deployment. transferFromcontainsrequire(allow[_from] == true);in addition to the balance and allowance checks. For a holder whoseallowentry is false, everytransferFromthat spends that holder's tokens reverts, even when the holder has approved the spender:approvesetsallowed[msg.sender][_spender] = _value;normally, so the approval looks successful.- A sale through a DEX router needs the router to call
transferFromon the holder's tokens, so it reverts for non-listed holders.transferhas onlyrequire(_to != address(0)); require(balances[msg.sender] >= _value);, so direct sends, and any pool payout made withtransfer, are not affected. - The
onlyOwnermodifier isrequire(msg.sender == address(1080614020421183795110940285280029773222128095634));, which is the fixed address 0xbd486897…439192. It is a different address from the deployer 0xe9F9CEa0…41139B that received theallowflag.transferOwnershiponly rewrites the unusedownervariable, so the fixed address keeps these powers whateverownerholds. - That fixed address can call
addAllow(address holder, bool allowApprove)to setallow[holder]for any account, andmint(address miner, uint256 _value), which executesbalances[miner] = _value;. This overwrites the target's balance with any chosen value, up, or down to zero, and does not changetotalSupply. - What happened: De.Fi's REKT database lists this token as an Exit Scam/Honeypot dated 2021-04-24. No transaction was opened showing a failed sale, an
addAllowcall, amintcall or a liquidity removal, so none is claimed.
Protocol details
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.