# Signing A Message with CLI

#### 🔐 Verifying Your Identity Off-Chain

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.

***

#### 👛 Choosing 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.

***

#### 🧭 Steps to Follow

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

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

3. 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 (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

* Generated Signature:
  * `9XYT6HdQmUkDkhVgr87yGeCh2pAx92tFyzXTUE5u3GTD1Q1WR1AokEpaw7RVtd1wXuMRCiw2QJr72bZcsLK5q3xD`
  * This is the signature generated for your message. It proves ownership of your vote key without needing to sign a blockchain transaction.

***

#### 📤 What to Do Next

Once you have the signature, 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 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.thevault.finance/power-users/signing-a-message-with-cli.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
