Skip to Content
ReferenceCLI Arguments

CLI Arguments Reference

Complete reference for all svmgov CLI command-line arguments and configuration.

Global Arguments (All Commands)

OptionShortEnv VarDescription
--keypair <PATH>-kSVMGOV_KEYPath to signer keypair JSON
--rpc-url <URL>-rSVMGOV_RPCSolana RPC endpoint
--network <NETWORK>-nNetwork for verifier/proof fetching; overrides config
--squads <PUBKEY>Route supported admin transactions through this Squads multisig
--squads-vault-index <U8>Squads vault index; defaults to 0
--squads-memo <TEXT>Optional memo for the Squads vault transaction
--squads-program-id <PUBKEY>Override the canonical Squads program ID

Resolution order: explicit flags → env vars → config file → built-in defaults

Configuration File

Path: ~/.svmgov/config.toml

user_type = "Validator" # or "Staker" 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 default operator_api_url is the main NCN router.

Config Commands

svmgov config show # Show entire config svmgov config get <key> # Get one value svmgov config set <key> <value> # Set one value

Settable Keys

KeyDescription
networkDefault network (mainnet, testnet, devnet)
rpc-urlDefault Solana RPC URL
operator-api-urlVerifier service or router URL for proof fetching. Defaults to the main NCN router, https://ncn-governance.solana.com; override only if you run a different verifier/router.
identity-keypairValidator identity keypair path
staker-keypairStaker keypair path

Basis Points

All vote allocations use basis points (bp):

Basis PointsPercentage
10,000100%
7,00070%
5,00050%
1,00010%
10.01%

When voting, for_votes + against_votes + abstain_votes must equal exactly 10,000.

Validator Command Arguments

create-proposal

ArgumentTypeRequiredDefaultDescription
--titleStringYesProposal title; byte length must be ≤ configured max_title_length and ≤ 200
--descriptionStringYesGitHub URL (https://github.com/...); byte length must be ≤ configured max_description_length and ≤ 500
--networkStringNoConfig valueNetwork for proof fetching
--seedu64NoRandomPDA derivation seed

support-proposal

ArgumentTypeRequiredDescription
--proposal-idStringYesProposal PDA (base58)
--networkStringNoNetwork override

cast-vote / modify-vote

ArgumentTypeRequiredDescription
--proposal-idStringYesProposal PDA (base58)
--for-votesu64YesBasis points For (0–10,000)
--against-votesu64YesBasis points Against (0–10,000)
--abstain-votesu64YesBasis points Abstain (0–10,000)
--networkStringNoNetwork override
--close-timestampi64No(cast-vote only) Unix timestamp after which the MetaMerkleProof PDA may be closed permissionlessly. Defaults to the proposal’s vote-expiry time

finalize-proposal

ArgumentTypeRequiredDescription
--proposal-idStringYesProposal PDA (base58)

list-proposals

ArgumentTypeRequiredDefaultDescription
--statusStringNoFilter: active, support, finalized
--limitusizeNoMax results
--jsonflagNofalseOutput JSON

proposal

ArgumentTypeRequiredDescription
<PROPOSAL_ID>StringYesProposal PDA (base58, positional)

Staker Command Arguments

cast-vote-override / modify-vote-override

ArgumentTypeRequiredDescription
--proposal-idStringYesProposal PDA (base58)
--for-votesu64YesBasis points For (0–10,000)
--against-votesu64YesBasis points Against (0–10,000)
--abstain-votesu64YesBasis points Abstain (0–10,000)
--stake-accountStringYesStake account pubkey (base58)
--vote-accountStringYesValidator vote account pubkey (base58)
--networkStringNoNetwork override
--staker-keypairStringYesStaker keypair path
--close-timestampi64No(cast-vote-override only) Unix timestamp after which the MetaMerkleProof PDA may be closed permissionlessly. Defaults to the proposal’s vote-expiry time

Admin Command Arguments

init-global-config

ArgumentTypeRequiredDescription
--max-title-lengthu16YesMaximum proposal title bytes
--max-description-lengthu16YesMaximum proposal description bytes
--max-support-epochsu64YesMaximum support phase epochs
--min-proposal-stake-lamportsu64YesMinimum stake required to create a proposal
--cluster-support-pct-min-bpsu64YesSupport threshold in basis points
--discussion-epochsu64YesDiscussion phase epochs
--voting-epochsu64YesVoting phase epochs
--snapshot-epoch-extensionu64YesEpoch extension used when computing the snapshot slot
--snapshot-slot-offseti64YesSlot offset from the target epoch start slot

update-global-config

Same fields as init-global-config, but every field is optional and only supplied values are changed.

nominate-admin / accept-admin

CommandArgumentRequiredDescription
nominate-admin--new-admin <PUBKEY>YesPending admin that must later accept
accept-adminMust be signed by the pending admin
Last updated on