Klucza przy tym nikt nie kradnie. Sam wydajesz obcemu kontraktowi prawo do dysponowania twoim tokenem, a on dalej z tego prawa korzysta — tyle razy, ile zechce.
Jak to działa
W standardzie tokena jest zgoda: właściciel podaje adres i kwotę, do której ten adres może zabierać tokeny z jego portfela. Prawo jest wielokrotne i bezterminowe — dopóki liczba nie zostanie wyzerowana, zabrać można w każdej chwili. „Nieograniczona zgoda”, o którą prosi wiele stron, to po prostu największa możliwa liczba.
Dalej twój podpis nie jest potrzebny: przelew inicjuje sam posiadacz zgody. Analizy takich kradzieży pokazują, że nie zabierają od razu: typowy scenariusz to poczekać, aż na portfel wpłynie świeże zasilenie z platformy. Portfel sprzętowy tu nie pomaga: klucza nikt nawet nie próbował ukraść.
Jak odwołać
Odwołanie to ta sama operacja, tylko z kwotą zero: zwykła transakcja, za którą płaci się prowizję sieci. Droga zależy od sieci i to jest tu najważniejsze. W sieciach z rodziny Ethereum listę zgód pokazują serwis revoke.cash i zakładka sprawdzania zgód w eksploratorze. Podejrzeć można po samym adresie, niczego nie podłączając, ale odwołać — tylko po podłączeniu dokładnie tego portfela: cudzej zgody wyzerować się nie da. I od razu włącz w serwisie ustawienie „Show all approvals” — bez niego lista nie jest pokazana w całości. Wbudowanego menedżera zgód w MetaMask nie ma — odwoływanie wyniesiono do osobnej aplikacji webowej MetaMask Portfolio. Dla TRON te drogi nie działają: revoke.cash obsługuje tylko sieci EVM, a TRON do nich nie należy. Tam patrzy się w samym TronLink — „Wallet Management” → „Approval Management” — albo w Tronscan, na stronie „ACCOUNT”, sekcja „LIST OF APPROVAL”.
Pomiar 19.09.2026: w Ethereum odwołanie kosztowało około czterech centów, w TRON — około 1,14 $ za jedną zgodę, bo działa tam ta sama dopłata za przeciążony kontrakt. Dlatego w TRON czyści się według priorytetu, zaczynając od nieograniczonych zgód na USDT. I osobna ostrożność: podrabiane „serwisy do odwoływania” same okazują się drainerami — w kwietniu 2026 roku odnotowano pięć takich kampanii, które łowiły już poszkodowanych.
Czego odwołanie nie robi
Nie zwraca tego, co już wyprowadzono. To profilaktyka, a nie odzyskiwanie; kto obiecuje zwrot skradzionego, najczęściej sam jest oszustem. Ale zgody, z których już skorzystano, i tak trzeba odwołać — inaczej z tego samego portfela zabiorą jeszcze raz, gdy tylko pojawią się na nim pieniądze.
Nie pomaga, jeśli wyciekła fraza seed. Zgody nigdzie przy tym nie znikają — bezcelowa jest sama operacja: złodziej ma cały klucz i podpisze cokolwiek bez żadnych zgód. Wyjście jest jedno — nowy portfel i przeniesienie na niego reszty środków.
Odwołanie w jednej sieci nie odwołuje w innej. Każda zgoda dotyczy jednego tokena w jednej sieci: wyzerowawszy ją w Ethereum, nie zmieniłeś nic w BNB Chain. Przechodzić trzeba sieć po sieci.
I na każdym adresie osobno. Zgoda jest przypisana do właściciela, więc każdy adres wewnątrz jednego portfela ma swój zestaw — wyczyścić trzeba wszystkie, którymi podłączałeś się do stron.
Za to odwołanie nie rusza depozytów ani stakingu. Na już wpłacone i zastakowane tokeny wyzerowanie zgód nie wpływa — nie ma się co bać, że czyszczenie zepsuje twoje pozycje. Jedyny skutek: żeby dopłacić do tej samej pozycji, zgodę trzeba będzie wydać na nowo.
„Odłącz portfel od strony” to nie odwołanie. Odłączenie odbiera stronie dostęp do twojego adresu, a wydane zgody zostają aktywne.
Wyzerowanie nie anuluje już podpisanego, ale jeszcze niewykonanego permit — zgody wydanej podpisem, bez transakcji. Bieżąca wartość zgody nie wchodzi w warunki jej wykonania, a wykonanie nadpisze twoje zero. Taki podpis unieważnia się inaczej — zużywając jego licznik własną transakcją, a okno na to jest małe. A jeśli permit został już wykonany, zwykłe odwołanie działa i właśnie je trzeba zrobić.
Więcej o tym: Jak przechowywać frazę seed, żeby nikt jej nie wyłudził