---
title: Stake Programming
---

To maximize stake distribution, decentralization, and censorship resistance on
the Solana network, staking can be performed programmatically. The team and
community have developed several onchain and offchain programs to make stakes
easier to manage.

### Solana Foundation Delegation Program

The
[Solana Foundation Delegation Program](https://solana.org/delegation-program) is
designed to serve the needs of the network by targeting the following goals:

1. Maximize decentralization, reliability, and performance of Solana
2. Maximize the number of validators who have diverse sources of stake
3. Sustain a large and representative testnet

### Stake Pools

This onchain program pools together SOL to be staked by a manager, allowing SOL
holders to stake and earn rewards without managing stakes. Users deposit SOL in
exchange for SPL tokens (staking derivatives) that represent their ownership in
the stake pool. The pool manager stakes deposited SOL according to their
strategy, perhaps using a variant of an auto-delegation bot as described above.
As stakes earn rewards, the pool and pool tokens grow proportionally in value.
Finally, pool token holders can send SPL tokens back to the stake pool to redeem
SOL, thereby participating in decentralization with much less work required.
More information can be found at the
[SPL stake pool documentation](https://spl.solana.com/stake-pool).
