The Vault
⚡ Power Users

⌨️ How to Sign a Message with the CLI

Instructions for signing an off-chain message with the Solana CLI.

View as Markdown

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.

Banner: A developer at a cream laptop with a blank charcoal screen uses a sculptural orange key to stamp a blank message card; careful cryptographic signing.

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:

  1. TheVault:yourClaimPublicKey: Replace yourClaimPublicKey with your actual claim public key.
  2. -k /pathToYourVoteKey: Replace /pathToYourVoteKey with 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:

  1. Your vote public key, for example 3Gh8mJQfYvJ3uMjdXhPfF31PwbxC5zXofsHHdgyvG5Gr.
  2. The message used, for example TheVault:AbcD5Vu2RhsH3KEKy74fPqs38RCiMdm473zJDq6hzhQ.
  3. 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 flag points to your private key file, so keep it secure and do not share it.
  • Always verify the correctness of your details before submitting them.

On this page