Coin Rug Pull
What happened
COIN is an Ethereum token at 0x517ac17D…9eDA17, deployed on 5 August 2023 by 0xdd7f3e90…Bcb412, which is still its owner and also receives all tax proceeds. The owner can call blockBots to flag any address, and a flagged address can no longer send tokens, so it cannot sell; only the owner or a wallet holding at least 20% of the supply can clear a flag. The owner can also set the maximum transaction size to zero, which stops every transfer not involving the owner, and raise the sell fee to 99%.
A public function, executeTokenSwap, lets anyone emit fake Transfer and Uniswap-style Swap events that look like buys from the pool without moving any tokens. CertiK reported on 6 August 2023 a large liquidity removal, said the token appeared to be a honeypot and put the deployer's gain at about $31,000. De.Fi's REKT database lists a rug pull in which 22.65 WETH (about $42,000) was withdrawn from the Uniswap V2 pool and spread across four wallets, citing liquidity removal transaction 0x0efd9a21…7c2016.
How it happened
- The constructor gives the deployer the whole supply, creates the WETH pair on Uniswap V2 and exempts the deployer, which is also the hard-coded
_developmentAddressand_marketingAddress, from fees. - Until the owner calls
activateTrading(), every transfer that does not involve the owner reverts. blockBots(address[])isonlyOwnerand setsbots[addr] = true._transferthen runsrequire(!bots[from] , "TOKEN: Your account is blacklisted!"), so a flagged holder cannot sell or move tokens.unblockBotrequiresmsg.sender == owner() || balanceOf(msg.sender) >= totalSupply() / 5.setMaxTxnAmounthas no lower bound; at zero,require(amount <= _maxTxAmount, ...)fails for every transfer between non-owner addresses, while the owner's own transfers skip the check.updateFeesallows a combined sell fee of up to 99%.executeTokenSwapand_Transferare public and only emit events:emit Transfer(uniswapPool, recipients[i], tokenAmounts[i])andemit Swap(...)with the router as sender, so explorers and trackers can show buys that never happened. No balance changes.- CertiK reported a large liquidity removal with the deployer gaining about $31,000; De.Fi's listing puts the withdrawal at 22.65 WETH (about $42,000).
Protocol details
Evidence
- report @CertiKAlert incident report twitter.com
- report CertiK Alert: large liquidity removal on Coin token twitter.com
- transaction COIN contract creation transaction etherscan.io
- transaction etherscan.io transaction 0x0efd…2016 etherscan.io
- address COIN (TOKEN) verified contract code on Etherscan etherscan.io
- address etherscan.io address 0xdd7f…b412 etherscan.io
- analysis Sourcify match for 0x517ac17DbCD76F97C994DFE3d322F0c2fF9eDA17 on Ethereum repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.