Um token Honeypot é uma criptomoeda maliciosa criada por desenvolvedores que inserem intencionalmente restrições ou backdoors no contrato inteligente. Isso permite que usuários comuns comprem o token, mas os impede de vendê-lo (ou torna a venda sujeita a taxas extremamente altas/mecanismos de lista negra), prendendo efetivamente seus fundos em suas carteiras. Superficialmente, esses tokens podem parecer legítimos — eles podem ter pares de liquidez, logotipos de tokens e promoção ativa na comunidade — mas quando um usuário compra o token em uma exchange descentralizada, ele logo descobre que a venda foi rejeitada ou que as taxas de transação são tão altas que se torna impossível recuperar seu investimento.
Como evitar perdas e como verificar
Você pode inserir o endereço do contrato do token em um explorador de blockchain como OKLINK (conforme mostrado no exemplo abaixo). Se o token for um Honeypot, geralmente será marcado de acordo.
2. Como novos tokens são lançados no blockchain todos os dias e os exploradores podem não ser atualizados a tempo, você pode realizar uma autoverificação manual usando os métodos a seguir.
Confira na aba Ler Contrato:
owner() — Se retornar um valor diferente de 0x000..., significa que o proprietário ainda tem o controle.
totalSupply() e balanceOf() — Verifique a distribuição inicial do token.
Procure funções ou variáveis como isExcludedFromFee(address), isBlacklisted(address), maxTxAmount() e tradingEnabled() (contratos diferentes podem usar nomes diferentes, mas servem a propósitos semelhantes).
Na aba Escrever Contrato (acessível somente se você tiver permissão):
Verifique se existem funções de gravação sensíveis, como setFeePercent, setBlacklist, renounceOwnership ou setTradingEnabled. Se estes existirem e só puderem ser chamados pelo proprietário, o token apresenta alto risco.
Pesquise no código-fonte as seguintes palavras-chave (sem distinção entre maiúsculas e minúsculas ou com sublinhados): blacklist, isBot, onlyOwner, setFee, maxTx, excludedFromFee, trading, swapAndLiquify, transferFrom, approve, mint, burn, renounceOwnership, liquidez.
Preste atenção especial à implementação de transfer, _transfer e transferFrom — verifique se eles lidam com to == pair ou from == pair de maneira diferente (para distinguir entre operações de compra e venda).
Se você encontrar um código como
require(!_isBlacklisted[de]); if (to == par) { taxa = 99; }
esta é uma bandeira vermelha clara.
Verifique se o contrato chama um roteador (por exemplo, Pancake/Uniswap Router) e se o processo swap inclui lógica complexa como lockTheSwap ou _tax, o que pode impedir a troca normal.

