LightLink token Rug Pull
What happened
This LightLink token (LL, BNB Smart Chain contract 0x44CE3a2e…aB3fD9) is a BEP20 token deployed on 2023-03-17, and CertiK's alert says not to confuse it with projects of a similar name. Its code blocks wallet sells by default: a canSell flag starts false and only a stored token-owner address can flip it, so any sale into the pool reverts with canSell until that address allows it. The token-owner address, the contract creator and the contract itself are excluded from that check.
On 2023-03-18 CertiK Alert reported a large liquidity removal on the token, with the deployer taking about 65,000 USD from the pool, and described the token as appearing to be a honeypot. De.Fi's REKT database lists the price as dropping about 90% after liquidity was removed and tokens were sold.
Deployer: 0x04fe6903…72cac1 Example liquidity removal transaction: 0xef47fcb2…f737dd
How it happened
- The constructor creates a pool against BSC-USD, mints 100,000,000 LL to
tokenOwner, and excludestokenOwner, the owner and the contract from fees. canSellis a plainboolthat defaults to false.changeCanSellflips it and requires_tokenOwner == msg.sender;_tokenOwnerhas no setter.renounceOwnershiponly clears_owner, so it does not remove this switch.- In
_transfer, a sale (to == uniswapV2Pair) from a non-excluded wallet hitsrequire(canSell,"canSell")and reverts while the flag is false. Wallet-to-wallet transfers hit the same check. Buys (from == uniswapV2Pair) skip it, take a 5% burn, and pass. - The owner-side
maxSellTokensets a cumulative sell cap per address, enforced byrequire(_maxSell[from] >= _haveSell[from].add(amount), "maxSell"), so a small cap blocks further sells by that wallet even whencanSellis true. - When tokens are sent to the pool in a way that looks like adding liquidity,
require(_tokenOwner == from)means only the token owner can add liquidity. The excluded token-owner address is not subject to thecanSellcheck. - What happened, per CertiK Alert: the deployer removed about 65,000 USD from the pool and the token appears to be a honeypot. The sources opened do not show whether
canSellwas ever switched.
Protocol details
Evidence
- report @certikalert incident report twitter.com
- report LightLink (LL) source on Sourcify repo.sourcify.dev
- report CertiK Alert post on LightLink token liquidity removal twitter.com
- transaction bscscan.com transaction 0xef47…37dd bscscan.com
- address LightLink (LL) verified source code on BscScan bscscan.com
- address bscscan.com address 0x04fe…cac1 bscscan.com
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.