HAHAHA GO SAFE TOKENS Honeypot
What happened
De.Fi's REKT database lists HAHAHA GO SAFE TOKENS (GST) on BNB Smart Chain as an Exit Scam/Honeypot and says the contract owner could disable the transfer function, which restricted users in selling their tokens. In the verified source the owner can flag any address with setPanCakeSwapReciever, and _transfer then calls calculateFeesBeforeSend, which reverts with "Error: Can not sell this token" for any transfer whose recipient is flagged. Because the revert undoes the whole transaction, a holder's balance is untouched, but the token cannot be sent to a flagged address, such as a liquidity pair.
The fee variable txFee is set by seTxFee yet never used in the fee math. The source shows what the owner can do; it does not show which address was flagged.
How it happened
- The constructor mints the whole supply to the deployer:
_transferTO(msg.sender, 1000000000000e18);. The deployer is also theOwnableowner, and_transferTOcallssetFeeDistributor(account), which isonlyOwner. - The owner can call
setPanCakeSwapReciever(address _recipient, bool _feeless), which has no cap and is not tied tocanWhitelist, and writesPanCakeSwapReciever[_recipient] = _feeless;. - Every
transferandtransferFromgoes through_transfer, which requiresamount > 1000, debits the sender (_balances[sender] = _balances[sender].sub(amount, ...)) and then callscalculateFeesBeforeSend(sender, recipient, amount). - In
calculateFeesBeforeSend,if(PanCakeSwapReciever[recipient]){ revert("Error: Can not sell this token"); }runs for a flagged recipient. The revert rolls back the debit, so the holder keeps the tokens, but the transfer fails. - If the flagged address is the pair that receives tokens in a sale, every sale to it reverts while transfers to unflagged addresses and purchases from the pair are not affected by this check. The source does not show which address was flagged.
- Calling
setPanCakeSwapReciever(addr, false)lifts the block for that address, andrenounceOwnership()exists, so the owner can also give up these powers.calculateFeesBeforeSendreturns(amount, 0)for unflagged recipients, sotxFeeand the 0% fee comment do not change the amount moved.
Protocol details
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.