A mensagem vinha de uma conta que o trader seguia há anos. Um alegado airdrop, prazo de 24 horas, link direto para a página de claim. O site parecia em ordem e pedia apenas uma assinatura, sem password, sem seed, sem approvals, só carregar em «Sign». Dois segundos depois, todos os NFTs e um saldo de tokens de seis dígitos tinham saído para um endereço desconhecido. A própria assinatura era a autorização.
Os wallet drainers são, hoje, a burla dominante no Web3. Dispensam o roubo clássico de credenciais e aproveitam justamente os mecanismos em que as DApps já se apoiam. Uma transação suficientemente complexa, assinada na MetaMask ou na Rabby, move cada token, cada NFT e cada posição DeFi para o smart contract do atacante. O sistema faz exatamente aquilo para que foi desenhado.
O que estás mesmo a assinar
Quando um site Web3 te pede para assinar, raramente estás a autorizar uma simples transferência. Quase sempre estás a conceder uma approval, ou seja, a dar a um smart contract autorização para agir em teu nome. A clássica approval ERC-20 diz, no fundo, «o contract X pode mover até Y tokens Z do meu wallet». A maior parte dos drainers pede uma approval infinita, ou seja, «pode mover todos os meus tokens Z».
No caso dos NFT existe setApprovalForAll, uma única assinatura que dá a um contract autorização para mover qualquer NFT de uma coleção. Com Seaport ou Permit2, ordens complexas conseguem desbloquear vários tokens ao mesmo tempo com uma só assinatura. E com mensagens EIP-712 podes assinar autorizações tão densas que a sua versão legível por humanos quase nada deixa transparecer do que está a acontecer.
No momento da assinatura, muitos wallets limitam-se a mostrar um genérico «This will interact with a contract». O efeito real, que tokens se movem, que coleções são afetadas, quanto pode ser drenado nos próximos 30 dias, ou simplesmente não aparece ou surge em hex que ninguém lê.
Wallet drainers como serviço

Os drainers já não se constroem de raiz. Há kits para alugar: Angel Drainer, Inferno, Pink, Rainbow. O comprador recebe o código do smart contract, um frontend configurável, um bot de Telegram para os alertas de estado e uma divisão do que se rouba, em regra 20 % para o operador do kit e 80 % para o comprador.
Os kits cobrem praticamente qualquer rede L1 ou L2: Ethereum, Solana, Base, Polygon, BNB, Arbitrum. O site falso deteta de forma automática o wallet que se liga e apresenta a função de drain certa para a chain em causa. As vítimas nem sequer precisam de saber em que chain estão.
Segundo a Scam Sniffer e a Chainalysis, em 2024 os utilizadores perderam mais de 500 milhões de dólares para os drainer kits, distribuídos por centenas de milhares de vítimas. Em 2025, a tendência continuou a subir, apesar das melhorias introduzidas nos wallets principais.
perdas documentadas por drainers em 2024
vítimas individuais num ano
parcela irrecuperável depois da assinatura
Porque o blind signing é o verdadeiro problema
Para transações complexas, muitos wallets limitam-se a mostrar um hash e um genérico «Signing this message could let the app do things on your behalf». Chama-se blind signing. Existe porque traduzir as chamadas a smart contracts para linguagem humana, do lado do wallet, é caro, e muitas ações de DApp não se deixam explicar bem por palavras.
Os drainers exploram isto de forma sistemática. O ataque embrulha a operação que autoriza tudo numa mensagem de aspeto denso, muitas vezes um Permit2 ou um Seaport, que na UI não diz nada mas tecnicamente transfere o orçamento todo em tokens. Hardware wallets como a Ledger e a Trezor já perceberam o problema e mostram agora parsings estruturados para as interfaces de contract mais populares, mas só para as que conhecem.
A lição é simples: nunca tratar o blind signing como aceitável. Se o teu wallet não te consegue explicar o que vai acontecer, dás meia-volta. Mesmo quando o site parece sério.
As assinaturas que te devem pôr de orelhas em pé

setApprovalForAll deve disparar um forte sinal de alarme assim que aparece num site que não tenhas verificado a fundo. O único caso legítimo é uma primeira listagem num marketplace, e mesmo aí as implementações modernas já deveriam ter passado para Permit2.
As approvals ilimitadas em tokens ERC-20 são normais no DeFi do dia a dia, mas num site desconhecido têm de ser um não categórico. Se o valor é 2^256 ou um número absurdamente redondo, tens à frente uma assinatura de drainer.
As assinaturas Permit2 permitem ao spender mover tokens durante períodos que vão de uma hora a vários meses, sem que apareça qualquer transação on-chain. Quando um site desconhecido te pede um Permit2, estás a assinar uma ordem de roubo pré-autorizada.
As ofertas Seaport com vários itens e endereços de destino que não reconheces são particularmente perigosas, porque trocam NFTs um a um por montantes em tokens e tudo se parece com uma venda normal.
Um browser novo para cada mint
A mudança operacional mais eficaz é deixar de fazer interações Web3 a partir do mesmo browser em que o teu wallet principal está ligado. Uma página de mint, um claim de airdrop ou uma nova DApp de DeFi abrem-se dentro de um browser isolado. Aí ligas um wallet que só tem o que aquela interação precisa e mais nada. Um drainer esvazia esse wallet, leva o saldo pequeno e nunca chega à tua posição principal.
A comunidade chama a isto «burner wallet», e há anos que é o padrão entre quem minta muito. O passo de que quase toda a gente se esquece: o browser também devia ser descartável. Extensões como a MetaMask podem manter session storage e autorizações, enquanto um browser isolado termina a sessão vazio e fica imune a futuros replays de assinatura.
Pronto para teres um desktop completo em qualquer dispositivo?
Experimenta o Browser.lol grátis e sente a produtividade de um PC a partir do telemóvel.
Abrir o meu navegador desktopSem instalações • Funciona em qualquer dispositivo



