LK-99 Protocol Rug Pull
What happened
LK-99 Protocol (LK99) was an Ethereum token deployed on 1 August 2023 during the LK-99 superconductor hype, paired with WETH on Uniswap V2. Its constructor gives the whole 100,000,000 supply to the deployer, who also held the pool's LP tokens. The code adds a hidden per-address transfer block: the owner-only Execute function sets a "cross amount" for any list of wallets, and a wallet with a cross amount can only send more than that amount, so setting it above a holder's balance freezes every transfer and sale from that wallet.
Between 3 and 7 August 2023 the deployer removed liquidity from the pool in four removeLiquidityETHWithPermit transactions. De.Fi's REKT database puts the loss at 82.78 ETH, or 151,735 USD, and lists 0x72070ebe…f30238 as holding the funds on 8 August 2023.
How it happened
- The constructor mints the full supply to the deployer:
_balances[owner()] = _balances[owner()].add(_totalSupply);with_totalSupply = 100000000 * 10**_decimals. Execute(address[] accounts, uint256 amount)can only be called by the owner and writes_crossAmounts[accounts[i]] = amountfor every listed wallet._transferreadscAmount(sender)and, if it is non-zero, runsrequire(amount > crossAmount, ...). The check is on the sender, so it covers direct transfers and router sales alike. A cross amount above the wallet's balance makes every transfer from that wallet revert, while buys from the pair are unaffected.owner()is still the deployer, so this power has not been given up. No source opened here showsExecutebeing called.- The deployer, holding the LP tokens, called
removeLiquidityETHWithPermiton the Uniswap V2 router four times between 3 and 7 August 2023, taking the pool's WETH as ETH and the LK99 side back to its own wallet.
Protocol details
Evidence
- report @cyversalerts incident report twitter.com
- report Cyvers alert on RAIDEN liquidity removal (seed link, 31 July 2023) twitter.com
- transaction LK99 contract creation transaction etherscan.io
- transaction Liquidity removal transaction 0xda718746...55f4 (3 Aug 2023) etherscan.io
- transaction Liquidity removal transaction 0x740eb990...7f00 (4 Aug 2023) etherscan.io
- transaction Liquidity removal transaction 0x459296d4...c154 (7 Aug 2023) etherscan.io
- transaction Liquidity removal transaction 0xd6d4f120...b227 (7 Aug 2023) etherscan.io
- address LK-99 Protocol (LK99) verified contract code on Etherscan etherscan.io
- address etherscan.io address 0x7207…0238 etherscan.io
- address etherscan.io address 0xb958…556C etherscan.io
- analysis Sourcify match for 0x883e2496df47c07c7f2987691f99d491328d98c1 on Ethereum repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.