Connect validator to X1 Mainnet

Step-by-step guide to connect your validator and vote account to the X1 Mainnet using CLI and hardware wallet.

Step 1 — Switch RPC to X1 Mainnet

Set your Solana CLI to use the X1 Mainnet endpoint:

solana config set --url https://rpc.mainnet.x1.xyz

Step 2 — Verify Validator Airdrop

Check that your id.json or hardware wallet public key has received the validator airdrop:

solana balance <PUBKEY>

Your balance should be greater than 0.


Step 3 — Fund Local Keypairs

Send 1 XNT (or a small amount) to both:

  • id.json — used to manage startup of the validator

  • identity.json — your validator identity key

Do this using Backpack Wallet.

To switch Backpack to Mainnet RPC: https://docs.x1.xyz/build-on-x1/resources

To import your hardware wallet in Backpack: Wallets → Add new Solana walletHardware wallet


Step 4 — Configure Solana CLI Identity

Make sure you’re operating with the correct signer:

Check balances:


Step 5 — Go to Your Keypair Directory

Navigate to where your keypair files are stored:


6. Create a Vote Account

Create a vote account for vote.json, and assign your hardware wallet (Ledger) as the withdraw authority.


6.1 Get Your Ledger’s Public Key (on Your Local Machine)

On your local computer, plug in your Ledger, open the Solana app, and run:

Copy the output — this is your Ledger withdraw authority address:

💡 You only need the public key from your Ledger. The Ledger does not need to be connected to your validator server.


6.2 Create the Vote Account (on Your Validator Server)

Create a vote account for vote.json, using your identity.json keypair as the signer, and set your Ledger pubkey as the withdraw authority:

  • identity.json → signs the vote account creation and becomes the validator identity

  • <LEDGER_PUBKEY> → becomes the withdraw authority

  • --commission 10 → your validator keeps 10%, and delegators receive 90%


6.3 Verify the Vote Account

Confirm it was successfully created:

You should see details such as:

  • Identity pubkey

  • Withdraw authority

  • Commission %

  • Epoch credits and status


Step 7 — Create a Stake Account

Create a stake account and deposit a small amount (e.g. 0.1 XNT):

This initializes stake.json using funds from your id.json.


Step 8 — Secure Stake Account with Hardware Wallet

Authorize your Ledger hardware wallet as the withdraw authority:

Now only your hardware wallet can withdraw or modify the stake account.


Step 9 — Fund Your Stake Account

Send more XNT to your stake account from your hardware wallet using Backpack.

In Backpack:

  • From: your hardware wallet pubkey

  • To: your stake.json pubkey

  • Amount: the amount you want to stake to your validator

Verify balance:


Step 10 — Delegate Stake

Link your stake account to your vote account:

This command delegates your staked XNT to your validator’s vote account.


Step 11 — Check Stake Account Status

View your stake account details:

Example output:

The stake will become active starting from the listed epoch once the validator is participating in consensus.


Step 12 — Reset Local Ledger

Before switching to mainnet, clear your old testnet ledger to avoid conflicts:


Step 13 — Update Validator Startup Script for Mainnet

Open your validator startup script:

Replace its contents with:

Save and exit the editor.


Step 14 — Start the Validator

From your home directory:


Step 15 — Monitor Your Validator

Check validator logs:

Check catch-up status:

Monitor validator performance:

Last updated