Визначення

Stake account — це програмний рахунок у мережі Solana, який належить до Stake-програми та зберігає заблоковані токени SOL разом із метаданими про делегування конкретному валідатору. Це не гаманець і не звичайний системний рахунок: це окрема адреса, керована виключно логікою Stake-програми.

Як працює

Коли ви стейкаєте SOL, кошти не залишаються на вашому основному гаманці — вони переміщуються на окремий stake account. Цей рахунок є PDA (Program Derived Address), тобто його адреса детерміновано генерується з вашого публічного ключа та ідентифікатора Stake-програми. Саме тому ви не можете прямо підписати транзакцію з цього рахунку: усі дії з ним виконуються через інструкції Stake-програми.

Stake account зберігає такі ключові дані:

  • Кількість SOL — фактичний баланс заблокованих токенів плюс накопичені винагороди.
  • Адреса валідатора — до кого саме делеговані кошти.
  • Статус активації — епоха, коли стейк почав брати участь у консенсусі, та епоха деактивації.
  • Lockup — обмеження на зняття, якщо воно було встановлене при створенні рахунку.

Основні операції зі stake account:

  • Створення — ініціюється з вашого гаманця, SOL переводяться на новий PDA-рахунок.
  • Делегування — прив'язка рахунку до валідатора (можна виконати одночасно зі створенням).
  • Деактивація — запуск процесу виведення коштів із консенсусу. Займає кілька епох.
  • Розділення (split) — створення нового stake account з частини коштів поточного. Корисно для зміни валідатора без повної деактивації.
  • Злиття (merge) — об'єднання двох stake accounts з однаковим валідатором і статусом.
  • Зняття (withdraw) — переведення SOL назад на системний рахунок після завершення деактивації.

Один stake account завжди делегований рівно одному валідатору. Щоб частково делегувати іншому, потрібно розділити рахунок.

Приклад

Ви маєте 50 SOL на гаманці та хочете делегувати 30 SOL валідатору A, а 20 SOL — валідатору B. Ви створюєте два окремих stake accounts: на перший переводите 30 SOL і делегуєте валідатору A, на другий — 20 SOL і делегуєте валідатору B. На вашому основному гаманці залишається 0 SOL (мінус комісії за транзакції). Згодом ви вирішуєте перевести 10 SOL від валідатору A до валідатору B: ви робите split першого stake account, створюючи третій рахунок на 10 SOL, деактивуєте його та після завершення деактивації делегуєте валідатору B.

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

Сплутування stake account з основним гаманцем. Користувачі часто дивляться на баланс свого гаманця в Phantom чи Solflare після стейкінгу і не бачать там стейканих SOL — і роблять висновок, що кошти зникли. Насправді вони зберігаються на окремих stake accounts, які потрібно переглядати в розділі стейкінгу самого гаманця або через блокчейн-експлорер за адресою stake account. Інша поширена помилка — спроба відправити токени безпосередньо на stake account як на звичайну адресу: такі транзакції будуть відхилені, оскільки рахунок належить Stake-програмі, а не System-програмі.

Пов'язані матеріали

Внутрішні переходи

  • Delegation — як саме stake account пов'язується з валідатором через делегування.