Updated September 14, 2026. Revoking old smart contract permissions is one of the simplest ways to reduce unnecessary wallet exposure, but a good result is more specific than “I disconnected some dapps.” When you finish this process, you should know which contracts can still spend your tokens, which permissions you intentionally kept, and which approvals have been reduced to zero or otherwise invalidated on the correct blockchain.
This guide focuses on that outcome. It covers ERC-20 token allowances, NFT operator approvals, Permit2 permissions, the tools that can help you inspect them, and the situations where revoking is not enough. It does not promise that revocation makes a wallet fully secure: key compromise, malicious signatures, protocol exploits, and already-confirmed transfers require different responses.
What Success Looks Like
| Goal | Good Evidence | When to Change Approach |
| Remove an ERC-20 allowance | The revocation transaction is confirmed and the allowance reads 0. | If the approval reappears, confirm the chain, spender address, token contract, and whether another permission system such as Permit2 is involved. |
| Remove an NFT operator approval | The operator is no longer approved for all NFTs in that collection, or the specific token approval is cleared. | If the approval checker cannot detect a non-standard NFT contract, inspect the collection contract directly or use its official interface. |
| Reduce future exposure | Unused and unlimited allowances are removed or limited; active permissions are intentional. | If a workflow repeatedly requires broad permissions, consider a separate activity wallet or a dapp that supports narrower limits. |
| Respond to a compromised wallet | Assets and future activity are moved to a new wallet whose keys are not compromised. | Do not rely on revocation alone if the seed phrase or private key is exposed. |
First, Understand What You Are Revoking
Under the ERC-20 standard, the approve function lets a token holder authorize a spender to withdraw up to a specified amount, while transferFrom allows an authorized spender to move tokens. The official standard is available in ERC-20: Token Standard.
NFT permissions can be broader. ERC-721 defines setApprovalForAll, which can authorize an operator to manage all of an owner’s NFTs for that collection. See ERC-721: Non-Fungible Token Standard.
Important distinction: connecting a wallet to a website is not the same as granting an on-chain token allowance. MetaMask explicitly states that disconnecting a dapp does not revoke token approvals that already exist. Hiding a token in a wallet interface also does not change its allowances.
Target result: identify on-chain spending authority, not merely connected websites. If your only action was “Disconnect,” continue with an approval checker.
Reference: MetaMask: How to revoke smart contract allowances/token approvals.
Step 1: Inventory Permissions Before You Revoke Anything
Caption: Start with an inventory of token, spender, and allowance. An “Unlimited” entry deserves review, but it is not automatically malicious.
Use an approval checker to see which spenders currently have authority over your assets. Three useful options are:
- Etherscan Token Approval Checker: useful for Ethereum addresses and separates ERC-20, ERC-721, and ERC-1155 approvals. Etherscan says you can inspect an address without connecting a wallet, then connect only when you want to submit a revocation. See Etherscan Token Approvals.
- MetaMask Portfolio: its spending-cap management feature supports Ethereum Mainnet, Polygon, BNB Chain, Optimism, and Base as documented when this article was updated. See MetaMask Portfolio spending caps.
- Revoke.cash: provides a multi-network approval checker and educational material covering regular approvals, permit signatures, and Permit2. See Revoke.cash approval documentation.
How to judge the result: your inventory should show the token or NFT collection, spender/operator address, network, and current permission. Save unfamiliar spender addresses for investigation before signing anything.
When to switch tools: if one checker does not support your network or a non-standard token does not appear, use that chain’s trusted block explorer or inspect the token contract directly. No single indexer can guarantee complete visibility for every non-standard contract.
Step 2: Decide What Should Stay and What Should Go
Caption: Review each approval in context: the asset, spender, amount, network, and whether you still use the underlying application.
Do not revoke mechanically. An approval is a capability, and some active dapp functions depend on it. Revoke.cash notes, for example, that revoking an approval does not remove already deposited or staked tokens, but you may need to approve again before adding more. Some marketplace listings also depend on active NFT approvals.
A practical priority order is:
- Unknown or suspicious spenders.
- Approvals connected to phishing incidents or abandoned dapps.
- Unlimited allowances you no longer need.
- Old approvals for protocols you stopped using.
- Broad NFT operator approvals with no active purpose.
Quality signal: every permission you keep should have a reason. “I recognize the protocol and still need this spender for an active position” is a reason. “I probably approved it sometime” is not.
When not to revoke immediately: if a permission supports an active listing, automation, subscription-like workflow, or smart-account policy, first understand the operational effect. Security improves when you remove unnecessary authority, not when you break needed workflows without understanding them.
Step 3: Use a Trusted Revocation Path
Caption: Use an official wallet feature, a reputable approval checker, or the network’s established explorer; verify the domain before connecting.
Revocation is normally an on-chain state change. MetaMask states that revoking an allowance requires an on-chain transaction, so network gas is generally required. Etherscan likewise provides a “Revoke” action for listed approvals.
For most users, the lowest-friction choices are the wallet’s own approval-management feature, the chain’s established explorer, or a specialized service such as Revoke.cash. None should require your seed phrase or private key.
Target result: the transaction you are about to sign should reduce or remove an existing permission—not grant a new spender unexpected authority.
Stop condition: if a website asks for your seed phrase, private key, remote-control access, or an unrelated transfer to “activate” revocation, stop. Navigate to the tool from an independently verified official source instead of a search advertisement or unsolicited message.
Step 4: Connect Only the Account and Network You Need
Caption: Connecting is only the interface step. The actual revocation takes effect when the appropriate on-chain transaction is confirmed.
Wallet connection lets the site request account information and propose actions, but connecting by itself is not the revocation. Etherscan’s current wallet guidance says connecting does not automatically sign anything; signatures and transactions still require wallet approval.
Target result: confirm that the selected wallet address and blockchain match the approval you intend to remove.
When to change approach: if the tool switches you to an unexpected chain or displays a different address, cancel before signing. An approval is network-specific; revoking something on one chain does not revoke a separate approval on another chain.
Reference: Etherscan: Connecting Your Wallet.
Step 5: Revoke or Reduce the Permission You No Longer Need
Caption: Remove the minimum set of permissions needed to reach your security goal; you do not have to revoke every legitimate allowance at once.
For a standard ERC-20 allowance, revocation generally means setting the spender’s allowance to zero. For ERC-721 operator access, revocation generally changes the operator approval to false. Revoke.cash explains that the same approval functions are commonly used for granting and revoking; the value changes to zero or false.
Sygnał jakości: podgląd transakcji identyfikuje kontrakt tokena i zmieniane uprawnienia. Jeśli Twój portfel udostępnia zdekodowane informacje o transakcji, przeczytaj je, zamiast zatwierdzać z przyzwyczajenia.
Limit: odwołanie nie cofa już dokonanych przelewów. Nie odzyskuje również skradzionych środków. Revoke.cash opisuje swoją usługę jako narzędzie prewencyjne, a nie narzędzie do odzyskiwania środków.
Odnośnik: Revoke.cash FAQ .
Krok 6: Przed podpisaniem sprawdź potwierdzenie portfela
Podpis: Przed potwierdzeniem sprawdź konto, sieć, interakcję z umową i przewidywaną opłatę za gaz.
Ostateczne potwierdzenie portfela to szansa na wykrycie nieprawidłowego łańcucha, konta, osoby wydającej lub rodzaju transakcji. Paliwo różni się w zależności od warunków sieci, więc nie należy oczekiwać stałej opłaty w dolarach.
Wynik docelowy: oczekująca transakcja odpowiada zamierzonej zmianie uprawnień i jest wysyłana z właściwego portfela.
Kiedy przerwać: anuluj, jeśli transakcja nieoczekiwanie przenosi aktywa, zatwierdza innego wydającego, wywołuje niepowiązany kontrakt lub zawiera szczegóły, których nie można uzgodnić z wybraną akcją. Bezpieczny przepływ pracy stawia weryfikację ponad szybkość.
Krok 7: Zweryfikuj łańcuch — nie zatrzymuj się na „Transakcja przesłana”
Podpis: Po potwierdzeniu ponownie otwórz moduł sprawdzania zatwierdzenia i sprawdź, czy przydział jest zerowy, wygasł, jest fałszywy lub nie jest już aktywny.
Przesłana transakcja może się nie powieść, pozostać w toku lub zostać zastąpiona. Wynik bezpieczeństwa jest osiągany dopiero po faktycznej zmianie odpowiedniego stanu uprawnień.
Wskaźniki sukcesu:
- W przypadku ERC-20 dopuszczalna kwota wydatków wynosi 0 lub jest to kwota celowo zmniejszona.
- W przypadku dostępu operatora ERC-721,
isApprovedForAlldla usuniętego operatora wartość jest fałszywa.
- Transakcja odwołania została potwierdzona w docelowym łańcuchu.
- Sprawdzanie zatwierdzenia zostanie odświeżone, aby pokazać nowy stan.
Kiedy należy przeprowadzić dalszą analizę: jeśli po potwierdzonej transakcji nadal pojawia się uprawnienie, należy dokładnie porównać adres wydającego i kontrakt tokena. Możliwe, że jedno uprawnienie zostało cofnięte, podczas gdy inne uprawnienie wydającego, proxy, operatora lub Permit2 pozostaje aktywne.
Krok 8: Przejrzyj Permit2, podpisy na zezwoleniu i obowiązującą politykę zezwoleń
Podpis: Stała higiena portfela oznacza okresowe sprawdzanie uprawnień i przyznawanie węższych uprawnień, gdy aplikacja je obsługuje.
Standardowe zatwierdzenia ERC-20 to nie wszystko. System Permit2 firmy Uniswap pozwala użytkownikom zatwierdzać kontrakt Permit2 na poziomie tokena, a następnie przyznawać uprawnienia wydającym za pośrednictwem Permit2. Oficjalny interfejs obejmuje liczbę uprawnień, datę wygaśnięcia, unieważnianie nonce'ów oraz funkcję, lockdownktóra może przywrócić wybrane uprawnienia do zera. Zobacz oficjalne repozytorium Permit2 firmy Uniswap .
Podpisy zezwoleń wprowadzają kolejne utrudnienia: niektóre uprawnienia są autoryzowane za pomocą podpisanych wiadomości, a nie od razu rejestrowane jako zwykłe zezwolenia tokenowe. Revoke.cash zauważa, że podpisów zezwoleń poza łańcuchem nie można po prostu wyliczyć z łańcucha w taki sam sposób, jak standardowych zatwierdzeń; unieważnienie odpowiednich nonce'ów lub stanu zezwolenia specyficznego dla tokena może być konieczne, gdy wiesz, że podpisałeś złośliwe zezwolenie.
Efekt końcowy: po sprawdzeniu standardowych uprawnień, zapytaj również, czy użyłeś Permit2 lub podpisałeś wiadomość w stylu „uprawnienie” na niezaufanej stronie.
Kiedy zmienić podejście: jeśli podejrzewasz sygnaturę złośliwego oprogramowania, ale nie potrafisz zidentyfikować jej dokładnej formy, wstrzymaj się z interakcją z zainfekowanym portfelem, dopóki nie zrozumiesz modelu uprawnień. Bezmyślne płacenie za anulowanie wszystkich możliwych uprawnień może być marnotrawstwem i nie rozwiązać rzeczywistego zagrożenia.
Niezbędne narzędzia: Które z nich sprawdzą się najlepiej?
| Narzędzie | Najlepsze wykorzystanie | Ważny limit |
| Portfolio MetaMask | Zarządzanie limitami wydatków na obsługiwaną sieć z poziomu ekosystemu MetaMask. | Zasięg sieci jest ograniczony i może się zmieniać; sprawdź aktualne wsparcie, zanim zaczniesz polegać na tej sieci jako jedynym zasobach. |
| Kontroler zatwierdzania tokenów Etherscan | Przeglądanie i cofanie zatwierdzeń tokenów Ethereum/NFT w kontekście eksploratora. | Jest skoncentrowany na Ethereum; w przypadku innych sieci należy używać odpowiedniego, zaufanego eksploratora lub innego narzędzia. |
| Odwołaj.gotówkę | Przegląd zatwierdzeń wielu sieci, ich unieważnianie i edukacja na temat zezwoleń/zezwoleń 2. | Żaden moduł sprawdzający zatwierdzenia nie jest w stanie odzyskać skradzionych aktywów ani naprawić zagrożonych kluczy prywatnych. |
| Bezpośrednia umowa / zweryfikowany interfejs eksploratora | Sprawdzanie stanu znanego tokena allowance, operatora NFT lub niestandardowego zachowania, gdy indeksatory są niekompletne. | Wymaga większej uwagi technicznej; przed zapisaniem umowy w łańcuchu należy sprawdzić jej adres i funkcję. |
Kiedy cofnięcie uprawnień nie wystarczy
Twoja fraza początkowa lub klucz prywatny są zagrożone
Jeśli atakujący ma klucz, nie potrzebuje zezwolenia na autoryzację transakcji, tak jak Ty. Revoke.cash ostrzega, że usunięcie gazu z portfela jest oznaką, że fraza źródłowa może być naruszona i że cofnięcie zezwoleń nie przywróci bezpieczeństwa portfela.
Lepszy wynik: utwórz nowy portfel z czystego środowiska i przenieś zasoby, korzystając ze starannie zaplanowanego procesu odzyskiwania. Nie traktuj naruszonego adresu jako długoterminowego, bezpiecznego portfela.
Podpisałeś już złośliwy przelew lub transakcję
Późniejsze odwołanie nie może cofnąć sfinalizowanego transferu blockchain. Jeśli dany zasób już zniknął, należy skupić się na zapobieganiu dalszym stratom, dokumentowaniu skrótów transakcji, kontaktowaniu się z odpowiednimi dostawcami usług, jeśli jest to konieczne, oraz przeniesieniu nienaruszonych zasobów, jeśli klucze mogą zostać naruszone.
Ryzyko tkwi w protokole, a nie w zatwierdzeniu
Cofnięcie limitu pozbawia tego wydającego uprawnienia do przyszłych wydatków. Nie usuwa to ryzyka związanego z inteligentnymi kontraktami w odniesieniu do aktywów już zdeponowanych w protokole, pomoście, skarbcu lub kontrakcie stakingowym.
Lepszy wynik: oceń, czy konieczne jest wycofanie samej pozycji. Higiena uprawnień i zarządzanie ryzykiem protokołowym rozwiązują różne problemy.
Używasz inteligentnego konta lub zaawansowanych uprawnień
MetaMask dokumentuje nowsze, zaawansowane uprawnienia oparte na standardzie ERC-7715, które mogą obejmować limity kwotowe, dostęp cykliczny i daty wygaśnięcia. Różnią się one od klasycznych uprawnień tokenów i są zarządzane za pośrednictwem odpowiedniego interfejsu uprawnień inteligentnego konta.
Lepszy wynik: przejrzyj zarówno tradycyjne zatwierdzenia tokenów, jak i uprawnienia na poziomie konta. Czysta lista uprawnień ERC-20 niekoniecznie opisuje wszystkie możliwości przyznawane przez konto inteligentne.
Odniesienie: MetaMask: Informacje na temat uprawnień zaawansowanych .
Lepsza polityka zezwoleń długoterminowych
- Preferuj ograniczone ilości, gdy jest to praktyczne. MetaMask zaleca sprawdzanie, o co prosi aplikacja zdecentralizowana, i zmniejszanie ilości w razie potrzeby, zamiast automatycznego zatwierdzania nieograniczonego dostępu.
- Regularnie przeglądaj stare zatwierdzenia. Właściwa częstotliwość zależy od tego, jak aktywnie korzystasz z DeFi, ale przegląd po okresie intensywnych eksperymentów z aplikacjami zdecentralizowanymi jest bardziej przydatny niż czekanie na incydent.
- Oddziel wartościowe magazyny od aktywności eksperymentalnej. Dedykowany portfel aktywności może zmniejszyć liczbę zasobów narażonych na nowe aplikacje zdecentralizowane, choć nie chroni przed złośliwymi zatwierdzeniami.
- Zweryfikuj domeny i adresy płatników. Interfejs wyglądający na legalny nadal może prowadzić do złośliwego kontraktu.
- Pamiętaj o ograniczeniach portfela sprzętowego. Portfel sprzętowy pomaga chronić klucze prywatne, ale zatwierdzenie, które celowo podpisujesz, nadal jest ważne w łańcuchu. Revoke.cash wyraźnie zaznacza, że portfele sprzętowe same w sobie nie chronią przed atakami na zatwierdzenia.
- Zachowaj wystarczającą ilość gazu na potrzeby konserwacji. Transakcje unieważnione wymagają opłat sieciowych. Nie czekaj do sytuacji awaryjnej, aż portfel nie będzie mógł przesłać wymaganej transakcji.
Ostateczna lista kontrolna weryfikacji
Przed ogłoszeniem zakończenia czyszczenia należy sprawdzić wszystkie poniższe elementy:
- Poprawny adres został sprawdzony w każdej sieci, z której faktycznie korzystasz.
- Usunięto lub ograniczono nieznane i zbędne uprawnienia ERC-20.
- Przeanalizowano niewykorzystane zatwierdzenia operatorów NFT.
- Uprawnienia Permit2 są brane pod uwagę, jeśli korzystałeś z aplikacji obsługujących Permit2.
- Transakcje unieważnione są potwierdzane, a nie tylko przesyłane.
- Sprawdzanie zatwierdzenia pokazuje oczekiwany stan po odwołaniu.
- Wszelkie celowo zachowane uprawnienia mają jasno określony aktualny cel.
- Jeśli istnieje ryzyko naruszenia kluczy, zamiast polegać wyłącznie na unieważnieniu, migrujesz do nowego portfela.
Najskuteczniejszym rozwiązaniem nie jest pusta lista zatwierdzeń za wszelką cenę. To portfel, którego pozostałe uprawnienia są zrozumiałe, celowo ograniczone i dostosowane do sposobu, w jaki go faktycznie używasz. Cofanie uprawnień do inteligentnych kontraktów to cenne narzędzie konserwacyjne, ale najlepiej sprawdza się jako jedna z warstw szerszego procesu bezpieczeństwa, który obejmuje staranne podpisywanie, weryfikację kontraktów, ochronę kluczy i realistyczną separację ryzyka.
Źródła pierwotne
Niniejszy artykuł ma charakter edukacyjny, a nie stanowi porady finansowej, prawnej ani dotyczącej bezpieczeństwa. Uprawnienia inteligentnych kontraktów i funkcje portfela zmieniają się z czasem; przed podpisaniem umowy sprawdź aktualne wsparcie sieciowe i szczegóły transakcji.