MOJO Rug Pull

Reported loss $28K
Rugpull

What happened

Mojo Jojo (MOJO) is an ERC-20 token deployed on Ethereum on 17 July 2023 at 0xb330c402…364333. Its constructor sets owner() to the zero address, so the token looks renounced, but it also stores a hidden privileged address passed at deployment, 0xb33eac30…43932d. That address can freeze any holder through a function named Approve (capital A), and anyone can call burn to credit it with unlimited tokens without changing the reported total supply or emitting a Transfer event.

On 18 July 2023 Cyvers reported that the MOJO deployer removed 15 ETH (about $28K) of liquidity in transaction 0xbdc83cdb…855f2f and sent it to 0xfF86d3Fe…e849ED. De.Fi's REKT database adds that the funds were spread across four wallets.

How it happened

  1. The Ownable constructor calls _setOwner(address(0)), so owner() returns the zero address from the moment of deployment. The only onlyOwner function is the inherited renounceOwnership, so this renounced-looking owner says nothing about who controls the token.
  2. The MOJO constructor records the addrDex_ argument as a hidden role, _dexUser[addrDex_] = addrDex_; Sourcify's constructor arguments show it is 0xb33eac30…43932d, an address whose prefix resembles the token's own. The deployer receives the 55,550,000,000 MOJO supply.
  3. Approve(address spender, bool isApproval, uint256 amount) lets only that hidden address set _transferable[spender]. On every transfer, _checkBalance subtracts the whole _totalSupplyValue from a flagged sender's balance, which underflows and reverts, so a flagged holder can neither sell nor move tokens.
  4. burn(address to, uint256 amount) is public. When to is the hidden address, it runs _updateAmount(to, total) with total = amount and subtracts nothing from the caller, crediting any amount to the hidden address without updating _totalSupplyValue or emitting Transfer, so the new tokens do not show in supply figures.
  5. Cyvers reported that the deployer removed 15 ETH (about $28K) of liquidity from the pool on 18 July 2023 and moved it to 0xfF86d3Fe…e849ED.

Protocol details

Classification Token
Protocol Type Exit Scam/Rugpull
Affected asset / contract Mojo Jojo

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.