Node Consensus Networks (NCNs) coordinate validation services between operators and vaults in the Jito (Re)staking ecosystem. NCNs manage which operators can participate in validation and which vaults can delegate stake to the network.
# Generate keypair for your NCN
solana-keygen new --outfile ./my-ncn-keypair.json
# Initialize the NCN
jito-restaking-cli restaking ncn initialize \
--path-to-base-keypair ./my-ncn-keypair.json
# Get NCN details
jito-restaking-cli restaking ncn get <NCN_PUBKEY>
# List all NCNs
jito-restaking-cli restaking ncn list
# JSON output for programmatic access
jito-restaking-cli --print-json restaking ncn get <NCN_PUBKEY>
Operators must go through a two-step process to join an NCN:
# Step 1: Initialize the relationship
jito-restaking-cli restaking ncn initialize-ncn-operator-state \
<NCN_PUBKEY> <OPERATOR_PUBKEY>
# Step 2: Start the warmup period
jito-restaking-cli restaking ncn ncn-warmup-operator \
<NCN_PUBKEY> <OPERATOR_PUBKEY>
# View all operators in your NCN
jito-restaking-cli restaking ncn list-ncn-operator-state <NCN_PUBKEY>
# Check operator status and warmup progress
jito-restaking-cli --print-json restaking ncn list-ncn-operator-state <NCN_PUBKEY>
# Initiate operator removal (cooldown period)
jito-restaking-cli restaking ncn ncn-cooldown-operator \
<NCN_PUBKEY> <OPERATOR_PUBKEY>
Vaults provide the staked tokens that operators use for validation:
# Step 1: Create the vault ticket
jito-restaking-cli restaking ncn initialize-ncn-vault-ticket \
<NCN_PUBKEY> <VAULT_PUBKEY>
# Step 2: Activate the connection
jito-restaking-cli restaking ncn warmup-ncn-vault-ticket \
<NCN_PUBKEY> <VAULT_PUBKEY>
For the NCN:
For Vaults:
# View all connected vaults
jito-restaking-cli restaking ncn list-ncn-vault-ticket <NCN_PUBKEY>
# Check vault connection status
jito-restaking-cli --print-json restaking ncn list-ncn-vault-ticket <NCN_PUBKEY>
# Disconnect a vault (cooldown period)
jito-restaking-cli restaking ncn cooldown-ncn-vault-ticket \
<NCN_PUBKEY> <VAULT_PUBKEY>
NCNs can manage token delegation:
# Create delegated token account
jito-restaking-cli restaking ncn ncn-delegate-token-account \
<NCN_PUBKEY> \
<DELEGATE_PUBKEY> \
<TOKEN_MINT> \
--should-create-token-account
Common delegation scenarios:
Distribute administrative responsibilities across your team:
# Set operator admin (manages operator relationships)
jito-restaking-cli restaking ncn ncn-set-secondary-admin \
--set-operator-admin \
<NCN_PUBKEY> <OPERATOR_ADMIN_PUBKEY>
# Set vault admin (manages vault connections)
jito-restaking-cli restaking ncn ncn-set-secondary-admin \
--set-vault-admin \
<NCN_PUBKEY> <VAULT_ADMIN_PUBKEY>
# Set multiple roles for one admin
jito-restaking-cli restaking ncn ncn-set-secondary-admin \
--set-slasher-admin \
--set-delegate-admin \
<NCN_PUBKEY> <EMERGENCY_ADMIN_PUBKEY>
# Transfer primary admin rights
jito-restaking-cli restaking ncn ncn-set-admin \
--old-admin-keypair ./current-admin.json \
--new-admin-keypair ./new-admin.json \
<NCN_PUBKEY>
When to transfer ownership:
Distribute control across multiple admins:
# Operations team manages day-to-day operations
jito-restaking-cli restaking ncn ncn-set-secondary-admin \
--set-operator-admin \
--set-vault-admin \
<NCN_PUBKEY> <OPERATIONS_TEAM>
# Security team handles slashing and emergencies
jito-restaking-cli restaking ncn ncn-set-secondary-admin \
--set-slasher-admin \
<NCN_PUBKEY> <SECURITY_TEAM>
# Community representatives manage metadata and governance
jito-restaking-cli restaking ncn ncn-set-secondary-admin \
--set-metadata-admin \
--set-weight-table-admin \
<NCN_PUBKEY> <COMMUNITY_REPRESENTATIVE>
Task | Command |
---|---|
Create NCN | restaking ncn initialize --path-to-base-keypair <KEYPAIR> |
View NCN | restaking ncn get <NCN_PUBKEY> |
Add operator | initialize-ncn-operator-state → ncn-warmup-operator |
Add vault | initialize-ncn-vault-ticket → warmup-ncn-vault-ticket |
Set admin role | restaking ncn ncn-set-secondary-admin --set-<ROLE>-admin |
Transfer ownership | restaking ncn ncn-set-admin --old-admin-keypair --new-admin-keypair |
List operators | restaking ncn list-ncn-operator-state <NCN_PUBKEY> |
List vaults | restaking ncn list-ncn-vault-ticket <NCN_PUBKEY> |