Stake Account

Delegates SOL to a validator's vote account. Tracks staker/withdrawer authorities, lockup, delegated amount, and activation/deactivation epochs.

Stake Program 200 bytes

Sample: Stake Account

(cached; refreshes hourly · mainnet only)

State Rent Exempt Reserve Authorized Staker Authorized Withdrawer Lockup: Unix Timestamp Lockup: Epoch Lockup: Custodian Voter Pubkey Stake Activation Epoch Deactivation Epoch Warmup/Cooldown Rate Credits Observed Data
0 1 2 3 4 5 6 7 8 9 A B C D E F
0000 02 00 00 00 80 d5 22 00 00 00 00 00 5a 44 a3 4d
0010 0c 40 e6 87 ac 5c 09 17 46 92 92 3d 04 1e 7c ef
0020 c5 af 07 d1 38 e2 01 65 0e 6a c0 d2 5a 44 a3 4d
0030 0c 40 e6 87 ac 5c 09 17 46 92 92 3d 04 1e 7c ef
0040 c5 af 07 d1 38 e2 01 65 0e 6a c0 d2 00 00 00 00
0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0070 00 00 00 00 00 00 00 00 00 00 00 00 23 20 55 34
0080 75 5e 67 c5 d0 85 ab 0c 1c f3 e8 25 c3 fd 70 7d
0090 da c8 60 b1 6f e0 f0 50 a8 ab 08 17 5a 4d 9e 83
00a0 78 8a 1f 00 95 02 00 00 00 00 00 00 ff ff ff ff
00b0 ff ff ff ff 00 00 00 00 00 00 d0 3f 91 ea 69 79
00c0 00 00 00 00 00 00 00 00

A Stake account delegates SOL to a validator's Vote account to earn staking rewards. The 200-byte layout tracks who can manage the stake, how much is delegated, and when activation or deactivation lands.

Solana's proof-of-stake consensus runs on these delegations. SOL holders create Stake accounts pointing at a validator's Vote account; the Stake program manages epoch-based activation, computes per-epoch rewards, and records the credits the validator has earned. Liquid staking protocols like Marinade and Jito hold large pools of Stake accounts on behalf of their depositors.

You encounter Stake accounts in validator dashboards, liquid staking flows, and any RPC call that walks delegations (getStakeActivation, getProgramAccounts on the Stake program).

The layout starts with a 4-byte state enum (Uninitialized, Initialized, Stake, RewardsPool), then the Meta struct (rent_exempt reserve, authorized staker pubkey, authorized withdrawer pubkey, and a Lockup struct of timestamp + epoch + custodian). When the state is Stake (= 2), a Delegation struct follows: the voter_pubkey being staked to, stake_amount, activation_epoch, deactivation_epoch (max u64 if still active), and credits_observed for reward calculation. Two-step authorities — staker and withdrawer can be different keys — let cold storage hold the withdrawer while a hot key manages delegations.