SHADE INU Token Rug Pull
What happened
SHADE INU Token (SadeIT) is a BNB Chain token at 0x24676Ea2…C43d7e, deployed on 6 July 2022 by 0x698C726d…8BA003. Its transfer function contains a hidden mint: when the caller is flagged in the private _release mapping, which the constructor sets for the deployer and nothing can clear, the function only adds amount to the recipient's balance, without debiting the caller, emitting a Transfer event or changing totalSupply. The contract also fakes a renounced owner, because onwner() always returns the zero address while the real owner stays in a private variable, and that owner can set sell fees and per-wallet fees with no upper limit.
De.Fi's REKT database lists SadeIT as a rug pull. According to the listing, the creator minted 5 billion tokens in the deployment transaction 0x5f5bd205…c146d7, and a PancakeSwap pool was created (0xcba09086…eaef9e) with 200 BNB that 0x91a20dcb…b4b073 sent to the creator (0x09aa93f9…62137f). Two swaps of about 983 trillion SadeIT (0xd2811df9…edc733 and 0xd6fb62ac…32ddc7) returned 424.8 BNB, a profit of 224.8 BNB. De.Fi adds that all the tokens were then moved to another address in transaction 0x1b672d0a…a939fa, and that from that address 150 BNB went to 0x5f56e93b…706f6c, the creator of the $NodyC token, which it says was also rugged.
How it happened
- The constructor mints
totalSupply_ * 10**18to the deployer, sends 40% of it to the dead address, and then sets_release[_msgSender()] = truefor the deployer. No function can change_releaseafterwards. - In
transfer, a_releasecaller skips the normal path:_balances[to] += amount; return true;. The caller's balance is never debited, noTransferevent is emitted andtotalSupplydoes not move, so the deployer can credit any address with any amount of SadeIT while explorers still show the original supply. onwner()is hard-coded toreturn address(0), so the token appears renounced, butonlyonwnerchecks the private_onwner, which is still the deployer unlessrenounceonwnershipwas called. Renouncing would not remove the_releasepower in step 2.- The owner can call
upSto set the default sell fee andsetSfiyyto set a per-wallet fee that overrides it, both without an upper limit. The fee is debited from the sender and sent to the dead address; a fee above 100 makes_amount - tradefiyyamountunderflow, so that wallet's transfers and sales revert. - De.Fi reports that about 983 trillion SadeIT were sold into the pool in two swaps for 424.8 BNB. If that figure is accurate, it exceeds the 5 billion total supply, and the
_releasebranch oftransferis the only code path that can create such a balance.
Protocol details
Evidence
- transaction SadeIT contract creation transaction bscscan.com
- transaction bscscan.com transaction 0x09aa…137f bscscan.com
- transaction bscscan.com transaction 0x1b67…39fa bscscan.com
- transaction bscscan.com transaction 0xcba0…ef9e bscscan.com
- transaction bscscan.com transaction 0xd281…c733 bscscan.com
- transaction bscscan.com transaction 0xd6fb…ddc7 bscscan.com
- address SHADE INU Token (SadeIT) verified contract code on BscScan bscscan.com
- address bscscan.com address 0x2467…3d7e bscscan.com
- address bscscan.com address 0x5f56…6f6c bscscan.com
- address bscscan.com address 0x698c…a003 bscscan.com
- address bscscan.com address 0x91a2…b073 bscscan.com
- analysis Sourcify match for 0x24676Ea2799ac6131E77bCd627CB27dEe5C43d7e on BNB Chain repo.sourcify.dev
- analysis De.Fi REKT database listing for SadeIT de.fi
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.