Glacier Honeypot
What happened
Glacier (GLA) was a BNB Smart Chain honeypot token that De.Fi's REKT database lists on April 11, 2021, the day it was deployed. Its _approve function stores a real allowance only when the approving wallet is the hard-coded deployer address 0xa872d091…BEAa61; for everyone else it writes 0. Buyers could receive GLA from the PancakeSwap pool, but could never give the router an allowance, so every sell reverted, while the deployer could still approve the router and move liquidity.
The trap is written into the code, so renouncing ownership would not remove it.
How it happened
- The constructor mints the full 123,000,000,000 GLA supply to the deployer.
_approvecontainsif (owner == address(0xa872d091a23E3BceB17EeEe4Dbc9312a89BEAa61)) { _allowances[owner][spender] = amount; ... } else { _allowances[owner][spender] = 0; emit Approval(owner, spender, 0); }. A holder'sapprovecall succeeds, but the stored allowance is 0.- Buys work because the pair sends tokens with plain
transfer, which has no restriction. - A PancakeSwap sell makes the router call
transferFrom(seller, pair, amount), which ends with_allowances[sender][_msgSender()].sub(amount, "BEP20: transfer amount exceeds allowance"). With a 0 allowance that subtraction reverts, so the sale fails. - The hard-coded deployer address is exempt and can approve the router, so it can add and remove liquidity. The owner can also call
mint(amount)to create unlimited new GLA for itself.
Protocol details
Evidence
- report @Token_Sniffer incident report twitter.com
- report Token Sniffer post on X (De.Fi proof link) twitter.com
- address Glacier (GLA) verified contract source, BscScan bscscan.com
- analysis Sourcify match, chain 56, 0xc99f22a060c9055fd109793dae7e161d68570de1 repo.sourcify.dev
- analysis BSC-SCAM: PancakeSwap NoApproval (cryptot3ddybear) cryptot3ddybear.gitlab.io
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.