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

Чому stake account може бути заморожений

У нативному стейкінгу Solana кожен stake account має три ключові повноваження: stake authority (управління делегуванням), withdraw authority (виведення коштів) та lockup (тимчасове блокування). «Замороження» виникає з однієї з трьох причин:

  • Активна делегація. Кошти делеговані валідатору й перебувають у стані Stake State::Stake. У цьому стані stake account не можна закрити, а SOL — вивести на основний гаманець. Спочатку потрібно деактивувати делегацію.
  • Період lockup. При створенні stake account можна вказати епоху, до якої заборонено виведення коштів. До настання цієї епохи навіть після деактивації делегації вивести SOL не вдасться, якщо ви не маєте повноважень lockup custodian.
  • Кастодіальний контроль. Якщо stake account створено через сторонній сервіс і ви не володієте жодним із трьох повноважень, фактичним власником коштів є сервіс. У такому разі технічне розблокування можливе лише з їхнього боку.

Перш ніж діяти, переконайтеся, що розумієте, яка саме причина застосована до вашого облікового запису. Це можна зробити через CLI або блокчейн-експлорер, переглянувши поля stake, lockup та перелік авторитетів.

Послідовність дій для розблокування

Нижче наведено інструкцію для ситуації, коли ви володієте stake authority та withdraw authority, а stake account делеговано валідатору.

Середовище: Solana CLI, встановлений локально або через Docker. Гаманець із необхідними повноваженнями має бути імпортовано.

Передумови: відомий адрес stake account, наявність SOL на основному гаманці для оплати комісій транзакцій (станом на перевірку у червні 2025 року — мінімальна комісія за транзакцію становить 0.000005 SOL, джерело: офіційна документація Solana).

Очікуваний результат: SOL із stake account повернуто на основний гаманець, stake account закрито.

  1. Перевірте поточний стан stake account.
    Виконайте команду:
    solana stake-account <STAKE_ACCOUNT_ADDRESS>
    Зверніть увагу на поля: State (має бути «Stake»), Lockup (епоха та custodian), Stake Authority та Withdraw Authority. Якщо State вже «Inactive» — перейдіть до кроку 4.
  2. Деактивуйте делегацію.
    solana stake-deactivate <STAKE_ACCOUNT_ADDRESS>
    Після підтвердження транзакції стан зміниться на «Deactivating». Це означає, що кошти більше не беруть участь у консенсусі з наступної епохи.
  3. Дочекайтеся завершення деактивації.
    Деактивація триває кілька епох. Точну кількість епох і тривалість однієї епохи нині перевірте в офіційній документації Solana або через блокчейн-експлорер, оскільки ці параметри можуть змінюватися. Повторіть команду з кроку 1: коли State змінився на «Inactive», можна рухатися далі.
  4. Перевірте lockup.
    Якщо поле Lockup Epoch ще не настало, а ви не вказані як Lockup Custodian — дочекайтеся закінчення періоду. Якщо ви є Lockup Custodian, виконайте:
    solana stake-authorize <STAKE_ACCOUNT_ADDRESS> --lockup-auth <YOUR_WALLET>
    а потім зніміть обмеження.
  5. Виведіть SOL.
    solana withdraw-stake <STAKE_ACCOUNT_ADDRESS> <RECIPIENT_WALLET> <AMOUNT>
    Щоб вивести всю суму, вкажіть повний баланс. Після успішної транзакції stake account буде закрито, а SOL надійде на вказаний гаманець.

Перевірка: виконайте solana stake-account <STAKE_ACCOUNT_ADDRESS> ще раз — система має повідомити, що обліковий запис не знайдено або не є stake account.

Ризики: під час очікування деактивації кошти не генерують винагород. Транзакції деактивації та виведення потребують оплати комісій мережі. Якщо ви помилково вкажете адресу одержувача, кошти буде надіслано на неправильний гаманець без можливості автоматичного повернення.

Безпечний відкат: якщо ви деактивували stake account, але передумали виводити кошти до закінчення деактивації, ви можете повторно делегувати їх іншому валідатору командою solana stake-delegate. Після завершення деактивації (стан «Inactive») повторна делегація також можлива без виведення.

Коли розблокування неможливе без втрат

Існують ситуації, в яких повернути повну суму не вдасться або взагалі неможливо технічно:

  • Втрата доступу до stake authority або withdraw authority. Якщо гаманець, що володіє цими повноваженнями, втрачено (загублено seed-фразу, видалено ключовий файл), розблокувати stake account самостійно неможливо. Ніхто в мережі, включно з валідатором, не може обійти цей механізм.
  • Lockup без доступу до custodian. Якщо lockup встановлено на майбутню епоху, а ви не є custodian і не маєте доступу до гаманця custodian — дочекайтеся закінчення періоду. Спроби обійти lockup через смарт-контракти чи сторонні інструменти не існують у нативному стейкінгу Solana.
  • Слейсинг валідатора. Механізм слейсингу (часткового вилучення коштів за порушення протоколу) реалізований у коді Solana, але на момент написання матеріалу не був активований. Якщо в майбутньому слейсинг буде увімкнено, а ваш валідатор піддасться покаранню, частина делегованих SOL може бути безповоротно втрачена. Перевірте актуальний статус слейсингу в офіційній документації перед прийняттям рішень.
  • Кастодіальні сервіси з обмеженим виводом. Деякі платформи ліквідного стейкінгу або централізовані біржі дозволяють створювати нативні stake accounts від імені користувача, але зберігають withdraw authority за собою. У такому разі розблокування залежить від правил та ліквідності платформи, що може супроводжуватися комісіями, затримками або обмеженнями.

Коли розблокування неможливе без втрат: Куди звертатися за допомогою

Якщо ви втратили доступ до повноважень stake account або стикнулися з кастодіальними обмеженнями, варто розуміти межі можливої допомоги:

  • Офіційна команда Solana не має інструментів для скидання чи перенесення повноважень stake account. Протокол працює без дозволів, і централізованого механізму відновлення доступу не існує.
  • Валідатор, якому делеговані кошти, не має жодних додаткових прав на ваш stake account. Він не може деактивувати делегацію, вивести кошти чи змінити авторитети.
  • Кастодіальний сервіс — єдиний варіант, якщо stake account створено через платформу, яка контролює авторитети. Звертатися треба безпосередньо до служби підтримки цього сервісу. Успіх залежить від їхніх внутрішніх правил і юридичної юрисдикції.
  • Податковий чи юридичний консультант — якщо втрата коштів пов'язана з діяльністю третьої сторони (наприклад, сервісу-кастодіана), питання відшкодування виходить за межі технічного протоколу. Рекомендується звернутися до фахівця з юрисдикції, у якій зареєстровано сервіс. Ця інформація не є юридичною порадою.

У всіх випадках, крім кастодіальних, механіка нативного стейкінгу Solana не передбачає «дверей для екстреного виходу». Саме тому контроль над повноваженнями stake account — це не технічна деталь, а фундаментальна умова збереження доступу до коштів.

Джерела