Що потрібно для створення stake account
Stake account у Solana — це окремий об'єкт у мережі з власною адресою та даними, а не просто позначка на вашому основному гаманці. Щоб його створити, потрібні:
- Гаманець із достатнім балансом SOL — сума має покривати як сам стейк, так і rent-exempt мінімум (про нього нижче).
- Доступ до ноди Solana — через власну ноду, публічний RPC-провайдер або інтерфейс гаманця.
- Адреса валідатора — stake account зазвичай створюється з одночасним делегуванням, тому вам потрібна публічна клавіша валідатора (vote account).
- Ключова пара для stake account — якщо створюєте через CLI, вам знадобиться окремий файл ключів. Якщо через гаманець — він згенерує його автоматично.
Без жодного з цих елементів створити функціональний stake account неможливо.
Що таке rent-exempt мінімум і скільки він коштує
Solana використовує механізм rent (орендної плати) для запобігання засміченню стану мережі. Кожен акаунт зберігає дані на леджері, і за це стягується плата. Проте якщо баланс акаунта досягає певного порогу — rent-exempt мінімуму — акаунт назавжди звільняється від rent.
Для stake account цей мінімум є фіксованим протокольним параметром, оскільки розмір даних stake account є сталим (200 байтів). Ключовий момент: це не комісія. Ця сума залишається на вашому stake account і повертається вам повністю, коли ви закриваєте акаунт після деактивації стейку.
Точне значення rent-exempt мінімуму залежить від поточного стану мережі та може змінюватися після оновлень протоколу. Перевірити актуальне значення можна через RPC-виклик getMinimumBalanceForRentExemptAccount із параметром розміру даних stake account. Більшість CLI-команд та гаманців розраховують цю суму автоматично, але варто розуміти, що вона існує і впливає на загальну суму списання.
Покрокова інструкція створення
Створити stake account можна двома основними способами: через командний рядок (CLI) або через інтерфейс гаманця. Обидва способи призводять до однакового результату на рівні блокчейну.
Спосіб 1: Через Solana CLI
Середовище: термінал із встановленим Solana CLI. Передумови: налаштований RPC-endpoint, файл ключів вашого гаманця, достатній баланс SOL.
- Створіть ключову пару для stake account.
solana-keygen new -o stake-account.json
Цей файл буде містити як публічну, так і приватну ключі вашого майбутнього stake account. Зберігайте його надійно — втрата означає втрату контролю над стейком. - Створіть stake account з одночасним делегуванням.
solana create-stake-account stake-account.json АДРЕСА_ВАЛІДАТОРА СУМА_SOL --from ВАШ_ГАМАНЕЦЬ
Параметр СУМА_SOL має включати як суму стейку, так і rent-exempt мінімум. У деяких версіях CLI rent-exempt додається автоматично — уважно читайте підказки команди та документацію до вашої версії. - Збережіть адресу stake account.
Публічний ключ із файлу stake-account.json — це адреса, за якою ви зможете перевіряти статус стейку та керувати ним у майбутньому.
Безпечний відкат: якщо stake account створено, але ви помилилися з валідатором або сумою, ви можете деактивувати стейк командою solana deactivate-stake і після закінчення періоду деактивації вивести кошти командою solana withdraw-stake. Цей процес не миттєвий і займає кілька епох.
Ризик: якщо ви втратите файл stake-account.json до деактивації, ви не зможете керувати цим стейком — ні змінити валідатора, ні вивести кошти.
Спосіб 2: Через інтерфейс гаманця
Більшість гаманців для Solana інтегрують створення stake account у процес стейкінгу, приховуючи технічні деталі.
- Відкрийте розділ стейкінгу у вашому гаманці.
- Введіть суму SOL, яку хочете застейкати. Гаманець має відображати загальну суму списання з урахуванням rent-exempt мінімуму.
- Вкажіть адресу валідатора або оберіть із списку.
- Підтвердьте транзакцію. Гаманець створить stake account, делегує його та відобразить результат.
Ризик: при створенні через гаманець ви зазвичай не отримуєте прямого доступу до ключової пари stake account. Якщо гаманець не підтримує експорт цих ключів, ви повністю залежите від його механізму відновлення для управління стейком.
Перевірка створеного акаунта
Після створення stake account переконайтеся, що транзакція пройшла коректно і акаунт має правильні параметри.
Через CLI:
solana stake-account stake-account.json
Очікуваний результат — вивід інформації про акаунт, що має містити:
- Адресу stake account (публічний ключ)
- Суму стейку (фактичну суму, що бере участь у стейкінгу, без урахування rent-exempt депозиту)
- Адресу валідатора, якому делеговано стейк
- Статус активації (activating, active або деактивуючі стани)
- Наявність або відсутність lockup
Через блокчейн-експлорер: вставте адресу stake account у пошуковий рядок. Ви маєте побачити тип акаунта — Stake, загальний баланс, інформацію про делегування та статус активації.
Якщо делегування вказано коректно, а статус — activating або active, stake account створено успішно. Статус activating є нормальним: перехід до active займає кілька епох.
Типові помилки при створенні stake account
- Недооцінка rent-exempt мінімуму. Якщо сума транзакції не покриває rent-exempt, транзакція буде відхилена мережею. Завжди перевіряйте актуальне значення перед створенням або використовуйте інструменти, що додають його автоматично.
- Створення stake account без делегування. Сам по собі stake account без вказаного валідатора існує, але не приноситиме винагород. Переконайтеся, що крок делегування виконано — або в одній транзакції зі створенням, або окремо командою solana delegate-stake.
- Втрата ключового файлу stake-account.json. Без цього файлу ви не зможете деактивувати стейк, змінити валідатора або закрити акаунт. Створюйте резервні копії ключових файлів одразу після генерації.
- Плутанина між балансом акаунта та сумою стейку. Баланс stake account, який ви бачите в експлорері, включає rent-exempt депозит. Фактична сума, що генерує винагороди, менша на величину цього депозиту. Це не помилка — так працює протокол.
- Очікування миттєвої активації. Щойно створений stake account має статус activating, а не active. Це нормальна поведінка: активація займає кілька епох, і протягом цього періоду винагороди нараховуються пропорційно.