Marvel Metauniverse Rug Pull
What happened
Marvel Metauniverse (MRV, contract 0x706BABd2…F624BF) is a BEP-20 token on BNB Smart Chain that De.Fi's REKT database lists as a rug pull of 93,746 USD on 2022-08-28. The listing says the MRV price fell more than 92% on PancakeSwap after an owner-related address sold aggressively, and that the owner had first moved already-minted tokens to an externally owned account that then started selling. The verified source credits the entire fixed supply of 96,000,000 MRV to a constructor-supplied tokenOwner that is also exempt from trading fees, and gives the contract owner switches that can stop other holders from selling or sending; whether those switches were used is not shown by any transaction opened here.
Addresses and transactions named in the De.Fi listing:
- Dumper: 0x6e750902…a22764
- Owner: 0xb76f7e4a…23a752
- Another address shown without a stated role: 0x81d3ec77…17fe3b
- Transactions between dumper and owner: 0x7fd0c90d…ee4a96, 0xcd8e6176…25e496, 0x641a6a31…69049b
How it happened
- The constructor credits the whole fixed supply to the
tokenOwnerargument and exempts that address from fees:_rOwned[tokenOwner] = _rTotal;and_isExcludedFromFee[tokenOwner] = true;._owner = msg.sendermakes the deployer the contract owner. No function mints more tokens. - A fee-exempt sender or recipient bypasses all sell logic:
if(_isExcludedFromFee[from] || _isExcludedFromFee[to] || _destroyMaxAmount <= balanceOf(_destroyAddress)){ _tokenTransfer(from, to, amount, false);. A supply holder selling intouniswapV2Pairtherefore skips both the sell fee and the sell switch below, and the owner can exempt further addresses withexcludeFromFee. - Every other holder selling into the pair passes
}else if(to == uniswapV2Pair){ require(swapSellStats);, and the owner can flip that flag at any time withfunction changeSwapSellStats() public onlyOwner { swapSellStats = !swapSellStats; }. The owner can also stop a chosen address from sending at all:function excludeFromVip(address account) public onlyOwnersets the flag thatrequire(!_isExcludedFromVip[from]);checks at the top of_transfer. - Fees are capped, not open-ended:
require(_BuyRate <50 && _SellRate <50 && _transferRate <50,"do not more than 15");limits the sell fee to at most 14.7% of the amount, and the seller's balance is debited the full amount (_rOwned[sender] = _rOwned[sender].sub(rAmount);) with the recipient credited the remainder. - What happened, per De.Fi's listing: tokens were moved from the owner to an externally owned account, that account sold into the
MRVpool, the price fell more than 92% and 93,746 USD was drained. The code allows this sequence for a fee-exempt holder without any switch being flipped.
Protocol details
Evidence
- transaction bscscan.com transaction 0x641a…049b bscscan.com
- transaction bscscan.com transaction 0x7fd0…4a96 bscscan.com
- transaction bscscan.com transaction 0xcd8e…e496 bscscan.com
- address BscScan verified source for Marvel Metauniverse (MRV) bscscan.com
- address bscscan.com address 0x6e75…2764 bscscan.com
- address bscscan.com address 0xb76f…a752 bscscan.com
- analysis De.Fi REKT database listing for MRV (proof link archive.is/LJWJK, not retrievable) archive.is
- analysis Sourcify repository entry for MRV repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.