Cascade
Supernodes

Register Supernode

Fund the Supernode account, delegate stake, and register on-chain.

Prerequisites

Before registering, make sure:

  • Your Supernode is running (sn-manager service is active), see Node Setup
  • You have the Supernode account address (SN_ACCOUNT - lumera1...)
  • You have your validator operator address (VALOPER - lumeravaloper1...)
  • Your validator is bonded and synced

Step 1: Fund the Supernode Account

The Supernode account needs LUME tokens to delegate to your validator. There are several ways to fund it.

Find your Supernode account address

If you did not note the SN_ACCOUNT address when you ran sn-manager init, you can retrieve it at any time from the Supernode server in one of two ways.

Option 1: Read it from the SuperNode config file (no lumerad call needed):

cat ~/.supernode/config.yml | grep -i -A1 -E 'address|key'

You will see output similar to:

    key_name: supernode
    identity: lumera1hl2tutczuuu6ngap57r79mzv9jy8n26xcu7tsx
--
keyring:
    backend: file
    dir: keys
    passphrase_env: SUPERNODE_PASSPHRASE

The value next to identity: (starts with lumera1...) is your SN_ACCOUNT.

Option 2: Use the lumerad CLI (installed in Node Setup, Step 8):

# Print just the bech32 address of the supernode key
lumerad keys show supernode -a --keyring-backend file --keyring-dir ~/.supernode/keys
 
# Or list all keys in the Supernode keyring
lumerad keys list --keyring-backend file --keyring-dir ~/.supernode/keys

You will be prompted for the keyring passphrase. The address starts with lumera1... — this is your SN_ACCOUNT, and it is what you pass to every command below.

Every lumerad command you run on the Supernode host must include both --keyring-backend file and --keyring-dir ~/.supernode/keys. The Supernode stores its keyring at ~/.supernode/keys/, not in lumerad's default ~/.lumera/keyring-os/ location.

Option A - Transfer from your validator wallet

On your validator host:

lumerad tx bank send validator <SN_ACCOUNT> <amount>ulume \
  --chain-id lumera-testnet-2 \
  --gas auto --gas-adjustment 1.3 \
  --fees 5000ulume -y

Replace <SN_ACCOUNT> with your Supernode's address and <amount> with the amount in ulume. The combined stake from your validator self-delegation and this SN account delegation must meet the on-chain minimum (currently 10,000 LUME on testnet-2).

Option B - Testnet faucet or Discord

Request testnet tokens for your SN_ACCOUNT address from the faucet or Discord.

Supernode registration uses a LEP-3 dual-source stake model. The minimum is the combined total of your validator self-delegation + SN account delegation. On testnet-2, this is currently 10,000 LUME. Check the current value with lumerad query supernode params. This parameter is governable and can change.

Step 2: Delegate from Supernode Account to Validator

This links the Supernode's stake to your validator. The delegation from the SN account counts toward the combined minimum stake alongside your validator self-delegation.

Find your validator operator address

On your validator host, retrieve the VALOPER address (starts with lumeravaloper1...) from the validator key:

lumerad keys show validator --bech val -a

This prints the bech32 operator address, which is what you pass as <VALOPER> in both Step 2 and Step 3. Note it down, you will need it twice.

Run the delegation

This must be run on the Supernode host (where the supernode key lives in ~/.supernode/keys/). It requires lumerad to be installed on that host, which you did in Node Setup, Step 8.

VALOPER="lumeravaloper1..."  # paste the address from the command above
 
lumerad tx staking delegate "$VALOPER" 10000000000ulume \
  --from supernode \
  --keyring-backend file \
  --keyring-dir ~/.supernode/keys \
  --chain-id lumera-testnet-2 \
  --node https://lumera-testnet-rpc.polkachu.com/ \
  --gas auto --gas-adjustment 1.3 \
  --fees 7000ulume -y

You will be prompted for the Supernode keyring passphrase. A successful broadcast prints code: 0 and a txhash.

The four flags marked above are all mandatory on the Supernode host and cannot be omitted:

  • --keyring-backend file and --keyring-dir ~/.supernode/keys tell lumerad where the Supernode key actually lives (not in its default ~/.lumera/keyring-os/).
  • --node https://lumera-testnet-rpc.polkachu.com/ points the CLI at a public testnet-2 CometBFT RPC endpoint, because the Supernode host has no local chain node to broadcast through.
  • --from supernode selects the Supernode key inside that keyring as the signer.

If you would rather broadcast through your own validator instead of a public endpoint, use --node tcp://<VALIDATOR_IP>:26657 and open port 26657 on the validator from the Supernode IP — both in ufw and in your cloud provider firewall — the same way you opened 9090 in Node Setup, Step 3.

Adjust the amount as needed. 10000000000ulume = 10,000 LUME. If your validator already has substantial self-delegation, you may need less from the SN account — only the combined total must meet the minimum.

Verify the delegation

Still on the Supernode host — pass the same --node you used for the delegation, otherwise lumerad will try its default tcp://localhost:26657 and fail with a connection error:

lumerad query staking delegations <SN_ACCOUNT> \
  --node https://lumera-testnet-rpc.polkachu.com/

You should see a delegation entry pointing to your validator operator address.

Step 3: Register Supernode On-Chain

This command must run on your validator host, signed by the validator operator key. It cannot be run from the Supernode server.

SSH into your validator server and run:

VALOPER=$(lumerad keys show validator --bech val -a)
SN_ENDPOINT="<SN_PUBLIC_IP>:4444"
SN_ACCOUNT="lumera1..."  # Supernode account from node setup
 
lumerad tx supernode register-supernode \
  "$VALOPER" \
  "$SN_ENDPOINT" \
  "$SN_ACCOUNT" \
  --from validator \
  --chain-id lumera-testnet-2 \
  --gas auto --gas-adjustment 1.3 \
  --fees 5000ulume -y

Replace <SN_PUBLIC_IP> with your Supernode server's public IP and update the SN_ACCOUNT with the address from Node Setup, Step 5.

A successful response shows code: 0.

Step 4: Verify Registration

Check on-chain status

On your validator host:

lumerad query supernode get-supernode "$VALOPER"

You should see state: SUPERNODE_STATE_ACTIVE.

Check Supernode health

On your Supernode host:

sn-manager status
sn-manager check

Verify port connectivity

From any external machine, test that the Supernode ports are reachable:

nc -zv <SN_PUBLIC_IP> 4444
nc -zv <SN_PUBLIC_IP> 4445
nc -zv <SN_PUBLIC_IP> 8002

Verification Checklist

Run these checks to confirm everything is working. Pay attention to which host each command belongs on.

On the validator host (uses the local chain node and the validator key):

# Supernode registered? (state should be SUPERNODE_STATE_ACTIVE)
lumerad query supernode get-supernode $(lumerad keys show validator --bech val -a)

On the Supernode host (remote --node required since there is no local chain node):

# sn-manager running?
sudo systemctl status sn-manager
 
# Delegation in place?
lumerad query staking delegations <SN_ACCOUNT> \
  --node https://lumera-testnet-rpc.polkachu.com/
 
# Ports listening?
ss -tlnp | grep -E '4444|4445|8002'
 
# Health check passing?
sn-manager check

If the on-chain query returns SigningInfo not found right after registration, wait a few blocks for the chain to pick it up.

Next Steps

Edit this page