Trace Network Honeypot

Reported loss Not disclosed
BNB Chain
Honeypot

What happened

De.Fi's REKT database lists Trace Network (Trace) on BNB Chain as an exit scam/honeypot and describes the owner as able to disable the transfer function so that users could not sell. In the verified source the block is a stored address called newun. The first transferFrom call with a non-zero from writes its recipient into newun; after that, any transfer or transferFrom whose recipient equals newun reverts with "please wait".

If that first call was the movement of tokens into a trading pool during the initial liquidity add, newun holds the pool address, so holders cannot sell into it while transfers out of the pool and between wallets are not touched by this check. Only the owner can overwrite newun, through transfernewun. The sources opened do not include a transaction for this token, so who held the liquidity and whether it was withdrawn is not established here.

How it happened

  1. The constructor sets owner = msg.sender and assigns the whole supply to it with balances[owner] = _totalSupply;.
  2. newun starts as the zero address. The owner can set it to any address with function transfernewun(address _newun) public onlyOwner { newun = _newun; }.
  3. In transferFrom, the line if(from != address(0) && newun == address(0)) newun = to; runs the first time any spender moves tokens: it stores that call's recipient in newun. The rest of the function still debits balances[from] and the allowance, so this first call looks like an ordinary transfer.
  4. From then on, the else branch else require(to != newun, "please wait"); runs on every transferFrom, and transfer has require(to != newun, "please wait");. Any transfer into newun reverts and the sender's balance is not debited.
  5. When newun is the liquidity pool, a holder's sale into the pool and any later liquidity add by a holder revert. Transfers whose recipient is not newun (buys paid out of the pool, wallet-to-wallet moves) pass these checks.
  6. The block applies to the owner as well while newun points at the pool. Setting newun to the zero address re-arms the capture on the next transferFrom; pointing it at an unused address lifts the block. The code shows the owner can do either; no transaction opened here shows it did.

Protocol details

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

Build your security review skills

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