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

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 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