Como revogar permissões de tokens na Solana
Atualização do rent verificada em 3 de setembro de 2026: Todo valor fixo de rent ou pagamento por conta neste artigo antigo é um exemplo histórico baseado na configuração anterior de 6,960 lamports por byte, e não uma cotação atual. O tamanho da conta, a etapa de rent ativa, saques anteriores, taxas da operação e custos de rede podem alterar o resultado. Leia Redução do rent da Solana em 2026 e use a prévia ao vivo da transação para sua carteira.
Revogar permissões é um terreno bem conhecido na Ethereum, onde aprovações ilimitadas de ERC-20 já drenaram muitas carteiras. A Solana tem um mecanismo equivalente, mas ele funciona de forma diferente, e vale a pena entender o que pode ou não fazer com você.
Como revogar permissões de tokens na Solana?
Conecte-se à ferramenta de revogação. Ela examina todas as suas contas de token, mostra quais endereços você autorizou a retirar tokens delas e remove essas aprovações em lote. Não há taxa — a revogação não recupera nenhum aluguel; portanto, você paga apenas a taxa da rede. Pela CLI, o comando é spl-token revoke <TOKEN_ACCOUNT_ADDRESS>.
O que realmente é um delegado da Solana
Quando você aprova algo na Solana, está definindo um delegado em uma conta de token específica. A instrução Approve registra duas informações nessa conta: o endereço do delegado e o valor delegado.
O delegado pode então transferir ou queimar até esse valor daquela única conta sem pedir sua autorização novamente. Ele não pode acessar suas outras contas de token, ultrapassar o valor delegado nem movimentar seu SOL.
Essa é uma autoridade real e deve ser levada a sério — um delegado com limite sobre sua conta de token pode movimentar esses tokens. Porém, o alcance dos danos é consideravelmente menor do que no equivalente da Ethereum, por três motivos estruturais.
Por que as aprovações da Solana têm escopo menor que as da Ethereum
| Aprovação da Ethereum | Delegado da Solana | |
|---|---|---|
| Escopo | Todos os tokens que você possui desse contrato | Uma conta de token |
| Valor | Frequentemente ilimitado | Um limite fixo definido por você |
| Vários ao mesmo tempo | Sim, elas se acumulam por gastador | Não — um delegado por conta |
| Removido por | Uma transação de revogação explícita | Uma revogação, ou o fechamento da conta |
A terceira linha é a mais importante. Na Ethereum, as aprovações se acumulam: você pode conceder limites a uma dúzia de contratos para o mesmo token, e cada um permanece ativo silenciosamente até ser revogado. Anos de uso de DeFi deixam um longo rastro de aprovações ilimitadas esquecidas, exatamente por isso as ferramentas de revogação se tornaram essenciais nesse ecossistema.
Na Solana, cada conta de token pode ter no máximo um delegado. Definir um novo delegado substitui o anterior. Não existe uma lista cumulativa — uma conta de token tem um único delegado no momento ou não tem nenhum.
É por isso que a Solana nunca desenvolveu a mesma cultura de ferramentas de revogação da Ethereum. A exposição é real, mas limitada, e costuma ser eliminada no uso normal da carteira.
De onde vêm os delegados
A maioria dos delegados em suas contas não é maliciosa — é assim que recursos normais da Solana funcionam:
- Anúncios de NFT em marketplaces. Anunciar um NFT normalmente o delega ao programa do marketplace, para que a venda possa ser executada quando surgir um comprador. É também por isso que um NFT anunciado não pode ser queimado até ser retirado da listagem: sua carteira deixou de ter autoridade unilateral sobre ele.
- Programas de staking e cofres. Ao depositar em um protocolo, muitas vezes você concede autoridade a um delegado em vez de transferir a custódia.
- NFTs programáveis. Os pNFTs são mantidos congelados com uma autoridade delegada como parte da aplicação de royalties.
- Aprovações maliciosas. O caso com que você realmente deve se preocupar: um site de phishing apresenta uma transação que parece ser de resgate, mas o que você assina é um
Approveconcedendo a um delegado autoridade sobre seus tokens.
O que uma revogação não pode remover
Tudo o que foi explicado acima se refere ao delegado no nível da conta — um campo na sua própria conta de token, que pertence a você e que, portanto, pode ser limpo.
O Token-2022 introduziu uma autoridade separada e mais poderosa: um delegado permanente, definido na mint em vez de na sua conta. Uma mint com esse recurso concede a esse endereço autoridade para transferir e queimar todas as contas que possuem esse token, sem limite, e não há nada que o detentor possa fazer a respeito. É uma propriedade do próprio token, não uma permissão que você concedeu; portanto, o Revoke não interfere nele, e nenhuma ferramenta consegue fazer isso.
Alguns tokens legítimos usam esse recurso de forma deliberada — por exemplo, stablecoins regulamentadas que precisam de um mecanismo de recuperação. Porém, isso significa que o escopo real de qualquer ferramenta de revogação da Solana, incluindo a nossa, é aprovações que você concedeu em suas próprias contas.
Se a mint de um token tiver um delegado permanente, a única forma de eliminar essa exposição é deixar de possuir o token. Verifique a mint em um explorador antes de presumir que uma revogação bem-sucedida significa que ninguém pode movimentar determinado saldo.
Como verificar quais contas têm um delegado
As carteiras não mostram isso. Phantom e Solflare exibem seus saldos, mas não o campo de delegado presente em cada conta de token. Assim, uma aprovação concedida há dois anos fica invisível na interface que você usa todos os dias.
Há três maneiras de verificar:
- A ferramenta de revogação. Conecte sua carteira para examinar todas as contas de token nos programas Token SPL e Token-2022. A ferramenta lista cada delegado, a mint à qual ele se aplica e o valor do limite. A verificação é somente leitura — não exige assinatura, nada a aprovar apenas para olhar.
- Um explorador de blocos. Pesquise o endereço da sua carteira, abra as contas de token individuais e verifique o campo de delegado. Ele é exibido quando um está definido. Viável para uma conta, trabalhoso para cem.
- A CLI
spl-token.spl-token account-info <TOKEN_ACCOUNT_ADDRESS>informa o delegado e o valor delegado.
Se o delegado for um marketplace que você reconhece e o NFT estiver anunciado no momento, isso é esperado — retire-o da listagem para remover o delegado.
Observe a coluna de limite. As aprovações frequentemente a definem como o valor máximo possível, em vez do valor realmente necessário, que a ferramenta exibe como Ilimitado. Um anúncio legítimo normalmente delega exatamente um NFT; um limite ilimitado em um token do qual você possui uma grande quantidade merece uma análise mais cuidadosa.
Como revogar
Pela ferramenta, conecte-se em sol-incinerator.com/revoke, analise a lista e assine. Tudo o que for selecionado será agrupado no menor número possível de transações; portanto, uma carteira com trinta delegados obsoletos não exigirá trinta assinaturas.
Não há taxa. A revogação não libera aluguel; portanto, não há nenhum valor do qual descontar uma taxa — você paga somente a taxa de transação da rede.
Pela CLI, em uma conta de token específica:
spl-token revoke <TOKEN_ACCOUNT_ADDRESS>
Isso chama a instrução Revoke do programa Token da SPL, que exige apenas a conta de token e sua assinatura como proprietário. Ela limpa completamente o campo de delegado. Não pode falhar parcialmente e não afeta seu saldo.
Pela interface (UI) de uma carteira, o caminho habitual é indireto: cancele ou retire da listagem o que criou o delegado originalmente. Retirar um NFT do marketplace em que foi anunciado remove o delegado desse marketplace como parte da instrução de cancelamento.
Revogar o delegado de um marketplace em um NFT anunciado equivale, na prática, a retirá-lo da listagem — o marketplace não poderá mais concluir uma venda. Esse é o comportamento correto, mas, se quiser manter o item anunciado, não altere o delegado.
Por que não posso revogar uma conta congelada?
Porque a Solana não permite. O programa Token SPL rejeita de imediato uma revogação em uma conta de token congelada, retornando AccountFrozen — congelar uma conta bloqueia alterações de autoridade, não apenas transferências.
Isso é mais importante do que parece, pois contas congeladas e delegadas costumam andar juntas. NFTs programáveis são mantidos congelados com um delegado como parte do mecanismo de imposição de royalties, e muitos programas de staking congelam os ativos sob sua custódia. Assim, os delegados que você provavelmente encontrará muitas vezes são justamente os que não podem ser removidos diretamente.
A ferramenta não inclui essas contas na lista porque, na prática, uma conta congelada com um delegado geralmente está funcionando como deveria — seja um pNFT que impõe royalties ou um ativo que você colocou deliberadamente em staking —, e não é algo que exija uma ação sua.
Se você realmente quiser remover um deles, a conta precisa ser descongelada primeiro. Desfaça o staking, remova da listagem ou conclua a ação que a congelou; uma vez descongelada, o delegado é revogado normalmente.
A queima não é uma solução alternativa. Uma conta congelada rejeita queimas pelo mesmo motivo que rejeita revogações — o congelamento bloqueia a operação, não apenas as transferências. Portanto, você não pode eliminar um delegado congelado destruindo o ativo enquanto ele ainda estiver na conta. Somente a autoridade de congelamento pode descongelá-la.
Há um motivo prático para a ferramenta não tentar mesmo assim: as revogações são agrupadas no menor número possível de transações, então uma conta congelada faria todos os outros delegados na mesma transação falharem. Excluí-la é o que permite que os demais sejam processados com sucesso.
A opção completa: fechar a conta
Esta é a parte que muitas vezes passa despercebida. O delegado é um campo armazenado na conta de token. Sem conta, não há delegado.
Portanto, se você não quer o token em questão — um token de spam, uma memecoin abandonada ou um airdrop fraudulento que induziu você a assinar algo —, queimá-lo e fechar sua conta remove permanentemente o delegado como efeito colateral. Em vez de revogar a permissão, você está excluindo aquilo a que ela se aplicava. E, ao contrário de uma simples revogação, fechar a conta devolve o depósito de aluguel de ~0.00204 SOL que ela mantinha.
Por isso, a limpeza é a resposta mais completa para qualquer token que você não pretende manter:
| Ação | Delegado removido | Token mantido | SOL devolvido |
|---|---|---|---|
| Revogar | Sim | Sim | Não |
| Queimar + fechar conta | Sim | Não | 0.002 SOL |
Revogue quando quiser manter o token. Queime e feche a conta quando não quiser.
Se você acredita que assinou uma transação maliciosa, apenas revogar não é suficiente. Um delegado é apenas uma das várias coisas que um invasor pode ter obtido e, se sua frase-semente foi exposta, nenhuma ação on-chain ajudará. Primeiro, transfira seus ativos valiosos para uma carteira nova; depois, cuide da carteira comprometida.
O cenário de ameaça realista
Para a maioria das pessoas, o resumo mais honesto é: verifique seus delegados se você assinou algo de que se arrepende, retire da listagem o que não deseja mais anunciar e elimine os tokens indesejados aos quais aprovações maliciosas costumam estar vinculadas.
O design da Solana significa que você não carrega anos de aprovações ilimitadas acumuladas como uma carteira Ethereum. O que você provavelmente tem são algumas centenas de contas de token abandonadas, cada uma mantendo um depósito reembolsável — que tem valor real e leva cerca de um minuto para recuperar.

