Skip to content

Keysplit Command

The keysplit command is used to split validator keys for distributed validation on the SSV network.

anchor keysplit <SUBCOMMAND> [OPTIONS]

Where <SUBCOMMAND> is one of:

  • manual - Split keys with manually provided operator data
  • onchain - Split keys using operator data from the blockchain

Both subcommands share these Options

OptionDescriptionDefault
--keystore-path <PATH>Path to validator keystore fileRequired
--password <PASSWORD>Password for the validator keystoreRequired
--owner <ADDRESS>ETH address that owns the validatorRequired
--output-path <PATH>Path for output fileRequired
--operators <IDS>Comma-separated list of operator IDs (must be 4, 7, 10, or 13)Required
--helpDisplay help information

Manual Keysplit Subcommand

anchor keysplit manual [OPTIONS]

Additional Options:

OptionDescriptionDefault
--nonce <NONCE>Nonce for the owner addressRequired
--public-keys <KEYS>Comma-separated RSA public keys for operatorsRequired

Onchain Keysplit Subcommand

anchor keysplit onchain [OPTIONS]

Additional Options:

OptionDescriptionDefault
--rpc <ENDPOINT>RPC endpoint to access L1 dataRequired

Examples

Manual key splitting

anchor keysplit manual \
  --keystore-path /path/to/validator_keystore.json \
  --password "your_keystore_password" \
  --owner 0x123abc... \
  --operators 1,2,3,4 \
  --output-path /path/to/output.json \
  --nonce 0 \
  --public-keys key1,key2,key3,key4

Onchain key splitting

anchor keysplit onchain \
  --keystore-path /path/to/validator_keystore.json \
  --password "your_keystore_password" \
  --owner 0x123abc... \
  --operators 1,2,3,4 \
  --output-path /path/to/output.json \
  --rpc https://eth-mainnet.provider.com \
  --network mainnet

These commands will generate a json file to be uploaded to the SSV network webapp when registering a validator.