REALSWAK Rug Pull
What happened
REALSWAK was an NFT project whose SWAK token on BNB Chain was deployed as a disguised upgradeable proxy. The verified contract at the token address holds no token logic: every call is forwarded with delegatecall to an implementation address kept in a storage slot, and one admin address (named auctioneer in the code) can point that slot at any new contract through a function misleadingly called Transfer. That means the admin can replace the token's entire behaviour, including balances and transfer rules, at any time, and the renounced owner() visible through the proxy does not limit this power.
PeckShield reported on 22 March 2022 that REALSWAK had rugged, deleted its social accounts, and that about 1,300 BNB went from the SWAK team's address into Tornado Cash. De.Fi's listing says the deployer removed all liquidity and puts the loss at $526,968.
How it happened
- The token address runs
SWAKToken, whosefallback()andreceive()both callauction(), which delegates the whole call to the address stored in slotNFT1(let result := delegatecall(gas(), role, 0, calldatasize(), 0, 0)). NFT1is0x360894a1...382bbcandNFT2is0xb5312768...5d6103, the standard EIP-1967 implementation and admin slots, hidden behind NFT-themed names.- The admin stored in
NFT2can callfunction Transfer(address to) external onlyAuctioneer { transferTo(to); }, which writes any contract address intoNFT1. The only check isrequire(Address.isContract(to));. - Because holders' balances live in the proxy's storage, a new implementation can rewrite transfer rules, block sells or move balances without any holder approval. Ownership renounced in the implementation (the current
owner()reads as the zero address) does not touch the admin slot. - According to De.Fi's listing, the deployer removed all SWAK liquidity; PeckShield reported about 1,300 BNB sent from 0x6b51df1a…35776c into Tornado Cash on 22 March 2022. No source shows whether the admin used the upgrade function.
Protocol details
Evidence
- report PeckShieldAlert on X: @REALSWAK just rugged twitter.com
- transaction BscScan liquidity removal transaction 0xc079f43a29ad6e616a9dfdcd10304102d5e78416a478878aaddd20a28b552410 bscscan.com
- address SWAK token (SWAKToken proxy) verified source code on BscScan bscscan.com
- analysis Web Archive web.archive.org
- analysis Sourcify match for 0x6609F543d38816116fa5b9a98C918cA947f5455D on BNB Chain repo.sourcify.dev
- analysis bscscan.com page txs bscscan.com
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.