Revogar Delegados
Examine sua carteira em busca de delegados no nível da conta que você aprovou e remova-os. Sem taxa — você paga apenas a taxa da rede.
Leituras relacionadas
Perguntas frequentes
Como revogar permissões de tokens na Solana?
Use a instrução Revoke do programa Token da SPL na conta de token que tem um delegado definido. Ela exige apenas a conta de token e sua assinatura como proprietário. Na linha de comando, use spl-token revoke seguido do endereço da conta de token.
O que é um delegado em uma conta de token da Solana?
Um delegado é um endereço que você autorizou a transferir ou queimar até um valor definido de uma conta de token específica. Marketplaces usam delegados para anúncios de NFT, e programas de staking os usam para depósitos. Cada conta de token pode ter apenas um delegado por vez.
As aprovações da Solana são tão arriscadas quanto as da Ethereum?
Elas têm um escopo menor. Um delegado da Solana se limita a uma única conta de token e tem um teto de valor fixo. Além disso, aprovar um novo delegado substitui o anterior, em vez de acumular. As aprovações da Ethereum se aplicam por contrato de token, frequentemente são ilimitadas e se acumulam indefinidamente.
Fechar uma conta de token remove seu delegado?
Sim, completamente. O delegado é um campo armazenado na própria conta de token; portanto, quando a conta é fechada, o delegado deixa de existir com ela. Queimar um token indesejado e fechar sua conta também remove qualquer delegado como efeito colateral.
Como saber se uma conta de token tem um delegado definido?
Pesquise seu endereço em um explorador de blocos e inspecione as contas de token individuais, onde o campo de delegado é mostrado se houver um definido. A CLI spl-token também o informa, e qualquer carteira que exiba os dados brutos da conta mostrará o mesmo campo.
Por que não posso revogar uma conta de token congelada?
O programa Token da SPL rejeita a revogação em uma conta congelada e retorna o erro AccountFrozen, pois o congelamento bloqueia alterações de autoridade, e não apenas transferências. NFTs programáveis e ativos em staking costumam ser congelados. A conta precisa ser descongelada antes que seu delegado possa ser removido. Queimar não contorna essa restrição, pois uma conta congelada também rejeita queimas.
Uma revogação pode remover um delegado permanente do Token-2022?
Não. Um delegado permanente é definido na mint, e não na sua conta de token, e recebe autoridade para transferir e queimar em todas as contas que possuem esse token. É uma propriedade do próprio token, portanto nenhuma instrução de revogação pode removê-lo. A única forma de eliminar essa exposição é deixar de possuir o token.