OKO TOKEN Honeypot
What happened
OKO TOKEN (OKO) is an ERC-20 token deployed on Ethereum on 7 December 2020 at 0x03f3Acb1…67499c, with its 30,000-token supply minted to the deployer 0x279DE1d6…6672da. The source header advertises no minting and liquidity locked for 24 hours, but the contract has no lock, and the deployer can switch on a transfer filter through a function named ints. Once it is on, a transfer succeeds only if the deployer is a party or the sender is a chosen address, the Uniswap V2 router, or a whitelisted wallet, so ordinary holders cannot sell into the pool.
About 3 hours 20 minutes after deployment, the deployer removed the pool's liquidity in transaction 0x62cfe192…dd63a7, receiving about 158.12 ETH and 13,775 OKO. De.Fi's REKT database lists OKO as a honeypot with a $34,283 loss.
How it happened
- The constructor stores the
ownerargument in both_address0and_address1and mints the supply to it; the constructor arguments show this is the deployer 0x279DE1d6…6672da. While the two are equal, the transfer filter is off and the token trades normally. ints(address addressn)lets only_address0set_address1to any address. Once_address1differs from_address0, the filter is on.- Every transfer calls
_ints. When neither sender nor recipient is_address0, it requiressender == _address1 || sender==_router || _Addressint[sender]and otherwise reverts with a misleadingERC20: transfer from the zero addressmessage. A holder selling on Uniswap V2 is the sender of the transfer into the pair, so the sale reverts unless that holder is whitelisted. If_address1is set to the pair, transfers out of the pair (buys) still pass. multiaddresslets_address0send tokens to a list of wallets and add the firstAllowNof them to_Addressint, exempting those wallets from the filter.- In transaction 0x62cfe192…dd63a7 (block 11403320, 03:52:34 UTC) the deployer called
removeLiquidityETHWithPermiton the Uniswap V2 router and received 158.12 ETH and 13,774.9998 OKO from the pair.
Protocol details
Evidence
- report CaptainJackAPE tweet (De.Fi proof link) twitter.com
- transaction OKO contract creation transaction etherscan.io
- transaction OKO liquidity removal transaction 0x62cfe192...63a7 etherscan.io
- address OKO TOKEN (ERC20) verified source code etherscan.io
- analysis Sourcify match for 0x03f3Acb1193F1B7fa6a0a0192c45ac82f667499c on Ethereum repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.