Horny Farm Honeypot

Reported loss Not disclosed
Ethereum
Honeypot

What happened

HORNY (listed as Horny Farm) was an ERC-20 token on Ethereum (0x865ba66e…4e67ec) that blocked every sale into its Uniswap pool. The token stores one blocked address, newun. The first transferFrom call sets newun to that call's recipient, and from then on any transfer or transferFrom to newun reverts with "please wait".

The contract's first transferFrom was the Uniswap router moving the deployer's tokens into the new pool, so the pool itself became the blocked address. Buys, which send tokens out of the pool, kept working, but every sell reverted. On 9 April 2021 at 23:50:32 UTC the deployer, 0x2C5BA746…574D7d, added the entire 6,900,000 HORNY supply and 9 ETH to Uniswap V2.

At 00:13:06 UTC on 10 April it removed all of its LP tokens, receiving 10.65 ETH and 5,833,893 HORNY. The extra ETH came from buyers who could not sell. Its source comment advertises a 6.9% burn tax, but the code charges none.

Etherscan flags the contract as phishing, and De.Fi's REKT database lists it as a honeypot.

How it happened

  1. The constructor credits the full supply to the owner: _totalSupply = 690000000000000; with 8 decimals (6,900,000 HORNY), balances[owner] = _totalSupply;.
  2. transferFrom sets the blocked address on its first use: if(from != address(0) && newun == address(0)) newun = to;. Every later call runs else require(to != newun, "please wait");, and transfer always runs require(to != newun, "please wait");.
  3. At 23:50:32 UTC on 9 April 2021 the deployer called addLiquidityETH with 6,900,000 HORNY and 9 ETH (transaction 0x938f52d2…b35cd4). The router's transferFrom from the deployer to the new pair 0x59ba94e8…1B9bf0 was the contract's first transferFrom, so newun became the pair.
  4. From then on, buys worked because tokens moved out of the pair to buyers. A sell has to move tokens to the pair, so it reverted with "please wait". Seven other addresses approved the token between 23:50 and 23:59 UTC.
  5. The owner can move the block with transfernewun(address) and can withdraw any ETH held by the token with clearCNDAO.
  6. At 00:13:06 UTC on 10 April 2021, about 23 minutes after adding liquidity, the deployer burned all 0.0788 LP tokens with removeLiquidityETHWithPermit. It received 10.65 ETH and 5,833,893 HORNY (transaction 0xafebccfb…13c7af). This payout is not blocked because the tokens leave the pair rather than go to it. The deployer then sent 11 ETH onward (transaction 0x9a500c90…2496b2).

Protocol details

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

Build your security review skills

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