The Micro Elements Rug Pull
What happened
The Micro Elements (TME) is a BNB Chain token at 0xd631464f…37f71e, deployed on 20 July 2022 by 0x4FF04c51…09e1A9, that trades against USDT on a PancakeSwap pair its constructor creates. The constructor mints nothing: every TME in existence came from mint, which any address the owner approves with setMinner can call with no cap, and the total supply read on-chain in September 2026 is about 100 quintillion TME. The owner also holds two trading switches, canTransfer and canSwap; while both are off, only addresses on the owner's whitelist can move tokens at all.
The fee setters carry a 20% check, but it does not bound the real fee total: currentAllFee leaves out deadFeePercent (it starts at 7% while the six rates add to 10%), and setDeadFeePercent checks against devFeePercent instead of the old dead fee, so repeated calls let the owner push real fees past 20%. On 11 October 2022 CertiK flagged an exit scam with a price drop above 95% and about $548.6K taken; the existing record says an EOA funded by the deployer, 0x2b5f629b…92e8dd, drained the pair and still held the proceeds.
How it happened
- The constructor sets the fee rates, creates the TME/USDT pair with
liquidity = _factory.createPair(_usdtToken, address(this))and makes the deployer owner, but mints no tokens. - The owner can grant mint rights with
setMinner(address, true). A minter can then callmint(address to, uint256 value), which calls_mintwith no supply cap. The supply read on-chain (100000000002021000000000000000000000000 raw units at 18 decimals) was all created this way. - The owner controls
setCanTransferandsetCanSwap.transferandtransferFromrevert with "can not transfer" unless one switch is on or an address involved is whitelisted; with onlycanSwapon, non-whitelisted transfers must go to or from the pair. - Addresses the owner adds with
addWhitelistskip both checks and every fee, so they can move and sell tokens whatever the switch state. renounceOwnershiplater left the owner at the zero address, which freezes the switches and whitelist, but it does not clear theminnermapping, so any minter approved earlier keeps its mint right.- What happened: CertiK reported a drop of more than 95% and about $548.6K taken on 11 October 2022. The existing record attributes the pair drain to 0x2b5f629b…92e8dd, funded by the deployer in transaction 0x06ef4302…51eded.
Protocol details
Evidence
- report CertiK Alert: exit scam on The Micro Elements (TME) twitter.com
- transaction TME contract creation transaction bscscan.com
- transaction bscscan.com transaction 0x06ef…eded bscscan.com
- address The Micro Elements (TME) verified contract code on BscScan bscscan.com
- address bscscan.com address 0x2b5f…e8dd bscscan.com
- address bscscan.com address 0x4ff0…e1a9 bscscan.com
- analysis Sourcify match for 0xd631464f596e2ff3b9fe67a0ae10f6b73637f71e on BNB Chain repo.sourcify.dev
- analysis explorer.bitquery.io page calls explorer.bitquery.io
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.