BaTorrent Honeypot
What happened
De.Fi's REKT database lists BaTorrent (BA) on BNB Smart Chain as an Exit Scam/Honeypot and says the contract owner could disable the transfer function. The verified source has no on/off switch, but it has an address variable, newun, that no transfer may send tokens to: transfer and transferFrom both revert with "please wait" when the recipient equals newun. The owner can point newun at any address with transfernewun, and the first transferFrom after deployment sets it automatically to that call's recipient.
If newun holds the liquidity pair, every sale into the pool reverts while buys, which are sent from the pair, are not blocked by this check.
How it happened
- The constructor mints the full supply to the deployer:
_totalSupply = 500000000000000000000000000;withdecimals = 18, which is 500,000,000 tokens. transferrefuses any send to thenewunaddress:require(to != newun, "please wait");. There is no exception for the owner or any whitelist.transferFrom, the call a router uses to pull a seller's tokens, starts withif(from != address(0) && newun == address(0)) newun = to; else require(to != newun, "please wait");. Whilenewunis unset, the first call stores its recipient innewunand succeeds; every later call to that recipient reverts. The seed blog post describes this asnewunbecoming the PancakeSwap pair during the initial liquidity add; the code alone does not show which addressnewunholds on-chain.- If
newunis the pair, a holder's sale reverts atrequire(to != newun, ...), while a buy is paid out by the pair throughtransferto the buyer's address, which passes the check. transfernewun(address _newun) public onlyOwnerlets the owner changenewunat will. Setting it to zero re-arms the capture by the nexttransferFromrecipient, and pointing it at an address that is never used lifts the block for every sender, so the restriction is under the owner's control rather than permanent.clearCNDAO()isonlyOwnerand sends the contract's own BNB balance to the caller; it does not touch holders' token balances.
What the code allows is separate from what happened: the code shows the mechanism, and De.Fi's REKT database is the source for the honeypot classification.
Protocol details
Evidence
- report @Token_Sniffer incident report twitter.com
- address BscScan verified source for 0xd6990fa51e1eb64c869dd5ba6aacf51121390159 bscscan.com
- analysis Scam explained: BSC stealthy LP block cryptot3ddybear.gitlab.io
- analysis Sourcify repository copy of the same contract repo.sourcify.dev
- analysis De.Fi REKT database listing for BA (as imported in meta.json) de.fi
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.