PePe Coin Rug Pull
What happened
PePe Coin ($PePe) is a BEP-20 token on BNB Chain built from a generic pausable, blacklistable template (the verified contract is named ChinaCreatedCovid). The owner can create unlimited tokens with mint, freeze every transfer and approval with pause, and block chosen addresses with blackListAddress. The blacklist checks only the caller (msg.sender) of transfer or transferFrom, not the token holder, so its effect depends on which address is listed: blacklisting the DEX router would block sells and liquidity adds made through it, while blacklisting the pair would block buys and the token side of liquidity withdrawals.
The contract has no renounce function and transferOwnership rejects the zero address, so these powers stay with an owner. De.Fi's REKT database lists the token as an exit scam/rug pull; the record's earlier text described the project as abandoned with low activity and no significant user losses, and no transaction evidence of either was found.
How it happened
- The constructor sets
totalSupply = _supply * 10**_decimals, credits all of it to thetokenOwnerpassed at deployment and makes that address the owner. The supply read on-chain on 2026-09-30 is 1,000,000,000,000$PePe; the constructor amount itself was not read, andmintandburncan change the total after deployment. mint(address account, uint256 amount)isonlyOwnerand has no cap, so the owner can mint any amount to any address and sell it into the pool.pause()isonlyOwner; while paused,transfer,transferFrom,approveand the approval helpers all revert throughwhenNotPaused, which stops every holder from selling or moving tokens.blackListAddress(address, bool)isonlyOwner.transferandtransferFromboth checktokenBlacklist[msg.sender], the caller, not the_fromholder intransferFrom. A blacklisted holder cannot calltransferdirectly, but can stillapprovethe router and sell through it, because the router ismsg.senderintransferFrom. Blacklisting the router instead blocks sells and liquidity adds that go through itstransferFrom, but not buys; blacklisting the pair blocks buys (the pair callstransferto pay the buyer) and the token leg of liquidity withdrawals, but not sells.- There is no
renounceOwnership, andtransferOwnershiprequires a non-zero new owner, so the contract cannot be left ownerless by setting the owner toaddress(0); the owner read on-chain on 2026-09-30 is 0x5f0e0f73…6e5e05.
Protocol details
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.