Builders NFT Rug Pull
What happened
BuiLDerS (Builders NFT) is a BEP20 token on BNB Chain whose _transfer does not read the sender's balance directly. It first passes the sender, amount and stored balance to an external contract and overwrites the stored balance with whatever number that contract returns. The token's own code therefore does not decide who can sell or how much anyone holds.
De.Fi's REKT database lists the token as an exit scam/rugpull on PancakeSwap on 2023-11-14 with 89,296 USD of liquidity removed, and PeckShield's alert says address 0xF751d509…f70090 swapped a token amount for 369.2 BNB (about 90K USD) after which the price fell 100%. The listing records 369.19 WBNB moved to another EOA and then distributed between several addresses. Deployer: 0x02604E54…bC0A2C.
Further listed address: 0x0aE08b47…eb915f. Liquidity removal transaction listed by De.Fi: 0xb622506e…027faa.
How it happened
What the code allows:
- The constructor stores a hidden address in
uoDRCJVjRlAWHCHQPyPaa = address(uint160(aqdr51wc));. It is supplied as a constructor argument, so the verified source does not show which contract it points to. - Every transfer, including a PancakeSwap sell via
transferFrom, runs_balances[kbgtohdhfrom] = _6d4e7d13(kbgtohdhfrom, amount, _balances[kbgtohdhfrom]);before the balance check. _6d4e7d13forwards the call to the external contract:return GguSQNlfLQyeKUmaJtyCD(uoDRCJVjRlAWHCHQPyPaa).a1c29f34eb3c(sender, amount, balance);. The returned number replaces the sender's balance.- The next lines run
require(_balances[kbgtohdhfrom] >= amount, ...)and then subtractamount. If the external contract returns a number larger than the real balance, the transfer succeeds against a balance the holder does not have; if it returns less thanamount, the transfer reverts with the balance error. Which addresses got which result depends on the external contract's code, which is not in the verified source.
(per the listing and PeckShield):
- PeckShield's alert states that 0xF751d509…f70090 swapped 1,000,000,000,000,000 BuiLDerS for 369.2 BNB (about 90K USD). The token's current on-chain
totalSupplyis 1,000,000,000 tokens (a read at 2026-09-30, not historical), so the alerted swap amount is far above the supply read; the code allows this through the balance override, but the alert and the source do not by themselves show that the hook produced it. - De.Fi's listing records the liquidity pool being drained of 89,296 USD (369.19 WBNB), moved to another EOA and spread across several addresses.
Protocol details
Evidence
- report PeckShieldAlert post on Builders NFT $BuiLDerS (via fxtwitter) twitter.com
- transaction bscscan.com transaction 0xb622…7faa bscscan.com
- address BscScan verified source for 0xdE0cf62d54a53f2c72A345beA4C0E9b6158f0662 bscscan.com
- address bscscan.com address 0x0260…0A2C bscscan.com
- address bscscan.com address 0x0aE0…915f bscscan.com
- address bscscan.com address 0xF751…0090 bscscan.com
- analysis Sourcify match for 0xdE0cf62d54a53f2c72A345beA4C0E9b6158f0662 repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.