Raichu Thunderstone Rug Pull
What happened
Raichu Thunderstone (RAI) is an Ethereum token deployed on 30 September 2023 at 0x3564A13c…b83DC3 by 0xF4FA6Fc6…FFB30F. Its owner is set to the zero address in the constructor, so the token looks renounced from the start, but every taxed transfer calls balanceOf(from) on a hard-coded external contract, 0x551464E9…AbedAC, and subtracts the answer from zero. Any non-zero answer makes the subtraction underflow and the transfer revert, so whoever controls that unverified contract can decide which addresses can sell or move RAI.
The advertised 2% and 4% taxes are never charged, because the tax is reset to zero before this check. Later that day the deployer removed its Uniswap V3 position in transaction 0xde82a653…8e42d5, taking about 4.87 billion RAI and 37.23 WETH; De.Fi's listing gives about 37.05 WETH (60,264 USD) and says the funds went to another EOA and then to multiple addresses, including 0x6C42b841…6Feeb9 and 0x214fBe9d…D58575.
How it happened
- The
Ownableconstructor sets_owner = address(0), soowner()returns the zero address andrenounceOwnershipcan never be called; the token appears ownerless. - Because no real transfer involves the zero address, the condition
if (from != owner() && to != owner())is true for every transfer, andtaxAmountbecomes 2% (or 4%) of the amount. - The tax branch then runs
taxAmount = 0;, loads the hard-coded address 0x551464E9…AbedAC (stored as the decimaluint160constant485719020939537256468196668997616180115360443820) and callsIUniswapV2Pair(...).balanceOf(from)on it. - It executes
taxAmount -= taxDiscount;. Under Solidity 0.8.19 checked arithmetic, any non-zerotaxDiscountunderflows and reverts the whole transfer. That contract therefore acts as a hidden blocklist for any sender, including a holder selling into the pool; thebalanceOfcall is declared non-view, so it can also change state. - The helper contract's source is not verified, so holders cannot read the rule that decides who is blocked.
- On 30 September 2023 the deployer removed its Uniswap V3 liquidity position and received about 4.87 billion RAI and 37.23 WETH.
Protocol details
Evidence
- report @CyversAlerts incident report x.com
- report Cyvers Alerts: rug pull transactions totaling $500K ($BUGMAN, $GAIDEN, $RAI, $TAIZO) x.com
- transaction Raichu Thunderstone contract creation transaction etherscan.io
- transaction Etherscan transaction 0xde82a65356b8201046e64a61e5d9a2ed7c2de20cbe7b231c19ed12600d8e42d5 etherscan.io
- address Raichu Thunderstone (RAI) verified contract code on Etherscan etherscan.io
- address Etherscan address page for 0x551464E900dE90428cD53D51C8D6fBBa13AbedAC etherscan.io
- address etherscan.io address 0x214f…8575 etherscan.io
- address etherscan.io address 0x6C42…eeb9 etherscan.io
- address etherscan.io address 0xF4FA…B30F etherscan.io
- analysis Sourcify exact match for 0x3564A13c1467184479B3FA32CcB17f61F6b83DC3 on Ethereum repo.sourcify.dev
- analysis De.Fi REKT database listing for RAI de.fi
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.