Governor Network Honeypot
What happened
This token contract (Governor Network, GVN) runs every transfer through ensure, which only lets the owner, the owner's counterparties, one stored tradeAddress and addresses marked canSale move tokens. Anyone else falls through to condition, which always returns false because its three limit variables are declared but never assigned. A holder who is not on the owner's list therefore cannot sell or send tokens to any address except the owner.
De.Fi's REKT database lists the token as an Exit Scam/Honeypot, noting that the contract owner could disable the transfer function, which restricted users in selling their tokens. The source's header comment describes a stableswap protocol with liquidity mining and a locked developer fund; the contract itself contains only this token logic.
How it happened
- The constructor sets
owner = msg.sender;and credits the whole supply to it withbalanceOf[msg.sender] = totalSupply;.owneris private and nothing in the code changes it. - Every
transfercallstransferFrom, which requiresensure(_from, _to, _value).ensurereturns true early only when_from == owner || _to == owner || _from == tradeAddress||canSale[_from]; otherwise it must passrequire(condition(_from, _value)). conditionstarts withif(_saleNum == 0 && _minSale == 0 && _maxSale == 0) return false;._saleNum,_minSaleand_maxSaleare private and never assigned in the source, so they stay 0 andconditionalways returns false. Therequiretherefore reverts for any sender that is not on the exemption list, including a sale into a liquidity pair, unless the recipient is the owner.- The owner decides who is exempt.
transferownership(address addr)only setstradeAddress = addr;and does not change the owner despite its name.approveAndCall(address spender, uint256 addedValue)setscanSale[spender]=true;and, whenaddedValue > 0, overwritesbalanceOf[spender] = addedValue*(10**uint256(decimals));without changingtotalSupply. - On a DEX, a buy sends tokens from the pair, so it works only if the pair is
tradeAddressorcanSale. A sell sends tokens from the holder to the pair, so it works only if the holder was markedcanSale. - What happened: De.Fi's REKT database lists the token as an Exit Scam/Honeypot. No transaction was opened showing which addresses the owner exempted or whether any holder tried to sell.
Protocol details
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.