This guide covers common operational tasks for active Sui validators, including metadata updates, commission changes, and using the validator CLI tool.
Validator metadata is stored on-chain and visible to delegators. Keep it current and professional.
Check your validator’s current metadata:
# Display your validator metadata
sui validator display-metadata
# Display another validator's metadata
sui validator display-metadata <validator-address>
Output includes:
- Name and description
- Image and project URLs
- Network addresses
- Public keys
- Gas price and commission
- Staking pool info
Some metadata changes take effect immediately, others at the next epoch.
Immediate updates:
- Name
- Description
- Image URL
- Project URL
Next-epoch updates:
- Network addresses
- Public keys (protocol, network, worker)
- Gas price
Update Name
sui validator update-metadata --name "New Validator Name"
# Or using Sui client directly:
sui client call --package 0x3 --module sui_system \
--function update_validator_name \
--args 0x5 "New Validator Name" \
--gas-budget 10000
Update Description
sui validator update-metadata --description "Updated validator description"
Update Image URL
sui validator update-metadata --image-url "https://example.com/new-logo.png"
Update Project URL
sui validator update-metadata --project-url "https://new-website.com"
Update Network Address
sui validator update-metadata \
--network-address "/ip4/192.168.1.1/tcp/8080/http"
Network address updates take effect at the next epoch. Ensure your node is accessible at the new address before the epoch boundary.
Update P2P Address
# Update p2p address
sui client call --package 0x3 --module sui_system \
--function update_validator_next_epoch_p2p_address \
--args 0x5 "[4, 192, 168, 1, 1]" \
--gas-budget 10000
The address must be provided as a byte array representing the multiaddr.
Update Protocol Public Key
When rotating the protocol key:
sui validator update-metadata \
--protocol-pubkey <new-bls-pubkey> \
--proof-of-possession <pop>
Generate new PoP:
# Serialize payload for PoP
sui validator serialize-payload-pop \
--account-address <validator-address> \
--protocol-public-key <new-bls-pubkey>
# Sign the payload with your BLS key offline
# Then use the signature as proof-of-possession
Changing the protocol key requires generating a new Proof of Possession (PoP). Keep both old and new keys until the epoch changes.
Gas Price Management
Viewing Current Gas Price
# View your gas price quote
sui validator display-metadata | grep "gas_price"
# View reference gas price (network-wide)
curl -X POST http://localhost:9000 \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "suix_getReferenceGasPrice",
"params": []
}'
Updating Gas Price
As a validator with Operation Cap:
# Update gas price quote
sui validator update-gas-price 1000
As an operation cap holder (delegated):
sui validator update-gas-price \
--operation-cap-id <cap-object-id> \
1000
Gas price guidelines:
- Monitor network conditions
- Check other validators’ quotes
- Mainnet typical: 750-1,000 MIST
- Update during low-activity periods
Commission Management
Checking Current Commission
sui validator display-metadata | grep "commission_rate"
Commission is displayed in basis points (200 = 2%).
Updating Commission Rate
For active validators:
# Set commission rate (200 basis points = 2%)
sui validator update-metadata --commission-rate 200
# Or using client directly:
sui client call --package 0x3 --module sui_system \
--function request_set_commission_rate \
--args 0x5 200
For validator candidates:
sui client call --package 0x3 --module sui_system \
--function set_candidate_validator_commission_rate \
--args 0x5 200
Best practices:
- Communicate changes to delegators in advance
- Consider market rates (typically 2-10%)
- Changes take effect next epoch
- Don’t change too frequently
Peer Reporting
Validators can report peers for malicious behavior.
Reporting a Validator
# Report validator for misbehavior
sui validator report-validator <reportee-address>
# With operation cap:
sui validator report-validator \
--operation-cap-id <cap-object-id> \
<reportee-address>
Undoing a Report
# Undo previous report
sui validator report-validator \
--undo-report true \
<reportee-address>
Reporting guidelines:
- Only report for legitimate protocol violations
- Document reason for report
- If 2f+1 validators report, target is slashed
- False reporting can damage reputation
Operation Cap Management
What is Operation Cap?
Operation Cap allows delegation of validator operations without exposing the main validator account key.
Operations enabled:
- Update gas price
- Report validators
- Undo validator reports
Viewing Operation Cap
# List objects owned by validator account
sui client objects
# Look for "UnverifiedValidatorOperationCap"
Or check on explorer using validator address.
Transferring Operation Cap
Delegate operations to another account:
# Transfer cap to operator
sui client transfer \
--object-id <operation-cap-id> \
--to <operator-address>
Rotating Operation Cap
Invalidate current cap and create new one:
sui client call --package 0x3 --module sui_system \
--function rotate_operation_cap \
--args 0x5 \
--gas-budget 10000
The new cap is automatically transferred to the validator account.
Use cases for rotation:
- Compromised operator account
- Changing operational team
- Security policy updates
Committee Management
Joining the Committee
After becoming a candidate and accumulating minimum stake:
# Request to join active validator set
sui validator join-committee
You’ll become active at the next epoch boundary.
Leaving the Committee
To voluntarily leave the validator set:
# Request removal from active set
sui validator leave-committee
Process:
- Submit leave request
- Remain active until next epoch
- Removed at epoch boundary
- Staking pool becomes inactive
- Delegators can withdraw
When to leave:
- Extended maintenance (>24 hours)
- Hardware migration
- Voluntary exit from validation
Leaving the committee makes your staking pool inactive. Delegators cannot stake or earn rewards until you rejoin.
Becoming a Validator
For new validators joining the network.
Step 1: Generate Validator Info
sui validator make-validator-info \
"Validator Name" \
"Professional validator description" \
"https://example.com/validator-logo.png" \
"https://validator-website.com" \
"validator.example.com" \
1000 # gas price
This generates:
validator.info file with metadata
- Copies keys from your sui.keystore
validator.info contents:
- Name, description, URLs
- Public keys (protocol, network, worker, account)
- Network addresses
- Initial gas price
- Proof of possession
Step 2: Become Candidate
sui validator become-candidate validator.info
This submits on-chain transaction to register as a validator candidate.
Step 3: Accumulate Stake
As a candidate:
- Start your fullnode to sync with the network
- Accept self-stake and delegations
- Promote your validator to attract delegators
- Reach minimum stake requirement
Step 4: Join Committee
Once minimum stake reached:
sui validator join-committee
You’ll join the active set at the next epoch.
Offline Signing
For enhanced security, sign validator transactions offline.
Supported Operations
become-candidate
join-committee
leave-committee
update-metadata
update-gas-price
report-validator
Offline Signing Process
Generate unsigned transaction
# Add --serialize-unsigned-transaction flag
sui validator update-gas-price 1000 --serialize-unsigned-transaction
# Output:
# Serialized transaction for signing: <BASE64_STRING>
Sign on offline machine
# Transfer base64 string to offline machine
# Sign with sui keytool
sui keytool sign \
--address <validator-address> \
--data <BASE64_STRING>
# Output: Signature and public key
Execute signed transaction
# On online machine
sui client execute-signed-tx \
--tx-bytes <BASE64_STRING> \
--signatures <SIGNATURE>
Multisig Operations
For multisig validator accounts:
# Set active address to multisig address
sui client switch --address <MULTISIG_ADDRESS>
# Then execute commands normally
sui validator update-gas-price 1000
Monitoring Validator Status
On-Chain Status
# View full validator metadata
sui validator display-metadata
# Check if in active set
sui client call --package 0x3 --module sui_system \
--function get_validators \
--args 0x5 \
| grep <your-address>
Node Health
# Check node metrics
curl -s http://localhost:9184/metrics | grep -E \
"highest_synced_checkpoint|connected_peers|current_round"
# View recent logs
journalctl -u sui-node --since "1 hour ago" -p warning
Track validator performance:
# Consensus participation
curl -s http://localhost:9184/metrics | grep consensus_committed_subdags
# Certificate processing
curl -s http://localhost:9184/metrics | grep total_certificates
# Transaction throughput
curl -s http://localhost:9184/metrics | grep total_transaction_effects
Common Operational Tasks
Daily Checks
#!/bin/bash
# daily-validator-check.sh
echo "=== Validator Health Check ==="
echo
# Check service status
echo "Service Status:"
systemctl is-active sui-node
echo
# Check sync status
echo "Sync Status:"
curl -s http://localhost:9184/metrics | grep highest_synced_checkpoint
echo
# Check peer count
echo "Peer Count:"
curl -s http://localhost:9184/metrics | grep connected_peers
echo
# Check for errors
echo "Recent Errors:"
journalctl -u sui-node --since "1 day ago" -p err | tail -5
echo
# Check disk usage
echo "Disk Usage:"
df -h /opt/sui/db | tail -1
Weekly Tasks
- Review performance metrics
- Check for software updates
- Verify backup completion
- Review validator ranking
- Analyze delegator changes
Monthly Tasks
- Review commission rate competitiveness
- Analyze reward trends
- Capacity planning review
- Update validator website/documentation
- Community engagement
Best Practices
Operational Excellence
- Maintain high uptime: >99.5% availability
- Monitor actively: Set up alerts for critical issues
- Update promptly: Apply updates within 24-48 hours
- Communicate clearly: Keep delegators informed
- Document changes: Maintain operational log
- Test before production: Use testnet for new procedures
Security
- Protect keys: Use HSM or secure offline storage
- Use Operation Cap: Separate operational and financial keys
- Regular audits: Review access logs and configurations
- Principle of least privilege: Limit access to essential personnel
- Incident response plan: Document procedures for compromises
Delegator Relations
- Transparency: Publish regular performance reports
- Communication: Announce maintenance and changes
- Competitive commission: Research market rates
- Professional presence: Maintain website and social media
- Support: Respond to delegator questions
Troubleshooting
For operational issues, see:
Resources
Documentation