Registering a Validator on Sei
Prerequisites
Before you register a validator, ensure that you have completed the following steps:
- Install the
seid
CLI: Follow the installation guide to set up theseid
command-line interface. - Set Up a Full Node: Ensure your full node is fully synced with the network. Refer to the full node setup guide.
Generate a Validator Key
Generate a new keypair for your validator:
seid keys add <name> [flags]
Flags:
--account uint32 Account number for HD derivation
--algo string Key signing algorithm to generate keys for (default "secp256k1")
--coin-type uint32 coin type number for HD derivation (default 118)
--dry-run Perform action, but don't add key to local keystore
--hd-path string Manual HD Path derivation (overrides BIP44 config)
-h, --help help for add
--index uint32 Address index number for HD derivation
-i, --interactive Interactively prompt user for BIP39 passphrase and mnemonic
--ledger Store a local reference to a private key on a Ledger device
--multisig strings List of key names stored in keyring to construct a public legacy multisig key
--multisig-threshold int K out of N required signatures. For use in conjunction with --multisig (default 1)
--no-backup Don't print out seed phrase (if others are watching the terminal)
--nosort Keys passed to --multisig are taken in the order they're supplied
--pubkey string Parse a public key in JSON format and saves key info to <name> file.
--recover Provide seed phrase to recover existing key instead of creating
Save the generated mnemonic phrase securely as it will be used to recover your keypair.
Create a Validator
Once your full node is synced, create a validator using the following command:
seid tx staking create-validator [flags]
Flags:
-a, --account-number uint The account number of the signing account (offline mode only)
--amount string Amount of coins to bond
-b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync")
--commission-max-change-rate string The maximum commission change rate percentage (per day)
--commission-max-rate string The maximum commission rate percentage
--commission-rate string The initial commission rate percentage
--details string The validator's (optional) details
--dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible)
--fee-account string Fee account pays fees for the transaction instead of deducting from the signer
--fees string Fees to pay along with transaction; eg: 10uatom
--from string Name or address of private key with which to sign
--gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically (default 200000)
--gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1)
--gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom)
--generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name)
-h, --help help for create-validator
--identity string The optional identity signature (ex. UPort or Keybase)
--ip string The node's public IP. It takes effect only when used in combination with --generate-only
--keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) (default "os")
--keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used
--ledger Use a connected Ledger device
--min-self-delegation string The minimum self delegation required on the validator
--moniker string The validator's name
--node string <host>:<port> to tendermint rpc interface for this chain (default "tcp://localhost:26657")
--node-id string The node's ID
--note string Note to add a description to the transaction (previously --memo)
--offline Offline mode (does not allow any online functionality
-o, --output string Output format (text|json) (default "json")
--p2p-port string The node's public port. It takes effect only when used in combination with --generate-only
--pubkey string The validator's Protobuf JSON encoded public key
--security-contact string The validator's (optional) security contact email
-s, --sequence uint The sequence number of the signing account (offline mode only)
--sign-mode string Choose sign mode (direct|amino-json), this is an advanced feature
--timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height
--website string The validator's (optional) website
-y, --yes Skip tx broadcasting prompt confirmation
Verify Your Validator
To verify your validator, use the following command:
seid query staking validator [validator-addr] [flags]
Check if Your Validator is in the Active Set
seid query tendermint-validator-set | grep "$(seid tendermint show-validator | jq -r .key)"
This command will display information about your validator, including its status and voting power.
Managing Your Validator
Edit Validator
You can edit your validator’s details using:
seid tx staking edit-validator [flags]
Flags
-a, --account-number uint The account number of the signing account (offline mode only)
-b, --broadcast-mode string Transaction broadcasting mode (sync|async|block) (default "sync")
--commission-rate string The new commission rate percentage
--details string The validator's (optional) details (default "[do-not-modify]")
--dry-run ignore the --gas flag and perform a simulation of a transaction, but don't broadcast it (when enabled, the local Keybase is not accessible)
--fee-account string Fee account pays fees for the transaction instead of deducting from the signer
--fees string Fees to pay along with transaction; eg: 10uatom
--from string Name or address of private key with which to sign
--gas string gas limit to set per-transaction; set to "auto" to calculate sufficient gas automatically (default 200000)
--gas-adjustment float adjustment factor to be multiplied against the estimate returned by the tx simulation; if the gas limit is set manually this flag is ignored (default 1)
--gas-prices string Gas prices in decimal format to determine the transaction fee (e.g. 0.1uatom)
--generate-only Build an unsigned transaction and write it to STDOUT (when enabled, the local Keybase only accessed when providing a key name)
-h, --help help for edit-validator
--identity string The (optional) identity signature (ex. UPort or Keybase) (default "[do-not-modify]")
--keyring-backend string Select keyring's backend (os|file|kwallet|pass|test|memory) (default "os")
--keyring-dir string The client Keyring directory; if omitted, the default 'home' directory will be used
--ledger Use a connected Ledger device
--min-self-delegation string The minimum self delegation required on the validator
--new-moniker string The validator's name (default "[do-not-modify]")
--node string <host>:<port> to tendermint rpc interface for this chain (default "tcp://localhost:26657")
--note string Note to add a description to the transaction (previously --memo)
--offline Offline mode (does not allow any online functionality
-o, --output string Output format (text|json) (default "json")
--security-contact string The validator's (optional) security contact email (default "[do-not-modify]")
-s, --sequence uint The sequence number of the signing account (offline mode only)
--sign-mode string Choose sign mode (direct|amino-json), this is an advanced feature
--timeout-height uint Set a block timeout height to prevent the tx from being committed past a certain height
--website string The validator's (optional) website (default "[do-not-modify]")
-y, --yes Skip tx broadcasting prompt confirmation