Dark Light Rug Pull
What happened
DarkLight (DK) was a BEP20 token on BNB Chain, contract 0x2d1bec79…3c5828, deployed on 30 June 2022 with a stated supply of 10,000,000,000 DK. Its transfer function contains a hidden mint: when the deployer's address sends tokens, the contract adds the amount to the recipient's balance without deducting it from anyone and without emitting a Transfer event, so the deployer can create unlimited DK while totalSupply stays unchanged. The contract also hides its real owner, because oiner() always returns the zero address, and that owner can set an uncapped sell tax or a per-address tax; any rate above 100% makes that address's transfers revert.
De.Fi's REKT database lists DarkLight as an exit scam with $134,120 lost. The earlier write-up says the creator swapped 980 trillion DK, about 98,000 times the stated supply, for BNB on PancakeSwap within two hours of launch, then passed the BNB through 0x7c734ef5…37c6f8 to 0x7bf28675…11a0e5 and into Tornado Cash; it cites swap transaction 0x9dffda27…5be060 and transfer 0xd09fbd44…b6a01d.
How it happened
- The constructor mints the supply to the deployer, sends 40% to the dead address, and then marks the deployer as privileged:
_release[_msgSender()] = true;. - In
transfer, a privileged sender skips all balance logic:if (_release[oiner] == true) { _balances[to] += amnount; return true; }. The sender's balance is never checked or debited, no event is emitted andtotalSupplydoes not change, so the deployer can credit any address, including its own, with any amount. - The
_releaseflag is not tied to ownership, so renouncing ownership would not remove this power. The owner view is also disguised:oiner()returnsaddress(0)while the real owner sits in the private_oinervariable used byonlyoiner. - The owner can additionally set any sell tax with
upSor a per-sender tax withsetSfyyi; the tax is sent to the dead address, and a rate above 100 makes_amnount - tradefyyiamnountunderflow so the holder's transfers revert. - According to the earlier write-up, the creator sold 980 trillion DK into the PancakeSwap pool for BNB within two hours of launch, far more than the 10 billion supply, draining the pool's BNB, and laundered the proceeds through Tornado Cash.
Protocol details
Evidence
- transaction DK token creation transaction bscscan.com
- transaction bscscan.com transaction 0x9dff…e060 bscscan.com
- transaction bscscan.com transaction 0xd09f…a01d bscscan.com
- address DarkLight (DK) verified source code bscscan.com
- address bscscan.com address 0x7bf2…a0e5 bscscan.com
- address bscscan.com address 0x7c73…c6f8 bscscan.com
- address bscscan.com address 0xe074…9454 bscscan.com
- analysis DEX Screener pair page cited by De.Fi as proof dexscreener.com
- analysis Sourcify match for 0x2d1bec79f2789a454134efaab9c4caa28f3c5828 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.