PepeRise Honeypot

Reported loss Not disclosed
BNB Chain
Honeypot

What happened

PepeRise ($PEPERISE) is a BEP20 token on BNB Smart Chain, deployed on 2021-06-20 as contract 0x1afcbd62…d3666b. De.Fi's REKT database lists it as an exit scam / honeypot in which the owner could stop holders from selling. The verified source supports that: both transfer and transferFrom revert with "please wait" when the recipient equals the stored address newun, and newun is captured automatically from the first transferFrom while it is unset.

If newun is the liquidity pair, every sell routed through the pair reverts while buys still work. The owner can also change newun through transfernewun.

How it happened

  1. The deployer (0x669Cec88…94b218) receives the whole supply in the constructor: balances[owner] = _totalSupply;.
  2. Both transfer paths carry a recipient block. transfer starts with require(to != newun, "please wait"); and transferFrom runs else require(to != newun, "please wait");. Nothing in the contract names a pair or router, so the check looks like an ordinary cooldown.
  3. transferFrom begins with if(from != address(0) && newun == address(0)) newun = to;. While newun is zero, the recipient of the first transferFrom is stored as newun and that transfer succeeds. If that first transferFrom is the one that moves tokens into the liquidity pair, the pair becomes the blocked recipient. The code does not show which transaction set it on-chain.
  4. A buy is paid out by the pair, so the pair is the sender and the buyer is not newun: the transfer passes. A sell has the router call transferFrom(holder, pair, amount), so to == newun and the call reverts with "please wait". Holders can buy but cannot sell through that pair.
  5. transfernewun(address _newun) public onlyOwner lets the owner overwrite newun. Setting it to address(0) re-arms the capture so the next transferFrom recipient is stored; pointing it at an address that is not the pair removes the block. The contract has no renounce function, only transferOwnership and acceptOwnership.
  6. clearCNDAO() is onlyOwner and sends the contract's own BNB balance to the owner. It does not touch liquidity-pair funds. What happened to the liquidity itself is not shown in the code or in any source opened here.

Protocol details

Classification Token
Protocol Type Exit Scam/Honeypot
Affected asset / contract $PEPERISE

Build your security review skills

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