๐ How to sign a message with the CLI
Instructions for signing an off-chain message with the Solana CLI.
To verify your identity without signing an on-chain transaction using your vote key, you need to sign an off-chain message and provide the necessary details. This process allows you to prove ownership of your vote key securely.

Sign the off-chain message
Sign the message with your vote key, then submit the details.
Choose a claim wallet
Choose a claim wallet that you will use to connect to The Vault's website. Preferably, use a burner wallet. You can see your personal validator dashboard and claim points when the campaign is finished using this wallet.
Open a terminal
Open a terminal on your system.
Check the Solana CLI
Ensure you have the Solana CLI installed and configured correctly.
Run the sign command
Run the command to sign the off-chain message:
solana sign-offchain-message "TheVault:yourClaimPublicKey" -k /pathToYourVoteKey
In this command:
TheVault:yourClaimPublicKey: ReplaceyourClaimPublicKeywith your actual claim public key.-k /pathToYourVoteKey: Replace/pathToYourVoteKeywith the path to your Solana vote key file, for example~/.config/solana/id.json.
Submit the details
Once you have the signature, submit the following details in a support ticket in The Vault Discord:
- Your vote public key, for example
3Gh8mJQfYvJ3uMjdXhPfF31PwbxC5zXofsHHdgyvG5Gr. - The message used, for example
TheVault:AbcD5Vu2RhsH3KEKy74fPqs38RCiMdm473zJDq6hzhQ. - The signature you received, for example
9XYT6HdQmUkDkhVgr87yGeCh2pAx92tFyzXTUE5u3GTD1Q1WR1AokEpaw7RVtd1wXuMRCiw2QJr72bZcsLK5q3xD.
Example command and breakdown
For example, if your claim public key is AbcD5Vu2RhsH3KEKy74fPqs38RCiMdm473zJDq6hzhQ, and your vote key is stored at ~/.config/solana/id.json, you would run:
solana sign-offchain-message "TheVault:AbcD5Vu2RhsH3KEKy74fPqs38RCiMdm473zJDq6hzhQ" -k ~/.config/solana/id.json
When run, the output should look like this:
9XYT6HdQmUkDkhVgr87yGeCh2pAx92tFyzXTUE5u3GTD1Q1WR1AokEpaw7RVtd1wXuMRCiw2QJr72bZcsLK5q3xD
What each part means
The generated signature is 9XYT6HdQmUkDkhVgr87yGeCh2pAx92tFyzXTUE5u3GTD1Q1WR1AokEpaw7RVtd1wXuMRCiw2QJr72bZcsLK5q3xD. This is the signature generated for your message. It proves ownership of your vote key without needing to sign a blockchain transaction.
Verify the signature
To verify that the signature is valid, another person can run the following command:
solana verify-offchain-signature "TheVault:yourClaimPublicKey" yourSignature --signer yourVotePublicKey
For example, with the values from above:
solana verify-offchain-signature "TheVault:AbcD5Vu2RhsH3KEKy74fPqs38RCiMdm473zJDq6hzhQ" 9XYT6HdQmUkDkhVgr87yGeCh2pAx92tFyzXTUE5u3GTD1Q1WR1AokEpaw7RVtd1wXuMRCiw2QJr72bZcsLK5q3xD --signer 3Gh8mJQfYvJ3uMjdXhPfF31PwbxC5zXofsHHdgyvG5Gr
If the signature is valid, the output will confirm:
Signature is valid
Key points to remember
Keep these points in mind:
- No transactions are made on-chain, ensuring security.
- The signature process verifies ownership of the vote key securely.
- The
-k flagpoints to your private key file, so keep it secure and do not share it. - Always verify the correctness of your details before submitting them.