PAULY Rug Pull
What happened
PAULY was an Ethereum meme token whose creator 0x4340dECa…D3a2C9 removed about 116.1 ETH from its Uniswap V2 pool on July 14, 2023, roughly $224,000 according to De.Fi, and then moved the funds to another wallet. The verified code shows the token was built to be controlled rather than traded fairly: a hard-coded _Owner can mint without limit through setRule, a second hard-coded address can wipe any holder's balance with a function misleadingly named Approve, and renounceOwnership() and lock() are empty functions that do nothing. The contract also rewrites its own Transfer events so the creator's movements appear under a different address.
How it happened
address public _Owner = 0x4340dECaf719350a71592Cb76a825Bce31D3a2C9;is fixed in the code, with no setter.setRule(locker, amt)requiresmsg.sender == _Owner, then addsamtto_totalSupplyand to_balances[_Owner], while emittingTransfer(address(0), locker, amt). It is an unlimited mint whose event names a different recipient than the one credited; the constructor uses it so the initial supply appears to go to theteamaddress 0x8DFD4f30…523938._transferswaps the addresses in the log:if (sender == _Owner){sender = team;}if (recipient == _Owner){recipient = team;}, so explorers showteaminstead of the creator.Approve(address[] recipients), callable only by 0xa36E4985…bAb75B, moves each listed holder's entire balance toaddress(0)without emitting an event.executeanddropTokenonly emit fakeTransferevents.renounceOwnership()andlock()have empty bodies, so calling them removes none of these powers.- On 2023-07-14 18:59 UTC the creator called
removeLiquidityETHWithPermiton Uniswap V2 Router 2 and received about 116.16 ETH and 9.22 trillion PAULY (tx 0xacd94273…be5de1). De.Fi reported the ETH was then sent to an EOA.
Protocol details
Evidence
- report @DeDotFiSecurity incident report twitter.com
- report De.Fi Security on X: ~$224,000 Rug Pull Alert, $PAULY twitter.com
- transaction Etherscan transaction 0xacd94273...be5de1 (removeLiquidityETHWithPermit) etherscan.io
- address PAULY (Pauly0x) verified contract source, Etherscan etherscan.io
- address etherscan.io address 0x4340…a2c9 etherscan.io
- analysis Sourcify match, chain 1, 0xf1f8444b084d8d92f121ec4194ab8eddbc74cdc8 repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.