Creating Stake Accounts
Create Stake Account
Create a new stake account:Create with Custom Authorities
Specify stake and withdraw authorities:Create with Lockup
Add lockup restrictions:Create from Specific Source
Create with Seed
Create at a derived address:Create with Authority Verification
Verify withdraw authority as a signer:Delegating Stake
Delegate to Validator
Delegate stake to a vote account:Delegate with Custom Authority
Force Delegation
Bypass vote account sanity checks (use carefully):--force if you understand the risks. It bypasses checks that ensure the vote account is valid.
Viewing Stake Information
View Stake Account
Display stake account details:- Balance
- State (Initialized, Activating, Active, Deactivating)
- Delegated vote account
- Credits observed
- Lockup information
- Authorities
View with Rewards
Display inflation rewards:Display in Lamports
Deactivating Stake
Deactivate Stake
Begin deactivating delegated stake:Deactivate with Custom Authority
Deactivate Delinquent Stake
Deactivate stake delegated to a delinquent validator:Deactivate with Seed
Withdrawing Stake
Withdraw from Stake Account
Withdraw inactive stake:Withdraw with Custom Authority
Withdraw with Custodian
Withdraw from locked stake with custodian permission:Splitting Stake
Split Stake Account
Split stake into two accounts:Split with Custom Authority
Split with Seed
Merging Stake
Merge Stake Accounts
Merge source stake into destination:- Both accounts must be delegated to the same vote account
- Both must have the same authorities
- Source account is closed after merge
Merge with Custom Authority
Managing Authorities
Authorize New Staker
Set a new stake authority:Authorize New Withdrawer
Set a new withdraw authority:Authorize Both Authorities
Authorize with Current Authority
Authorize with Custodian
Authorize Without Wait
Return immediately without waiting for confirmation:Checked Authorization
Verify new authority as a signer:Setting Lockup
Set Lockup Parameters
Modify stake account lockup:Set Lockup with Custodian
Checked Lockup
Verify new custodian as a signer:Stake Account Lifecycle
Typical Flow
- Create: Generate and fund stake account
- Delegate: Assign to validator
- Activate: Automatic (takes 1-2 epochs)
- Earn Rewards: Automatic while active
- Deactivate: Start cooldown period
- Withdraw: Remove SOL after deactivation
Activation Timeline
Deactivation Timeline
Transaction Options
Fee Payer
Specify who pays transaction fees:Compute Unit Price
Set priority fees:Memo
Add memo to transaction:Offline Signing
Sign Only
Generate transaction without broadcasting:Submit Pre-Signed
Broadcast a signed transaction:Best Practices
Security
- Separate Authorities: Use different keypairs for stake and withdraw
- Cold Storage: Keep withdraw authority offline
- Lockup: Use lockup for long-term holdings
- Backup: Securely backup all authority keypairs
Operational
- Monitor Performance: Check validator performance before delegating
- Diversify: Split stake across multiple validators
- Plan Ahead: Account for activation/deactivation periods
- Test First: Test on devnet before mainnet
Cost Optimization
- Batch Operations: Combine multiple operations when possible
- Merge Accounts: Consolidate to reduce rent costs
- Minimum Delegation: Check minimum with
solana stake-minimum-delegation - Priority Fees: Use appropriate compute unit prices
Common Workflows
Initial Staking
Redelegating
Emergency Withdrawal
Next Steps
Program Deployment
Deploy and manage on-chain programs
Cluster Queries
Monitor validators and stake performance