GAMEE Honeypot

Reported loss Not disclosed
Ethereum
Honeypot

What happened

This record covers a copycat token named GAMEE (GMEE) at 0x2d490d5f…ad4864 on Ethereum, not the official GAMEE token. GAMEE's documentation gives the official GMEE address as 0xd9016a90…2f2373 and a Uniswap listing date of 8 April 2021; the copycat was deployed a day earlier, on 7 April 2021, by 0x0D1eE796…fA17F2. Its transfer rules sit in a modifier misleadingly named burnTokenCheck.

An ordinary holder can send tokens only below an owner-set threshold (_sellAmount, zero by default), to the Uniswap router address, or when whitelisted by the owner. Because a Uniswap sale sends tokens to the pair, every non-whitelisted holder's sale reverts, and a holder who sells below a raised threshold is automatically blacklisted. De.Fi's REKT database lists GMEE as an exit scam/honeypot and says the owner could disable transfers so that users could not sell.

How it happened

  1. The constructor takes name, symbol, supply and owner as arguments and credits the whole supply to _owner. _mint is public but requires msg.sender == _owner, so the owner must be the deployer, and it always credits _balances[_owner] whatever account it names in the Transfer event.
  2. Every transfer and transferFrom passes through burnTokenCheck. The owner, the _safeOwner address and transfers to the owner always pass; an owner-to-owner transfer sets _sellAmount, the sell threshold.
  3. The first transfer out of the owner's wallet, or the owner-only decreaseAllowance(address), sets _safeOwner. When that is the Uniswap pair, buys pass because the pair is the sender.
  4. For any other sender, a transfer of amount >= _sellAmount must satisfy require((sender == _safeOwner)||(recipient == _unirouter), ...), which a sale into the pair fails. With _sellAmount at its default of zero, no ordinary holder can sell.
  5. A transfer below _sellAmount to _safeOwner succeeds once but sets _blackAddress[sender] = true, after which that holder is blocked.
  6. The owner can whitelist addresses with increaseAllowance(address[]), blacklist them with addApprove(address[]), and airdrop through multiTransfer, which also whitelists the first recipients and sets their router allowance to the maximum. There is no function to change or renounce _owner.
  7. De.Fi's REKT database lists GMEE as an exit scam/honeypot in which users could not sell; no transaction was opened showing trades or liquidity removal.

Protocol details

Classification Token
Protocol Type Exit Scam/Honeypot
Affected asset / contract GMEE

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.