GMETA Rug Pull

Reported loss $3.7M
Rugpull

What happened

GMETA was a BNB Chain token paired with USDT on PancakeSwap. Its contract mints the initial supply to the deployer and gives the owner an uncapped mint, buy and sell fees that changeFee can set to any value, and the power to mark any address as a trading pair; on-chain, ownership has since been renounced. According to De.Fi's alert of 18 July 2023, the creator address 0x9f02c29a…eb8ed1 moved 1 million GMETA to another wallet, which sold 120,000 of them into the pool for about 2.36 million USDT and crashed the price by 96%.

Halborn puts that sale at 2,367,507 USDT. De.Fi's listing adds a second drain of about 1.3 million USDT from linked wallets, for a total of 3,675,612 USD.

How it happened

  1. The constructor mints initialSupply to the deployer, creates the GMETA/USDT pair and marks it as a pair: _mint(msg.sender, initialSupply); and _setAutomatedMarketMakerPair(_uniswapV2Pair, true);. Halborn reports that 1 million GMETA were minted on 4 February 2023.
  2. While it held ownership, the owner could mint without limit (function mint(uint256 _amount) external onlyOwner) and set fees with no cap (changeFee just assigns buyMarketingFee and sellMarketingFee). Fees are cut from each pair trade and sent to feeAddress, and a sell fee above 100 would make amount = amount.sub(MFee); revert, blocking every sale into a flagged pair. On-chain owner() now returns the zero address, so these powers are no longer usable; when ownership was renounced was not checked.
  3. According to De.Fi, on or before 18 July 2023 the creator 0x9f02c29a…eb8ed1 transferred 1 million GMETA to an address starting 0x427, and 120,000 GMETA were then sold into the pool for about 2.36 million USDT, a 96% price drop. Halborn gives the proceeds as 2,367,507 USDT and says they were split across many addresses in small amounts.
  4. De.Fi's listing adds that the remaining tokens passed between several wallets (including 0xd33D347d…50D695 and 0x97Ed15d9…9bd7DE) and that one of them drained about 1.3 million USDT more, of which 1 million USDT went to the unverified contract 0xc95615e6…2bec20. It lists transactions 0xb8c4220d…fbf62f and 0x444d119a…8af4dc as the liquidity drains and 0xded53af2…51314c as the token transfer, for a total loss of 3,675,612 USD.

Protocol details

Classification Token
Protocol Type Exit Scam/Rugpull
Affected asset / contract GMETA

Build your security review skills

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