Creso Rug Pull
What happened
Creso (CRE) is a BNB Chain token deployed on 23 November 2023 at 0x1300E870…0a2ee7 by 0xF0F26195…bCC606. The token contract keeps no balances: balanceOf and every transfer are forwarded to a private accounting contract that only the owner could set, so that unpublished contract decides who can sell and how many tokens any wallet holds, while the token still emits normal-looking Transfer events. The declared supply is 1,000,000 CRE, yet PeckShield reported that the deployer swapped 100,100,100,100,100,100,100.1001 CRE for 988.63 WBNB (about $233.7K) and the price dropped 100%.
De.Fi's REKT database lists CRE as an exit scam/rug pull in which the deployer removed 640.73 WBNB (153,603 USD) of liquidity from the PancakeSwap pool (tx 0x0ee1cb2c…da4c02, after the liquidity add in tx 0x775977be…8b2255) and moved the funds to another address, which spread them across several wallets.
How it happened
- The constructor sets
_totalSupply = 1000000 * 10 ** 9and emitsTransfer(address(0), msg.sender, _totalSupply)but writes no balance. The contract has no balance mapping at all. balanceOfreturnsAccounting(accounting).balanceOf(who), andsetAccountingAddress(address accountingAddress)lets the owner pointaccountingat any contract. The address isprivateand its code is not part of the verified source.transferemitsTransfer(msg.sender, to, amount)and then returnsAccounting(accounting).doTransfer(msg.sender, msg.sender, to, amount);transferFromdoes the same with the caller passed as the first argument. The external contract therefore sees the caller (for a sale, the PancakeSwap router), the sender and the recipient, and can refuse, alter or approve each move, or report any balance for any wallet, with no link to the declared 1,000,000 supply.renounceOwnership()setsownerto the zero address, which the chain shows today. That only stops the accounting address from being changed; the logic inside the accounting contract keeps running.- PeckShield reported that the deployer sold 100,100,100,100,100,100,100.1001 CRE, about 10^14 times the declared supply, for 988.63 WBNB. Only a balance reported by the external ledger could cover that amount.
Protocol details
Evidence
- report PeckShieldAlert: Creso $CRE has dropped -100% twitter.com
- transaction Creso contract creation transaction bscscan.com
- transaction Liquidity removal transaction 0x0ee1cb2c...4c02 bscscan.com
- transaction bscscan.io transaction 0x0ee1…4c02 bscscan.io
- transaction bscscan.io transaction 0x7759…2255 bscscan.io
- address Creso (CRE) verified contract code on BscScan bscscan.com
- address bscscan.io address 0xF0F2…C606 bscscan.io
- analysis Sourcify match for 0x1300E8702240429A4f3f66cB6aB2dEF51C0a2ee7 on BNB Chain repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.