Skip to Content
svmgovFor ValidatorsOverview

For Validators

The svmgov CLI provides validators with commands to create and manage governance proposals, support other validators’ proposals, and cast stake-weighted votes.

New to governance terms? Read Terminology first, then continue with command guides.

Requirements

  • Solana validator identity keypair
  • Minimum 100,000 SOL staked to create a proposal
  • Any active stake to support a proposal or vote
  • Access to a Solana RPC endpoint
  • Operator API URL for fetching Merkle proofs. The CLI defaults to the main NCN router: https://ncn-governance.solana.com.

Quick Setup

# Clone the repo and check out the latest release tag git clone https://github.com/solana-foundation/solana-governance.git cd solana-governance git checkout "$(git describe --tags --abbrev=0 --match 'v*')" # Build and install svmgov cd svmgov/cli && ./install.sh # Run interactive setup svmgov init # Optional: override the default operator API URL svmgov config set operator-api-url https://your-operator-api.example.com

Release tags are named v<version> (for example v0.4.0-40100) and match the svmgov crate version. The git checkout above resolves the newest one for you, leaving you on a detached HEAD — expected, and fine for building. To build a specific version instead, pick its tag from Releases and check that out by name. main is the development branch and can sit ahead of the latest release, so prefer a tag unless you need an unreleased change.

Available Commands

Global Arguments

All validator commands support:

OptionShortEnv varDescription
--keypair <PATH>-kSVMGOV_KEYPath to validator identity keypair JSON
--rpc-url <URL>-rSVMGOV_RPCSolana RPC endpoint
--network <NETWORK>-nNetwork for verifier/proof fetching

Resolution order: explicit flags → environment variables → config file → built-in defaults

Configuration File

~/.svmgov/config.toml — set once via svmgov init:

user_type = "Validator" identity_keypair_path = "/path/to/validator.json" network = "mainnet" rpc_url = "https://api.mainnet-beta.solana.com" operator_api_url = "https://ncn-governance.solana.com"

The operator_api_url defaults to the main NCN router, https://ncn-governance.solana.com, for commands that fetch Merkle proofs (support-proposal, cast-vote, modify-vote). Override it with svmgov config set operator-api-url <URL> only if you need a different verifier/router.

Last updated on