SkyRocket Honeypot

Reported loss Not disclosed
BNB Chain
Honeypot

What happened

SkyRocket's token code contains a transfer lock keyed to a stored address called newun. The first transferFrom call records its recipient as newun, and from then on any transfer or transferFrom whose recipient is that address reverts with "please wait". If the recorded address is the liquidity pair, holders can buy but cannot sell back to it.

The function that could change newun is restricted to address(1), so as written no ordinary account can reset it. De.Fi's REKT database lists SkyRocket as an Exit Scam/Honeypot on BNB Chain dated 2021-05-27 and says the contract owner could disable the transfer function, which restricted users in selling their tokens. The listing gives no loss figure.

How it happened

  1. The constructor mints the entire supply (_totalSupply = 1000000000000000000000000000000000) to the deployer: balances[owner] = _totalSupply;.
  2. In transferFrom, the first call by any from != address(0) while newun is empty stores its recipient: if(from != address(0) && newun == address(0)) newun = to;. That call is not blocked.
  3. Every later call hits the other branch: else require(to != newun, "please wait");. transfer carries the same check, require(to != newun, "please wait");. Any transfer whose recipient equals newun reverts.
  4. If the first transferFrom recipient was the liquidity pair (the pattern the cited Cryptot3ddybear write-up describes for this template, where the address is stored during the add-liquidity transaction), a holder's swap, which pulls tokens into the pair through transferFrom(holder, pair, amount), reverts. Buys, where the pair sends tokens out, do not touch the check. The code alone does not show which address newun holds on-chain.
  5. The reset function transfernewun is guarded by a second onlyOwner modifier defined in TokenBEP20: modifier onlyOwner() {require(msg.sender == address(1));_;}. This overrides the Owned version, so transfernewun and clearCNDAO (which would send the contract's BNB balance to the caller) can only be called from address(1). As written, nobody can lift the lock through the contract. Whether any holder actually failed to sell is not shown by an opened transaction; the listing states the sell restriction.

Protocol details

Classification Token
Protocol Type Exit Scam/Honeypot
Affected asset / contract SkyRocket

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.