Lifeform (fake) Rug Pull

Reported loss $250K
Rugpull

What happened

This is a fake Lifeform (LFT) token on Ethereum (contract 0x829d2578…120cC8) whose source header copies the real project's website and social links. A single privileged address stored as _taxData can credit itself a fixed, huge balance with removeLimits(), zero any holder's balance with delegate(), and flag addresses with addBots() so that every transfer they send reverts. On May 8, 2024 the deployer address 0xb57b3644…7638fe called removeLimits() (transaction 0x302727f3…aa7e1f, 07:32 UTC) and four minutes later sold about 1.603 quadrillion LFT through a Sushi route for 81.2 WETH (transaction 0x9c69a064…c18143, 07:36 UTC).

CertiK's alert of May 9, 2024 describes the call as a backdoor used to mint additional tokens and dump them on the pair, draining 81 ETH (about $243K); the DB figure is $250,000. De.Fi's database listing adds that the proceeds were then dispersed across different addresses.

How it happened

  1. Fake token: the contract reuses the real Lifeform name, website and social links in its header; the constructor sets _tokename = "Lifeform", _taxData = add and mints 1,000,000,000 tokens to the deployer.
  2. Hidden mint: function removeLimits() external { if(_msgSender() == _taxData){ ... _balances[devWallet] += devAmount; } } with devAmount = 10**decimals()*68800*(23300000000+300), i.e. 1,603,040,020,640,000 whole tokens, about 1.6 million times the 1e9 supply. The credit is not subtracted from anyone, emits no Transfer event and leaves _totalSupply unchanged, and the function name suggests a harmless limit switch. It can be called repeatedly. When the caller is not _taxData the call does nothing and does not revert.
  3. Sell block: addBots(address bot) (only _taxData) sets tokeninfo[bot] = true. In _transfer, a flagged sender gets amount = buyCount + _balances[from] + buyCount-buyCount;, which is the balance plus 64,544 raw units, so the next check require(balance >= amount, ...) always reverts. A flagged holder cannot sell, and a flagged pair would block buys. delBots reverses it. No source shows these were used.
  4. Balance wipe: delegate(address delegatee) (only _taxData) runs _balances[delegatee] *= sellCount; and sellCount is initialised to 0 and never changed, so any address balance becomes 0.
  5. Giving up ownership does not remove these powers: all four functions check _taxData, which has no setter, not owner(). The on-chain owner() read on 2026-09-30 is the zero address, yet _taxData is unaffected.
  6. What happened, per opened pages: on May 8, 2024 at 07:32:35 UTC 0xb57b...38fe called removeLimits(); at 07:36:47 UTC the same address sent about 1.60304e15 LFT into a Uniswap V2 pool through the SushiSwap Route Processor and received 81.2032 WETH (about $220K at the explorer's conversion). CertiK describes this as a mint-and-dump that drained 81 ETH (about $243K).

Protocol details

Classification Token
Protocol Type Exit Scam/Rugpull
Affected asset / contract LFT
Protocol links Website @lifeformcc

Build your security review skills

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