Skip to content

Instantly share code, notes, and snippets.

@AshwinSekar
Last active June 1, 2026 23:45
Show Gist options
  • Select an option

  • Save AshwinSekar/b26d2c30e39ba6a5e2cd9d0d7447f7ea to your computer and use it in GitHub Desktop.

Select an option

Save AshwinSekar/b26d2c30e39ba6a5e2cd9d0d7447f7ea to your computer and use it in GitHub Desktop.
Setting the BLS pubkey for existing or new validators

As part of alpenglow, all vote accounts must now specify a BLS Pubkey on their vote account. This is derived from your authorized voter keypair.

Remember to target the Alpenglow community cluster with these commands (specify -u http://64.130.37.11:8899)

NOTE about the VAT (validator admission ticket)

In alpenglow you no longer have to pay vote tx fees out of your identity account. Instead you will be charged 1.6 sol per epoch from your vote account.

If you do not have your BLS pubkey set, have 0 stake, or are missing the funds to pay the VAT, you will be unable to vote in the subsequent epoch,

e.g. at the start of epoch 5 your BLS pubkey & stake are checked and you are charged 1.6 sol for the privilege to vote and build blocks in epoch 6.

agave-validator monitor will output your participation in the current epoch (E).

The log file will have lines VAT Health Check every 30s showing your participation in the current epoch (E) and the next (E + 1). It will also show whether you have satisfied the requirements to pay the VAT at the start of epoch E + 1 for participation in E + 2.

Existing validators

Ensure that your pubkey is not already set (command should return no output):

solana vote-account <VOTE_ACCOUNT> | grep BLS

Find out your authorized voter. For almost all validators this should be your identity. If you are unsure, you can check using the following command

solana vote-account <VOTE_ACCOUNT> | grep "Vote Authority"

Then use the following command to set your BLS pubkey. For almost all validators the <AUTHORIZED_VOTER_KEYPAIR> should be your identity keypair. This command does a no-op on your authorized voter (sets it to the same it was previously). This has the added effect of populating your BLS pubkey.

solana vote-authorize-voter-checked <VOTE_ACCOUNT> <AUTHORIZED_VOTER_KEYPAIR> <AUTHORIZED_VOTER_KEYPAIR>

New validators

Follow the normal commands to set up a vote account https://docs.anza.xyz/operations/setup-a-validator#create-a-vote-account You will need to use solana airdrop to get some SOL in order to pay the transaction fees to create a vote account.

The cli should automatically use the V2 instruction and set your BLS pubkey. Once setup, let Tim know your vote account address and we'll delegate you some stake and give you some balance in your identity & vote account shortly.

Verification

You should now see your BLS pubkey:

solana vote-account <VOTE_ACCOUNT> | grep BLS
BLS Public Key: <pubkey>

Operators do not need to do anything special to manage this key. It is tied to your authorized voter keypair and will be automatically updated if you change your authorized voter in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment