Humble Honeypot

Reported loss Not disclosed
BNB Chain
Honeypot

What happened

Humble (HUMB) is a BEP-20 token deployed on BNB Chain on 27 March 2021 at 0xf358fdba…5f29cd by 0xB2b50Aa6…74fB51. Its header comment presents it as a yield farm and says the mint function is inaccessible, but the deployed contract has no farm logic. Every transfer runs a check, ensure, that passes only when the sender or recipient is the owner, the sender is an owner-chosen tradeAddress, or the sender is on an owner-managed canSale list.

Everyone else falls through to condition, which always returns false because its three limits are never set, so if the owner points tradeAddress at the PancakeSwap pair, buyers can receive HUMB but cannot sell it. The owner can also overwrite any address's balance through a function misleadingly named approveAndCall. De.Fi's REKT database lists Humble as an exit scam/honeypot dated 27 March 2021, with no loss figure.

How it happened

  1. The constructor sets the private owner to the deployer and gives it the whole supply of 30,000 HUMB. There is no function that changes owner; the function named transferownership only sets tradeAddress.
  2. transfer and transferFrom both call ensure, which returns true only if(_from == owner || _to == owner || _from == tradeAddress||canSale[_from]). Otherwise it runs require(condition(_from, _value)).
  3. condition starts with if(_saleNum == 0 && _minSale == 0 && _maxSale == 0) return false;. The three private variables have no setter, so they stay zero and every transfer from an ordinary holder reverts, whatever the amount.
  4. Transfers out of tradeAddress pass. With the pair set as tradeAddress, the pool can send tokens to buyers, while a sale, which is a transfer from the buyer to the pair, fails.
  5. approveAndCall(address spender, uint256 addedValue) is owner-only: it sets balanceOf[spender] = addedValue*(10**uint256(decimals)) and adds the address to canSale. This works as a hidden mint: the owner can give any address an arbitrary balance, outside totalSupply and with no Transfer event, and let it sell into the pool, or overwrite a holder's balance with a smaller amount.

Protocol details

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

Build your security review skills

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