Vote Program — Program ID & Instructions
Vote111111111111111111111111111111111111111 The Vote Program manages validator vote accounts on Solana. Vote accounts record a validator’s consensus votes and are the target of stake delegations. Staking rewards are distributed based on voting performance.
Program ID
Vote111111111111111111111111111111111111111
Key instructions
| Instruction | Description |
|---|---|
InitializeAccount | Creates a new vote account with a validator identity |
Vote | Records a vote for a specific slot |
UpdateValidatorIdentity | Changes the validator identity key |
UpdateCommission | Changes the commission rate |
Withdraw | Withdraws excess SOL from the vote account |
Authorize | Changes authorized voter or withdrawer |
Vote account structure
| Field | Description |
|---|---|
nodePubkey | Validator’s identity public key |
authorizedVoter | Key authorized to submit votes |
authorizedWithdrawer | Key authorized to withdraw SOL |
commission | Percentage of staking rewards kept by the validator (0–100) |
votes | Recent vote history (landing slots) |
rootSlot | Highest finalized slot |
epochCredits | Credits earned per epoch (determines reward share) |
Commission
The commission rate determines how staking rewards are split:
- Validator keeps
commission%of rewards. - Delegators share the remaining
(100 - commission)%.
Commission changes take effect in the following epoch.
Querying vote accounts
const voteAccounts = await connection.getVoteAccounts();
for (const v of voteAccounts.current) {
console.log(`Validator: ${v.nodePubkey}`);
console.log(`Commission: ${v.commission}%`);
console.log(`Active stake: ${v.activatedStake}`);
}
FAQ
What is the difference between a validator and a vote account? A validator is the machine running the software. A vote account is the on-chain account that records the validator’s votes. One validator has one vote account.
Can anyone create a vote account? Yes, but the vote account is only useful with a running validator to submit votes. Creating a vote account without a validator earns no rewards and has no purpose.
How does commission affect staking returns? A validator with 5% commission keeps 5% of all staking rewards earned by its delegated stake. Delegators receive the remaining 95%, split proportionally to their stake.
Updated: