๐Ÿ”Signing A Message

Instructions for Signing an Off-Chain Message with 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.

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.

Steps to Follow

  1. Open a terminal on your system. Ensure you have the Solana CLI installed and configured correctly.

  2. Run the command to sign the off-chain message: solana sign-offchain-message "TheVault:yourClaimPublicKey" -k /pathToYourVoteKey

  • TheVault:yourClaimPublicKey โ†’ Replace yourClaimPublicKey with your actual claim public key.

  • -k /pathToYourVoteKey โ†’ Replace /pathToYourVoteKey with the path to your Solana vote key file (e.g., ~/.config/solana/id.json).


Example Command and Breakdown

For example, if the user's claim public key is AbcD5Vu2RhsH3KEKy74fPqs38RCiMdm473zJDq6hzhQ, and their vote key is stored at ~/.config/solana/id.json, they 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

  1. The first line (outputted string): 9XYT6HdQmUkDkhVgr87yGeCh2pAx92tFyzXTUE5u3GTD1Q1WR1AokEpaw7RVtd1wXuMRCiw2QJr72bZcsLK5q3xD

  • This is the signature generated for your message. It proves ownership of your vote key without needing to sign a blockchain transaction.

  1. The remaining lines:

  • General informational text provided by the platform.


What to Do Next

Once you have the signature, you need to submit the following details:

  • Your vote public key (e.g., AbcD5Vu2RhsH3KEKy74fPqs38RCiMdm473zJDq6hzhQ)

  • The message used (e.g., TheVault:AbcD5Vu2RhsH3KEKy74fPqs38RCiMdm473zJDq6hzhQ)

  • The signature you received (e.g., 9XYT6HdQmUkDkhVgr87yGeCh2pAx92tFyzXTUE5u3GTD1Q1WR1AokEpaw7RVtd1wXuMRCiw2QJr72bZcsLK5q3xD)


Verifying 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

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

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


By following these steps, users can easily sign messages off-chain and validate their identities securely without needing to broadcast transactions.

Last updated