OMNI Honeypot
What happened
OMNI (OMNI) is a token on BNB Chain at 0x9610a849…99e96c, deployed on 26 March 2021 at 02:20 UTC with a supply of 20,000 OMNI. De.Fi's REKT database lists it as an exit scam/honeypot (March 2021). The contract does not switch transfers off; every transfer from an ordinary holder runs through a condition check that can never pass.
Only transfers sent by the owner, by one owner-chosen trade address or by owner-approved wallets, or sent to the owner, go through. The owner can also write any balance to any wallet through a function misleadingly named approveAndCall.
How it happened
The steps below describe what the code allows. No opened source shows which owner functions were actually called.
- The owner can call
transferownership(addr), which does not transfer ownership but setstradeAddress. If that is set to the PancakeSwap pair, transfers out of the pair passensurebecause_from == tradeAddress, so buys work. - A holder sells:
transferandtransferFromboth callensure(_from, _to, _value). The holder is notowner,tradeAddressor incanSale, and the pair is notowner, soensurerunsrequire(condition(_from, _value)). conditionreturns false when_saleNum,_minSaleand_maxSaleare all zero. No function in the contract ever sets them, so therequirealways reverts and the sale fails. Only a transfer to the owner skips this check.- The owner can call
approveAndCall(spender, addedValue), which setsbalanceOf[spender]to any amount without changingtotalSupplyand addsspendertocanSale, so that wallet could sell freely into the pool.
Protocol details
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.