⌨️ 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
The command returns a signature. The following is an illustrative placeholder, not a valid signature for the example keys:
9XYT6HdQmUkDkhVgr87yGeCh2pAx92tFyzXTUE5u3GTD1Q1WR1AokEpaw7RVtd1wXuMRCiw2QJr72bZcsLK5q3xD
What Each Part Means
The signature shown above is an illustrative placeholder. Your command returns a different signature for your actual message and keypair; submit that real output. It proves control of the signing key without sending an on-chain 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
Replace every placeholder with the actual values from the signing command. The example below demonstrates syntax only:
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.