Коли ви підключаєте гаманець до застосунку на Solana, він може отримати дозвіл на витрачання певних токенів з вашого рахунку. Якщо такий застосунок більше не використовується, викликає підозру або просто не потребує цього доступу — дозвіл слід відкликати. Нижче наведено чіткий алгоритм, як це зробити безпечно й перевірити результат.
Передумови: що таке дозволи застосунків
На Solana дозвіл на витрачання токенів називається approve (схвалення). Коли застосунок отримує такий дозвіл, він стає делегатом для конкретного токен-рахунку у вашому гаманці. Це означає, що програма може переказати вказану суму токенів без вашого додаткового підпису — але лише в межах затвердженого ліміту.
Дозволи не є довічними. Вони мають чітко задану суму та, як правило, термін дії. Проте поки дозвіл активний, пов’язаний з ним застосунок або контракт може скористатися ним у будь-який момент. Тому регулярний перегляд і відкликання непотрібних делегувань — це базова гігієна гаманця.
Важливо розрізняти два рівні доступу:
- Підключення гаманця — застосунок бачить ваш баланс і може запитувати підпис транзакції. Сам по собі цей доступ не дозволяє переказувати кошти.
- Делегування витрачання (approve) — застосунок отримує право переказати токени з вашого рахунку без окремого запиту підпису.
Саме другий рівень потребує контролю й відкликання.
Як переглянути активні дозволи
Перед тим як щось відкликати, потрібно побачити повну картину. Активні делегування не завжди видно в інтерфейсі самого гаманця, тому використовують зовнішні інструменти.
Загальний порядок дій:
- Відкрийте блокчейн-ексplorer (наприклад, SolanaFM або Solscan) і знайдіть свій гаманець за адресою.
- Перейдіть до розділу токен-рахунків — там, де перелічені всі токени на вашому балансі.
- Для кожного токен-рахунку перевірте поле delegate (делегат). Якщо воно не порожнє — значить, хтось має дозвіл на витрачання частини або всіх токенів цього рахунку.
- Зверніть увагу на поле delegated amount — це сума, яку делегат має право переказати.
Альтернативний спосіб — використати спеціалізовані дашборди (наприклад, Step Finance), де активні делегування часто виведені в окремий розділ інтерфейсу. Це зручніше, якщо у вас багато токен-рахунків.
Що саме фіксуйте при перевірці:
- Адреса делегата — чи належить вона відомому вам застосунку.
- Сума делегування — чи відповідає вона вашим очікуванням.
- Токен, до якого прив’язане делегування.
Покрокове відкликання
Відкликання дозволу — це звичайна транзакція на Solana. Вона створює інструкцію revoke для відповідного токен-рахунку. Після виконання делегат втрачає доступ миттєво.
Крок 1. Визначте, що саме відкликати
Використайте результати попереднього етапу. Запишіть або скопіюйте адресу токен-рахунку, делегування якого потрібно скасувати. Не плутайте токен-рахунок (довга адреса, що починається з символів вашого гаманця, але відрізняється від нього) з адресою самого гаманця.
Крок 2. Оберіть інструмент для відкликання
Найпоширеніші варіанти:
- Спеціалізовані дашборди (Step Finance та подібні) — мають кнопку «Revoke» біля кожного активного делегування.
- Командний рядок за допомогою spl-token CLI — підходить для досвідчених користувачів, які працюють з терміналом.
- Деякі гаманці вбудовують функцію перегляду делегувань безпосередньо в інтерфейс — перевірте налаштування вашого.
Крок 3. Ініціюйте транзакцію
Натисніть «Revoke» або виконайте відповідну команду. Ваш гаманець має відкритися з запитом на підпис транзакції.
Крок 4. Перевірте транзакцію перед підписом
У вікні підпису зверніть увагу на:
- Тип інструкції — має бути Revoke або еквівалентна назва.
- Токен-рахунок — адреса має збігатися з тією, яку ви визначили на кроці 1.
- Відсутність інших інструкцій — у транзакції відкликання зазвичай лише одна інструкція. Якщо їх кілька і ви їх не розумієте, не підписуйте.
Крок 5. Підпишіть транзакцію
Після підпису зачекайте підтвердження в мережі. Транзакція відкликання коштує стандартну комісію (fee) у SOL — ця сума не повертається, але зазвичай є незначною.
Що робити, якщо відкликали не те
Відкликання дозволу — незворотна дія. Ви не можете «відновити» делегування транзакцією скасування. Якщо ви випадково відкликали дозвіл для працюючого застосунку, просто знову підключіться до нього та повторно надайте дозвіл у його інтерфейсі. Ваші токени при цьому не зникають — змінюється лише доступ стороннього застосунку до них.
Перевірка результату
Після підтвердження транзакції обов’язково перевірте, що відкликання спрацювало:
- Відкрийте той самий блокчейн-ексplorer, де переглядали делегування.
- Знайдіть токен-рахунок, для якого виконували revoke.
- Перевірте поле delegate — воно має бути порожнім.
- Поле delegated amount має показувати нуль.
Якщо делегат досі вказаний — транзакція могла не пройти або ви відкликали інший рахунок. У такому разі перевірте ідентифікатор транзакції в експлорері та переконайтеся, що вона має статус success.
Типові помилки
Плутанина між гаманцем і токен-рахунком
Кожен токен у вашому гаманці зберігається на окремому токен-рахунку з унікальною адресою. Делегування прив’язане саме до токен-рахунку, а не до адреси гаманця загалом. Якщо ви шукаєте делегування за адресою гаманця й не бачите нічого — перевірте окремі токен-рахунки.
Відкликання дозволу замість відключення гаманця
Відкликання делегування не відключає гаманець від застосунку. Застосунок все ще бачить ваш баланс і може надсилати запити на підпис. Якщо ви хочете повністю припинити взаємодію — відкличте дозвіл, а потім відключіть гаманець у налаштуваннях застосунку або в інтерфейсі самого гаманця (функція «Disconnect»).
Ігнорування дрібних делегувань
Навіть якщо delegated amount дорівнює нулю, але поле delegate заповнене — делегування вважається активним. Його також варто відкликати, щоб усунути будь-який потенційний вектор доступу.
Підпис транзакції без перевірки
Якщо інтерфейс інструменту дозволяє додати інші інструкції до транзакції відкликання (наприклад, переказ токенів) — це червоний прапорець. Транзакція revoke має містити лише одну інструкцію.
Безпечний наступний крок
Після того як ви перевірили, що небажані дозволи відкликані, логічний наступний крок — переконатися, що ваші токени зберігаються там, де ви плануєте. Якщо ви готуєтеся до переказу токенів SPL на інший гаманець, переконайтеся, що на рахунку-відправнику немає активних делегувань, які можуть завадити або ускладнити операцію. Детальний порядок переказу описано в окремій інструкції.