Коли ви підключаєте гаманець до застосунку на Solana, він може отримати дозвіл на витрачання певних токенів з вашого рахунку. Якщо такий застосунок більше не використовується, викликає підозру або просто не потребує цього доступу — дозвіл слід відкликати. Нижче наведено чіткий алгоритм, як це зробити безпечно й перевірити результат.

Передумови: що таке дозволи застосунків

На Solana дозвіл на витрачання токенів називається approve (схвалення). Коли застосунок отримує такий дозвіл, він стає делегатом для конкретного токен-рахунку у вашому гаманці. Це означає, що програма може переказати вказану суму токенів без вашого додаткового підпису — але лише в межах затвердженого ліміту.

Дозволи не є довічними. Вони мають чітко задану суму та, як правило, термін дії. Проте поки дозвіл активний, пов’язаний з ним застосунок або контракт може скористатися ним у будь-який момент. Тому регулярний перегляд і відкликання непотрібних делегувань — це базова гігієна гаманця.

Важливо розрізняти два рівні доступу:

  • Підключення гаманця — застосунок бачить ваш баланс і може запитувати підпис транзакції. Сам по собі цей доступ не дозволяє переказувати кошти.
  • Делегування витрачання (approve) — застосунок отримує право переказати токени з вашого рахунку без окремого запиту підпису.

Саме другий рівень потребує контролю й відкликання.

Як переглянути активні дозволи

Перед тим як щось відкликати, потрібно побачити повну картину. Активні делегування не завжди видно в інтерфейсі самого гаманця, тому використовують зовнішні інструменти.

Загальний порядок дій:

  1. Відкрийте блокчейн-ексplorer (наприклад, SolanaFM або Solscan) і знайдіть свій гаманець за адресою.
  2. Перейдіть до розділу токен-рахунків — там, де перелічені всі токени на вашому балансі.
  3. Для кожного токен-рахунку перевірте поле delegate (делегат). Якщо воно не порожнє — значить, хтось має дозвіл на витрачання частини або всіх токенів цього рахунку.
  4. Зверніть увагу на поле delegated amount — це сума, яку делегат має право переказати.

Альтернативний спосіб — використати спеціалізовані дашборди (наприклад, Step Finance), де активні делегування часто виведені в окремий розділ інтерфейсу. Це зручніше, якщо у вас багато токен-рахунків.

Що саме фіксуйте при перевірці:

  • Адреса делегата — чи належить вона відомому вам застосунку.
  • Сума делегування — чи відповідає вона вашим очікуванням.
  • Токен, до якого прив’язане делегування.

Покрокове відкликання

Відкликання дозволу — це звичайна транзакція на Solana. Вона створює інструкцію revoke для відповідного токен-рахунку. Після виконання делегат втрачає доступ миттєво.

Крок 1. Визначте, що саме відкликати

Використайте результати попереднього етапу. Запишіть або скопіюйте адресу токен-рахунку, делегування якого потрібно скасувати. Не плутайте токен-рахунок (довга адреса, що починається з символів вашого гаманця, але відрізняється від нього) з адресою самого гаманця.

Крок 2. Оберіть інструмент для відкликання

Найпоширеніші варіанти:

  • Спеціалізовані дашборди (Step Finance та подібні) — мають кнопку «Revoke» біля кожного активного делегування.
  • Командний рядок за допомогою spl-token CLI — підходить для досвідчених користувачів, які працюють з терміналом.
  • Деякі гаманці вбудовують функцію перегляду делегувань безпосередньо в інтерфейс — перевірте налаштування вашого.

Крок 3. Ініціюйте транзакцію

Натисніть «Revoke» або виконайте відповідну команду. Ваш гаманець має відкритися з запитом на підпис транзакції.

Крок 4. Перевірте транзакцію перед підписом

У вікні підпису зверніть увагу на:

  • Тип інструкції — має бути Revoke або еквівалентна назва.
  • Токен-рахунок — адреса має збігатися з тією, яку ви визначили на кроці 1.
  • Відсутність інших інструкцій — у транзакції відкликання зазвичай лише одна інструкція. Якщо їх кілька і ви їх не розумієте, не підписуйте.

Крок 5. Підпишіть транзакцію

Після підпису зачекайте підтвердження в мережі. Транзакція відкликання коштує стандартну комісію (fee) у SOL — ця сума не повертається, але зазвичай є незначною.

Що робити, якщо відкликали не те

Відкликання дозволу — незворотна дія. Ви не можете «відновити» делегування транзакцією скасування. Якщо ви випадково відкликали дозвіл для працюючого застосунку, просто знову підключіться до нього та повторно надайте дозвіл у його інтерфейсі. Ваші токени при цьому не зникають — змінюється лише доступ стороннього застосунку до них.

Перевірка результату

Після підтвердження транзакції обов’язково перевірте, що відкликання спрацювало:

  1. Відкрийте той самий блокчейн-ексplorer, де переглядали делегування.
  2. Знайдіть токен-рахунок, для якого виконували revoke.
  3. Перевірте поле delegate — воно має бути порожнім.
  4. Поле delegated amount має показувати нуль.

Якщо делегат досі вказаний — транзакція могла не пройти або ви відкликали інший рахунок. У такому разі перевірте ідентифікатор транзакції в експлорері та переконайтеся, що вона має статус success.

Типові помилки

Плутанина між гаманцем і токен-рахунком

Кожен токен у вашому гаманці зберігається на окремому токен-рахунку з унікальною адресою. Делегування прив’язане саме до токен-рахунку, а не до адреси гаманця загалом. Якщо ви шукаєте делегування за адресою гаманця й не бачите нічого — перевірте окремі токен-рахунки.

Відкликання дозволу замість відключення гаманця

Відкликання делегування не відключає гаманець від застосунку. Застосунок все ще бачить ваш баланс і може надсилати запити на підпис. Якщо ви хочете повністю припинити взаємодію — відкличте дозвіл, а потім відключіть гаманець у налаштуваннях застосунку або в інтерфейсі самого гаманця (функція «Disconnect»).

Ігнорування дрібних делегувань

Навіть якщо delegated amount дорівнює нулю, але поле delegate заповнене — делегування вважається активним. Його також варто відкликати, щоб усунути будь-який потенційний вектор доступу.

Підпис транзакції без перевірки

Якщо інтерфейс інструменту дозволяє додати інші інструкції до транзакції відкликання (наприклад, переказ токенів) — це червоний прапорець. Транзакція revoke має містити лише одну інструкцію.

Безпечний наступний крок

Після того як ви перевірили, що небажані дозволи відкликані, логічний наступний крок — переконатися, що ваші токени зберігаються там, де ви плануєте. Якщо ви готуєтеся до переказу токенів SPL на інший гаманець, переконайтеся, що на рахунку-відправнику немає активних делегувань, які можуть завадити або ускладнити операцію. Детальний порядок переказу описано в окремій інструкції.

Джерела