
Revogar aprovações de tokens a partir do SSP
Sempre que você confirma um swap, um depósito ou uma listagem de NFT em uma chain EVM, você concede ao dApp permissão para mover um token ERC-20 específico em seu nome. Essas permissões — chamadas de aprovações ou allowances — permanecem on-chain depois que a transação é liquidada. Meses depois, o contrato em que você confiou em março ainda pode ter permissão para esvaziar aquele token em junho. A solução é direta: revogar as aprovações de que você não precisa mais. Este guia mostra como fazer isso a partir do SSP, o wallet auto-custodial 2-de-2 em que cada transação (revogações incluídas) é co-assinada pela sua SSP Key.
Se o conceito é novo para você, leia primeiro Aprovações de tokens: as permissões que você continua concedendo. Lá se explica por que as aprovações existem e por que allowances ilimitadas são a superfície de ataque padrão em DeFi. Este artigo é o complemento de limpeza.
Uma recapitulação rápida
Quando você assina uma chamada approve(spender, amount), o contrato do token registra que spender (tipicamente um contrato de router, vault ou marketplace) está autorizado a transferir até amount daquele token a partir do seu endereço. Muitos dApps solicitam 2^256 - 1 — na prática, ilimitado — para te poupar gas em interações futuras. Essa conveniência é também o risco: se o contrato spender for comprometido depois, ou se você parar de usar o dApp mas a allowance permanecer, um atacante pode esvaziar todo o saldo quando quiser.
A revogação reverte essa concessão. Ela não desfaz transferências passadas e não "apaga" nada — simplesmente devolve a allowance a zero.
Como a revogação funciona mecanicamente
Uma revogação é apenas mais uma transação. Você chama approve(spender, 0) no mesmo contrato do token, na mesma chain em que a aprovação original foi concedida. Essa única chamada de função escreve um novo 0 no mapping allowance[owner][spender] do contrato, sobrescrevendo o valor antigo.
Alguns detalhes para internalizar:
- Uma revogação por chain por par token-spender. Se você aprovou um spender de USDC no Ethereum e o mesmo spender no Polygon, são necessárias duas transações de revogação — uma em cada chain. As allowances não são compartilhadas entre chains.
- A revogação é uma transação autônoma. Custa gas como qualquer transferência. Planeje: tenha o ativo nativo da chain (ETH no Ethereum, MATIC no Polygon, etc.) para cobrir a taxa.
- Pode ser mais barato do que você teme. Uma revogação é uma escrita simples, em geral mais barata do que um swap. Em Layer 2 como Base costuma custar centavos.
- O SSP continua co-assinando. Como o SSP é um wallet 2-de-2, a transação de revogação segue o mesmo fluxo de qualquer outra: sua extensão a propõe, sua SSP Key a revisa e co-assina. Sua proteção se estende à própria limpeza — nenhum dispositivo sozinho pode revogar unilateralmente, e nenhum dispositivo sozinho pode ser enganado para aprovar algo disfarçado de revogação.
Dois caminhos para revogar
Você tem duas formas igualmente válidas de revogar aprovações a partir do SSP. Escolha a que se encaixar na situação.
Caminho 1: usar um explorador de blocos de confiança
Esta é a rota manual e transparente. Útil quando você sabe exatamente qual token e qual spender quer revogar, ou quando não quer se conectar a uma ferramenta de terceiros.
- Abra a página do contrato do token no explorador apropriado:
- Ethereum: etherscan.io
- Polygon: polygonscan.com
- Base: basescan.org
- BNB Smart Chain: bscscan.com
- Avalanche: snowtrace.io
- Vá até a aba Contract, depois em Write Contract (ou Write as Proxy se o token for um contrato proxy — a maioria das principais stablecoins é).
- Encontre a função
approve. As entradas sãospender(o endereço que você quer revogar) eamount(a nova allowance). - Defina
amountcomo0. Cole o endereço do spender — copie-o do seu histórico de transações, nunca digite de memória. - Conecte sua wallet. A maioria dos exploradores suporta WalletConnect, que é a forma recomendada de conectar o SSP. Aprove a conexão na sua extensão.
- Clique em Write. O explorador monta a transação
approve(spender, 0)e a entrega ao SSP. A extensão SSP mostra os detalhes da chamada; sua SSP Key co-assina; a revogação é transmitida.
Esse caminho é prolixo, mas não deixa qualquer ambiguidade sobre o que você assinou.
Caminho 2: usar uma ferramenta dedicada de revogação
Para a maioria dos usuários, esta é a opção prática. revoke.cash é a ferramenta open source amplamente usada para esse trabalho. Ela escaneia seu endereço nas chains suportadas, lista cada allowance ativa, sinaliza as arriscadas (valores ilimitados, contratos desconhecidos) e permite revogá-las — individualmente ou em lotes — pela wallet conectada.
O fluxo:
- Abra
revoke.cashdiretamente no navegador. Adicione o domínio verdadeiro aos favoritos e entre só por ele. Cópias de phishing de ferramentas de revogação existem precisamente porque os usuários chegam lá já prontos para assinar transações. - Conecte via WalletConnect, depois escaneie o QR code ou cole o URI no SSP.
- Mude o seletor de chain para a chain que você quer auditar. O revoke.cash buscará suas aprovações naquela chain.
- Revise a lista. Cada linha mostra o token, o spender, o valor da allowance e, geralmente, um rótulo para o dApp.
- Clique em Revoke ao lado de qualquer coisa que você não usa mais. Cada revogação é uma transação
approve(spender, 0)separada, co-assinada pelo SSP.
Um fluxo prático de auditoria
Uma ou duas vezes por ano, separe 20 minutos e siga este roteiro:
- Conecte o SSP ao revoke.cash via WalletConnect.
- Revise suas aprovações ativas em cada chain que você usou. Comece por Ethereum — historicamente o grafo de aprovações mais denso — e prossiga por Polygon, Base, BNB Smart Chain e Avalanche.
- Pegue primeiro o mais arriscado. Ordene ou passe os olhos buscando allowances ilimitadas e nomes de dApp desconhecidos. Um protocolo onde você fez um swap em 2024 e nunca mais tocou é um candidato perfeito. Assim como qualquer contrato que você não consiga identificar.
- Revogue. Confirme a transação na sua extensão SSP; a SSP Key te pede para co-assinar; a revogação é transmitida.
- Co-assine na SSP Key. Este é o momento de checar duas vezes o destino. A SSP Key mostra o contrato que você está chamando e a função — confirme se ambos correspondem ao que você pretendia.
- Repita por chain. As allowances são por chain. Não suponha que revogar no Ethereum também limpa o Polygon.
Você não precisa começar do zero. O objetivo é manter allowances nos contratos que você usa de fato e zerar o resto.
Cautelas
- Higiene de domínio. Use apenas o domínio oficial
revoke.cash. Clones de phishing miram exatamente esse fluxo porque o usuário já está no modo de assinar transações. Salve nos favoritos; verifique a barra de URL antes de conectar. - Realidade por chain. Revogar uma aprovação de USDC no Ethereum não toca a aprovação de USDC no Polygon, mesmo que o token "pareça o mesmo" no seu portfólio. Percorra cada chain explicitamente.
- Orçamento de gas. A revogação custa gas. No Ethereum, um acúmulo de revogações pode somar; faça-as quando o gas estiver calmo. Em Layer 2, o custo é desprezível.
- Verifique sempre o spender. Antes de assinar qualquer transação de "revogação", confirme que o endereço do spender na chamada coincide com o contrato que você queria revogar. Um site malicioso poderia apresentar uma UI de revogação falsa que, na verdade, está emitindo uma nova aprovação para um atacante. Ler o nome da função (
approve) e o valor (0) no prompt da SSP Key é sua última linha de defesa. - Permits são diferentes. Alguns tokens (USDC, variantes de DAI) suportam
permit— assinaturas off-chain que funcionam como aprovações. O revoke.cash trará as concessões baseadas em permit que reconhecer; trate qualquer coisa que você não reconheça exatamente como faria com uma allowance on-chain.
A vantagem do 2-de-2 na limpeza
Este é o ponto frequentemente esquecido: revogar no SSP não é um único clique em um único dispositivo. Sua extensão redige a revogação, mas não consegue transmiti-la sozinha. Sua SSP Key precisa co-assinar, e essa etapa de co-assinatura é onde você inspeciona o que está realmente sendo enviado. Se sua extensão fosse comprometida e tentasse enviar uma "revogação" maliciosa que, na verdade, fosse uma nova aprovação, a SSP Key mostraria a função e o valor reais na tela dela. Dois dispositivos, duas oportunidades de pegar o problema.
Higiene rotineira de aprovações é o hábito DeFi de maior alavancagem que a maioria dos usuários ignora. Coloque um lembrete no calendário, faça a auditoria, durma melhor. E continue a série — comece por Ethereum no SSP se quiser fixar os detalhes específicos da chain, ou revisite Aprovações de tokens: as permissões que você continua concedendo para se lembrar de por que isso importa.


