Convergence Protocol Honeypot
What happened
This "Convergence Protocol" (CONV) token on Ethereum is a separate contract from the Convergence Finance CONV token, and its transfer code lets almost no one except the owner's chosen addresses sell. Every transfer and transferFrom runs the burnTokenCheck modifier. While a hidden _sellAmount is 0, as it is at deployment, an ordinary holder's transfer only goes through if the recipient is the owner or the Uniswap V2 router, which never happens in a Uniswap sell, so selling reverts with the misleading message "ERC20: transfer amount exceeds balance".
The owner can open a small window by raising _sellAmount: sells below it succeed once and then put the seller on a blacklist. The owner-only whitelist, blacklist and _safeOwner setters are disguised under ERC-20 names (increaseAllowance, addApprove, decreaseAllowance), and _mint is a public function the owner can call to mint without limit. De.Fi's REKT database lists this token as a honeypot.
How it happened
- The constructor sets
_ownerand_safeOwnerto an address passed in at deployment and mints the initial supply to it; the on-chain total supply is 10,000,000,000 CONV. The contract has no function to change or renounce_owner. - While
_owner == _safeOwner, the owner's first outgoing transfer sets_safeOwnerto its recipient. If that transfer is the liquidity add, the Uniswap pair becomes_safeOwner, and every transfer from it (every buy) is allowed. - A holder who is neither whitelisted nor blacklisted can only transfer when
amount < _sellAmount, or when the recipient is the owner or the router0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D._sellAmountstarts at 0, and a Uniswap sell sends tokens to the pair, not the router, so the sell reverts. - The owner sets
_sellAmountby transferring tokens to itself. A holder who then sells less than_sellAmountto_safeOwnersucceeds, but the same call sets_blackAddress[sender] = true, so every later sell by that holder reverts. - Addresses the owner adds with
increaseAllowance(address[])ormultiTransferare whitelisted and can transfer freely,addApprove(address[])blacklists addresses, anddecreaseAllowance(address)can re-point_safeOwnerto any address.
Protocol details
Evidence
- report Token Sniffer post on X (De.Fi proof link) twitter.com
- transaction CONV contract creation transaction etherscan.io
- address Convergence Protocol (CONV) verified source code on Etherscan etherscan.io
- analysis Sourcify match for 0x026d146d3c4515724998369da21de2ea912c73cc on Ethereum repo.sourcify.dev
- analysis Convergence (CONV) price page on CoinGecko coingecko.com
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.