There is a chart pattern I have learned to treat as a siren, even though at first glance it looks like free money. The token only goes up, day after day, barely a red candle, and the trade feed is a wall of green buys. Someone will inevitably ask me if it is too late to get in. The boring explanation for a chart like that is that nobody wants to sell yet. The more common explanation, in the small-cap corners of DEX trading, is that nobody can. That is a honeypot, and once you know the shape of one, you start spotting them everywhere.
The mechanics are simple. A honeypot token lets you buy but blocks or effectively confiscates your sell. The deployer collects the inflows, pulls the liquidity whenever it suits them, and each holder discovers at their own pace that the exit door was painted on. What surprised me when I first started reading these contracts is how little skill they take. There are template repositories and paid services that will generate one for you, so deploying a honeypot takes minutes and a few dollars in gas, while the payoff can be an entire liquidity pool. With economics like that the supply is roughly infinite. I do not trust any of the precise figures that get quoted for how many new DEX pairs are scams, but sample a day of fresh listings yourself and the proportion is depressing.
The three common mechanisms
Sell blacklists are the crude version. The transfer function checks whether the sender is on a list, or whether they are anyone other than a small whitelisted set, and reverts the sell if so. Some contracts block everyone by default and exempt only the deployer. The smarter ones let small early sells go through, so screenshots of successful exits circulate and build trust while wallets above a balance threshold quietly get trapped.
Absurd sell taxes are the version with plausible deniability. A token with a 5 percent sell fee is common and mostly harmless. A token where the owner can call a function that sets the sell tax to 99 or 100 percent is a honeypot on a delay switch. It can launch with reasonable taxes, pass every automated check, then get cranked once enough liquidity has piled up. Your sell technically executes. You just receive almost nothing for it.
Transfer restrictions are the sneaky version. Max transaction limits set so low that no meaningful sell can clear. Cooldown timers that lock a wallet for hours after a buy. A trading-enabled flag the owner can flip off entirely. And upgradeable proxy contracts, where the code you checked today can be swapped for different code tomorrow. That last one deserves particular respect, because it means a token can be genuinely clean at launch and turn into a honeypot after you are already holding it.
How I actually test
Simulators come first because they are free and instant. Tools like honeypot.is, plus the audit tabs built into most DEX screeners, simulate a buy and an immediate sell against the live contract and report whether the round trip completes and what the effective tax was. This catches the lazy majority. Treat a passing result as a floor rather than a clearance, though. A simulator checks how the contract behaves right now, with a small amount, from a fresh address. Honeypots that activate after a certain block, apply only above a size threshold, or get switched on manually by the owner will sail through a simulation and still trap you a week later.
Second, the dust sell. If I am considering a position of any real size in a new token, I buy a tiny amount first, somewhere around the cost of a coffee, and then immediately sell all of it back. I mean a real on-chain sell from my real wallet, submitted and mined. If it clears at a sane tax, the simplest failure modes are ruled out as of that moment. If it reverts, or the output is a fraction of what the router quoted, I am out pocket change and gas, which is about the cheapest tuition available in this business. The earlier caveat still applies. A passing dust sell today does not bind the contract tomorrow if the owner kept tax or blacklist controls.
Third, and this is the check I trust most, read the transfer history. Open the token on a block explorer or pull up the trade feed on a DEX screener and filter for sells. A healthy token with a few hundred holders shows a constant mess of buys and sells from unrelated wallets, because real people take profit, panic, and rebalance at random. A honeypot shows a wall of buys and either zero sells or sells only from the deployer and a couple of wallets the deployer funded, which you can usually trace in two clicks. This pattern is hard for a scammer to fake convincingly, because faking it means letting real strangers exit with real money. If nobody besides the creator has ever successfully sold, you have your answer no matter what any scanner says.
The pre-buy routine, in order of cost
- Run the contract through a honeypot simulator. Reject on any failed sell, and reject on a sell tax above roughly 10 percent, since anything higher rarely has an honest explanation.
- Check that the source code is verified on the block explorer. Unverified source on a token that wants your money is disqualifying by itself.
- Skim the verified source for owner functions along the lines of setTax, setBlacklist, or an enable and disable trading flag, and check whether the contract sits behind an upgradeable proxy. Any of these means the rules can change after you buy.
- Open the holder and transfer pages and confirm that multiple unrelated wallets have completed successful sells, since a wall of buys proves nothing on its own.
- If everything passes and the position actually matters to you, do the dust buy and full dust sell before sizing up.
The whole routine takes maybe five minutes once you have run it a few times, and the downside it protects against is total loss of whatever you put in. I struggle to think of a better time-to-value trade anywhere in trading. A lot of what we build at Blockcircle comes down to watching what wallets actually do rather than what a project says about itself, and the holder-page check is that same instinct in miniature. Contracts can lie and audits can be rented, but a transfer history where no outsider has ever exited is telling you exactly one thing.
One last habit worth keeping. A honeypot check is a snapshot, and the owner-controlled varieties can turn hostile after you pass it. So for tokens where the owner still holds tax or blacklist powers and has not renounced, either skip the trade entirely or treat the position as something you re-verify before adding to. Boring, I know, but it is a lot cheaper than the alternative.