Stake account у Solana — це окрема програмно керована структура, яка зберігає делеговані кошти, прив'язку до валідатора та поточний статус стейкінгу. На відміну від звичайного гаманця, цей акаунт має власний життєвий цикл: він не стає активним миттєво після створення й не деактивується одразу за запитом. Щоб розуміти, де знаходяться ваші кошти, чи нараховуються винагороди та коли можна вивести SOL, потрібно вміти читати параметри stake account.
Де перевірити поточний стан акаунта
Існує три основні способи отримати актуальну інформацію про stake account, кожен із яких підходить для різних ситуацій.
Solana Explorer (explorer.solana.com) — найпростіший варіант для разової перевірки. Вставте адресу stake account у рядок пошуку. Система покаже тип акаунта (Stake), поточний баланс, прив'язаний vote account валідатора, статус активації та епохи. Це достатньо для швидкого огляду без технічних налаштувань.
Інтерфейс гаманця (Phantom, Solflare, Backpack та інші) відображає stake account у розділі стейкінгу. Зазвичай показується делегована сума, ім'я валідатора та приблизний статус. Однак гаманці не завжди відображають усі технічні деталі, зокрема точні епохи активації чи кількість кредитів, тому для повної картини цього може бути недостатньо.
Solana CLI — найповніше джерело інформації. Команда:
solana stake-account <адреса_stake_account>
виводить усі параметри акаунта: стан, баланс, vote account, lockup (за наявності), епохи активації та деактивації, кількість спостережених кредитів. Для використання CLI потрібен встановлений інструментарій solana-toolchain і доступ до RPC-вузла. Цей спосіб незамінний, коли потрібно точне значення конкретного поля, а не спрощене подання.
Також можна безпосередньо звернутися до програми stake через RPC-виклик getStakeAccountInfo або розпарсити акаунт-дані власноруч, але це вимагає технічної підготовки й зазвичай потрібне лише для автоматизованих рішень.
Які параметри відстежувати регулярно
Не всі поля stake account однаково важливі для делегатора. Серед ключових:
- Stake State (стан) — поточний статус акаунта в життєвому циклі. Визначає, чи нараховуються винагороди та чи можна вивести кошти.
- Vote Account — адреса vote account валідатора, якому делеговані кошти. Перевірте, що вона збігається з очікуваною: помилкова делегація означає, що винагороди йдуть іншому валідатору.
- Balance — фактичний баланс акаунта в лампортів. Зростає пропорційно нарахованим винагородам. Зверніть увагу: це не те саме, що початкова сума делегації.
- Activation Epoch — епоха, з якої stake почав або почне брати участь у консенсусі.
- Deactivation Epoch — епоха, з якої stake припиняє участь. Якщо значення не встановлене, акаунт залишається активним необмежено.
- Credits Observed — кількість кредитів, накопичених акаунтом. Кредити відображають реальну участь у слотах і безпосередньо впливають на розмір нарахованих винагород.
- Lockup — наявність та параметри заморозки (дата або епоха зняття, авторизований стейкхолдер). Сама тема lockup детально розглянута в окремому матеріалі, але на рівні моніторингу важливо бачити, чи застосовано обмеження.
Регулярна перевірка цих параметрів дозволяє вчасно помітити зміну валідатора (у разі несанкціонованої переделегації), зрозуміти, чому винагороди не нараховуються, та визначити, коли завершиться деактивація й кошти стануть доступними для виведення.
Як зрозуміти статус активації та деактивації
Життєвий цикл stake account у Solana не миттєвий. Коли ви делегуєте SOL або ініціюєте зняття, акаунт проходить через проміжні стани. Розуміння цих переходів убезпечує від хибних очікувань.
Стани акаунта та їхній зміст:
- inactive — акаунт створено, але кошти ще не беруть участі в консенсусі. Винагороди не нараховуються. Це початковий стан після створення stake account до початку наступної епохи активації.
- activating — процес «прогріву». Solana не підключає весь stake одномоментно: частка поступово збільшується епоха за епохою. У цьому стані винагороди нараховуються лише на активовану частину.
- active — повна участь у консенсусі. Усі делеговані кошти генерують винагороди. Це основний робочий стан.
- deactivating — процес «охолодження» після ініціювання деактивації (зняття stake). Активна частка поступово зменшується епоха за епохою. Винагороди нараховуються лише на ту частину, що ще залишається активною.
- inactive (після деактивації) — stake повністю деактивовано. Кошти можна вивести на звичайний гаманець командою deactivate stake та подальшим withdraw.
Тривалість переходів між станами залежить від загальної кількості стейку в мережі та протокольних параметрів. Ці значення не є фіксованими й можуть змінюватися з оновленнями мережі, тому точні цифри слід перевіряти в актуальній документації Solana або через CLI на момент потреби.
Типова помилка: делегатор ініціює деактивацію й одразу намагається вивести SOL. Оскільки акаунт ще перебуває у стані deactivating, операція withdraw завершиться помилкою. Необхідно дочекатися повного переходу в inactive.
Інша поширена ситуація: після делегації акаунт довго залишається в activating, і делегатор турбується, чи щось зламалося. Насправді це нормальна поведінка — прогрів займає кілька епох, і поспішати не варто.
Можливості автоматизованого відстеження
Якщо ви керуєте кількома stake accounts або хочете контролювати стан без ручних перевірок, є кілька підходів до автоматизації.
Скрипти на основі Solana CLI. Баш-скрипт, що періодично викликає solana stake-account і фільтрує виведення за полем Stake State, дозволяє отримувати сповіщення при зміні статусу. Мінімальні вимоги: встановлений solana-toolchain і доступ до надійного RPC-вузла. Варто враховувати ліміти запитів, якщо використовується публічний RPC.
Виклики через RPC API. Метод getAccountInfo з указаною програмою Stake (Stake11111111111111111111111111111111111111) повертає серіалізовані дані акаунта. Розпарсивши їх, можна отримати всі поля, включно зі станом та епохами. Цей підхід підходить для інтеграції в більш складні системи моніторингу.
Підписка на вебхуки сторонніх сервісів. Деякі платформи для моніторингу блокчейнів пропонують сповіщення про зміну стану акаунта. Однак слід перевіряти, чи підтримують вони саме stake-статуси, а не лише транзакції, оскільки зміна стану активації відбувається на рівні епох, а не окремою транзакцією.
За будь-якого підходу важливо розуміти: автоматизоване відстеження не змінює сам життєвий цикл stake account. Воно лише дає змогу реагувати на події вчасно — наприклад, вивести кошти одразу після завершення деактивації або виявити неочікувану зміну vote account.
Якщо після деактивації ви виявили, що stake account має lockup і кошти недоступні для виведення, перейдіть до наступного матеріалу про те, як розблокувати заморожений stake account.