Skip to content

Operators & Nodes

Manage validator registration, committee membership, and reporting.

Generate validator key files and metadata.

soma validator make-validator-info <HOST_NAME> [COMMISSION_RATE]
ArgumentTypeRequiredDescription
host_namestringYesHostname for the validator
commission_rateu16NoCommission rate in basis points (default from config)

Generates the following files in the current directory:

FileDescription
protocol.keyProtocol keypair
account.keyAccount keypair
network.keyNetwork keypair
worker.keyWorker keypair
validator.infoSigned validator metadata (used with join-committee)
soma validator make-validator-info validator.example.com 200

Request to join the validator committee.

soma validator join-committee <VALIDATOR_INFO_PATH>
ArgumentTypeRequiredDescription
validator-info-pathpathYesPath to validator.info file
soma validator join-committee ./validator.info

Request to leave the validator committee. Takes effect at end of current epoch.

soma validator leave-committee
soma validator leave-committee

List all active and pending validators.

soma validator list

Display validator metadata.

soma validator display-metadata [VALIDATOR_ADDRESS]
ArgumentTypeRequiredDescription
validator-addressSomaAddressNoValidator address (defaults to active address)
soma validator display-metadata
soma validator display-metadata 0xVAL...

Update validator metadata. Changes take effect next epoch.

soma validator update-metadata <SUBCOMMAND> <VALUE>

Available subcommands:

SubcommandValue typeDescription
network-addressaddressUpdate network address
primary-addressaddressUpdate primary address
p2p-addressaddressUpdate P2P address
network-pub-keypathUpdate network public key from file
worker-pub-keypathUpdate worker public key from file
protocol-pub-keypathUpdate protocol public key from file
soma validator update-metadata network-address /dns/validator.example.com/tcp/8080/http
soma validator update-metadata protocol-pub-key ./new-protocol.key

Set validator commission rate. Takes effect next epoch.

soma validator set-commission-rate <COMMISSION_RATE>
ArgumentTypeRequiredDescription
commission-rateu16YesCommission rate in basis points (max 10000)
soma validator set-commission-rate 500

Report a misbehaving validator.

soma validator report-validator <REPORTEE_ADDRESS> [OPTIONS]
ArgumentTypeRequiredDescription
reportee-addressSomaAddressYesAddress of the validator to report
--undo-reportflagNoUndo a previous report
soma validator report-validator 0xVAL...
soma validator report-validator 0xVAL... --undo-report

Report a model (validators only). If 2f+1 validators report a model at an epoch boundary, the model is slashed.

soma validator report-model <MODEL_ID> [OPTIONS]
ArgumentTypeRequiredDescription
model-idObjectIDYesModel object ID to report
--undo-reportflagNoUndo a previous report
soma validator report-model 0xMODEL...
soma validator report-model 0xMODEL... --undo-report

Start nodes and services.

Start a local development network.

soma start localnet [OPTIONS]
ArgumentTypeRequiredDescription
--network.configpathNoPath to network config
--force-regenesisflagNoForce regenesis even if state exists
--fullnode-rpc-portu16NoRPC port for the fullnode (default 9000)
--epoch-duration-msu64NoEpoch duration in milliseconds
--data-ingestion-dirpathNoDirectory for data ingestion
--no-full-nodeflagNoSkip starting a fullnode
--committee-sizeu64NoNumber of validators in the committee
--log-levelstringNoLog level (default info)
--with-faucetstringNoStart faucet at host:port
--no-faucetflagNoDo not start faucet
--no-scoringflagNoDo not start scoring service
--small-modelflagNoUse small model for scoring
soma start localnet
soma start localnet --force-regenesis --epoch-duration-ms 10000 --with-faucet 127.0.0.1:9123

Start a validator node from a config file.

soma start validator --config <PATH>
ArgumentTypeRequiredDescription
-c, --configpathYesPath to validator configuration file
soma start validator --config ./validator-config.yaml

Start a standalone faucet server.

soma start faucet [OPTIONS]
ArgumentTypeRequiredDescription
--portu16NoPort to listen on
--hoststringNoHost to bind to (default 0.0.0.0)
--amountu64NoAmount in shannons per coin
--num-coinsu64NoNumber of coins to dispense per request
--config-dirpathNoPath to SOMA config directory
soma start faucet --port 9123

Start the scoring service.

soma start scoring [OPTIONS]
ArgumentTypeRequiredDescription
--hoststringNoHost to bind to (default 0.0.0.0)
--portu16NoPort to listen on (default 9124)
--data-dirpathNoData directory for scoring state
--small-modelflagNoUse a smaller model for testing
--devicestringNoCompute device: cpu, wgpu, or cuda (default wgpu)
soma start scoring
soma start scoring --device cuda --port 9124

Inspect local network configuration.

soma network [OPTIONS]
ArgumentTypeRequiredDescription
--network.configpathNoPath to network config file
-d, --dump-addressesflagNoDump validator addresses
soma network
soma network --dump-addresses

Bootstrap and initialize a new network.

soma genesis [OPTIONS]
ArgumentTypeRequiredDescription
--from-configpathNoCreate genesis from an existing config
--write-configpathNoWrite configuration to file without building genesis
--working-dirpathNoWorking directory for genesis output
--forceflagNoOverwrite existing genesis state
--epoch-duration-msu64NoEpoch duration in milliseconds
--with-faucetflagNoInclude faucet in genesis
--committee-sizeu64NoNumber of validators
soma genesis --working-dir ./genesis-output --committee-size 4
soma genesis --from-config ./genesis-config.yaml --force

Coordinate a multi-validator genesis ceremony for network launches.

soma genesis ceremony [OPTIONS]

Used to coordinate genesis across multiple validator operators. Each participant runs the ceremony command to contribute their validator information, and the coordinator assembles the final genesis state.

Low-level keystore operations.

Generate a new keypair.

soma keytool generate <KEY_SCHEME> [DERIVATION_PATH] [WORD_LENGTH]
ArgumentTypeRequiredDescription
key-schemestringYesSigning scheme (ed25519, secp256k1, secp256r1)
derivation-pathstringNoBIP-44 derivation path
word-lengthstringNoMnemonic word count
soma keytool generate ed25519

Import a key from a mnemonic or private key.

soma keytool import [--alias <ALIAS>] <INPUT_STRING> <KEY_SCHEME> [DERIVATION_PATH]
ArgumentTypeRequiredDescription
input-stringstringYesMnemonic phrase or private key
key-schemestringYesSigning scheme
--aliasstringNoAlias for the imported key
derivation-pathstringNoBIP-44 derivation path
soma keytool import "word1 word2 ... word12" ed25519 --alias imported-key

Export a private key from the keystore.

soma keytool export --key-identity <IDENTITY>
ArgumentTypeRequiredDescription
--key-identitystringYesAddress or alias of the key to export

List all keys in the keystore.

soma keytool list [OPTIONS]
ArgumentTypeRequiredDescription
--sort-by-aliasflagNoSort output by alias
soma keytool list
Additional keytool subcommands
SubcommandDescription
update-aliasUpdate the alias for a key
decode-or-verify-txDecode or verify a transaction
decode-multi-sigDecode a multi-sig transaction
load-keypairLoad a keypair from a file
multi-sig-addressDerive a multi-sig address
multi-sig-combine-partial-sigCombine partial signatures for multi-sig

Generate shell completion scripts.

Terminal window
soma completions bash > ~/.local/share/bash-completion/completions/soma