Chubby Akita Honeypot
What happened
Chubby Akita (CAKITA) is a BNB Chain token deployed on 14 May 2021 at 0x6aadebd7…9b4b9f. The header of its verified source advertises a fair launch on PancakeSwap with 5% redistribution, 5% auto-liquidity, 50% of supply burned, liquidity locked until 2099 and renounced ownership, but the code has no fees at all and no way to renounce or change its _owner. Its transfer check, a modifier named burnTokenCheck, lets the owner, one hidden _safeOwner address and whitelisted wallets move tokens freely, while every other holder's transfer reverts with a fake "transfer amount exceeds balance" error unless it goes to one hard-coded router address.
A sell sends tokens to the trading pair, not the router, so ordinary holders can buy but cannot sell. De.Fi's REKT database lists Chubby Akita as an exit scam and honeypot, describing it as a contract where the owner could stop holders from selling.
How it happened
- The constructor sets
_owner = owner;and_safeOwner = owner;, then mints the initial supply through_mint, which always credits_balances[_owner]. - The owner's first outgoing transfer, while both slots are equal, moves
_safeOwnerto the recipient:if (_owner == _safeOwner && sender == _owner){_safeOwner = recipient;_;}. If that first transfer is the liquidity deposit, the pair becomes_safeOwner, and transfers out of the pair (buys) always pass. - Other senders that are not whitelisted hit
require((sender == _safeOwner)||(recipient == _unirouter), "ERC20: transfer amount exceeds balance");, where_unirouteris hard-coded to 0x05fF2B0D…608C7F. A sell moves tokens from the holder to the pair, so it reverts with a misleading message. - The only other path,
if (amount < _sellAmount), starts closed because_sellAmountis 0. The owner can open it by sending tokens to itself (_sellAmount = amount;), and a holder who then sells to_safeOwneris blacklisted:if(recipient == _safeOwner){_blackAddress[sender] = true; _whiteAddress[sender] = false;}. - The owner controls the lists and supply:
increaseAllowance(address[])whitelists,addApprove(address[])blacklists,decreaseAllowance(address)sets_safeOwner, and_mintis a public owner-only function that adds any amount to the owner's balance.multiTransferwhitelists chosen recipients and sets an unlimited router allowance on their behalf.
Protocol details
Evidence
- report Token Sniffer post (De.Fi proof link) twitter.com
- transaction Chubby Akita contract creation transaction bscscan.com
- address Chubby Akita (CAKITA) verified contract code on BscScan bscscan.com
- analysis Sourcify match for 0x6aadebd7303973dbb5699a5b5db8e9ee899b4b9f on BNB Chain repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.