BJS Rug Pull
What happened
BJS (BJS) is a BEP-20 token on BNB Chain at 0x17c8dd4A…D35c1C, deployed on 14 October 2022 at 18:27 UTC by 0x4BEd9927…73740e with a BJS/USDT PancakeSwap pair. On 13 July 2023 CertiK reported that about $290K in BSC-USD was removed from the BJS liquidity pool by an externally owned account; De.Fi's REKT database lists it as an exit scam/rug pull with $290k reported lost. The token has no blacklist or post-launch mint and its trade fee is fixed at 10%, but the owner can halt trading indirectly: the four fee-wallet setters accept the zero address, and every fee slice is sent through a transfer that reverts on a zero recipient.
No opened source shows the owner used this; the reported loss came from liquidity being pulled out of the pool.
How it happened
- The constructor creates the BJS/USDT pair and mints the whole 100,000,000,000 BJS supply to the owner.
- Every trade with
uniswapV2Pairby a non-exempt wallet pays a fixed 10% fee inside_transfer: buys send 6%, 2% and 2% toinviteRewardAddress,nodeRewardAddressandpledgeRewardAddress, and sells send 1% to the dead address and 9% toofficialRewardAddress. Each slice goes throughsuper._transfer, which runsrequire(recipient != address(0), "ERC20: transfer to the zero address"). - The owner can call
setOfficialRewardAddress,setInviteRewardAddress,setNodeRewardAddressorsetPledgeRewardAddresswith no zero-address check. SettingofficialRewardAddressto the zero address would make every non-exempt sell revert; setting any of the three buy-side wallets to zero would make every non-exempt buy revert. Wallets marked withexcludeFromFees(the owner, the contract and the router at deployment) skip the fee path and could still trade. No opened source shows these setters were called. - Liquidity sits in the PancakeSwap pair, and whoever holds its LP tokens can withdraw the USDT side.
- On 13 July 2023 CertiK detected a large liquidity removal on BJS: about $290K BSC-USD was taken out of the pool by an EOA starting 0x0e509.
Protocol details
Evidence
- report @CertiKAlert incident report twitter.com
- report CertiK Alert: large liquidity removal on BJS (BJS) twitter.com
- transaction BJS contract creation transaction bscscan.com
- transaction bscscan.com transaction 0x3c71…f1e6 bscscan.com
- address BJS verified source code bscscan.com
- address bscscan.com address 0x4bed…740e bscscan.com
- analysis Sourcify match for 0x17c8dd4ADf020Be82D296Aacde62c6030cD35c1C on BNB Chain repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.