Nulla Network

NULLA is the quantum-resistant Layer-1 for encrypted computation, private AI, and confidential finance.
Github: https://github.com/NullaZK/mainnet
Telegram: https://t.me/nullaportal
Explorer: https://www.nullascan.com/#/staking
List: https://www.coingecko.com/en/coins/nulla
Server preparation
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
Binary and config
cd $HOME && mkdir -p ~/.NullaNetwork && cd $HOME/.NullaNetwork
curl -L -o nulla-relay https://github.com/NullaZK/mainnet/releases/download/v1/nulla-relay
curl -L -o polkadot-execute-worker https://github.com/NullaZK/mainnet/releases/download/v1/polkadot-execute-worker
curl -L -o polkadot-prepare-worker https://github.com/NullaZK/mainnet/releases/download/v1/polkadot-prepare-worker
curl -L -o nulla-mainnet.raw.json https://raw.githubusercontent.com/NullaZK/mainnet/refs/heads/main/chainspec/nulla-mainnet.raw.json
chmod +x nulla-relay polkadot-execute-worker polkadot-prepare-worker
Generate P2P node key
cd $HOME/.NullaNetwork && ./nulla-relay key generate-node-key \
--file $HOME/.NullaNetwork/node.key
Show your peer ID (share this if you want to be added as a bootnode)
cd $HOME/.NullaNetwork && ./nulla-relay key inspect-node-key \
--file $HOME/.NullaNetwork/node.key
Insert session keys
Generate a mnemonic (or use an existing one — keep it secret):
cd $HOME/.NullaNetwork && ./nulla-relay key generate --scheme sr25519
Insert all 6 key types from the same mnemonic.
Replace the value below with your own 12-word mnemonic phrase generated above.
Keep this mnemonic secret. Do not share it with anyone.
MNEMONIC="your twelve word mnemonic phrase here"
MNEMONIC="your twelve word mnemonic phrase here"
KEYSTORE=$HOME/.NullaNetwork/chains/nulla_mainnet/keystore
cd $HOME/.NullaNetwork
mkdir -p $KEYSTORE
chmod 700 $KEYSTORE
for TYPE in babe gran audi asgn para; do
SCHEME=sr25519
[ "$TYPE" = "gran" ] && SCHEME=ed25519
./nulla-relay key insert \
--keystore-path $KEYSTORE \
--scheme $SCHEME \
--key-type $TYPE \
--suri "$MNEMONIC"
done
./nulla-relay key insert \
--keystore-path $KEYSTORE \
--scheme ecdsa \
--key-type beef \
--suri "$MNEMONIC"
chmod 700 $KEYSTORE
chmod 600 $KEYSTORE/*
Set your Validator Node Name
YOUR_NODE_NAME="Node-01"
Create service file
sudo tee /etc/systemd/system/nulla.service > /dev/null <<EOF
[Unit]
Description=Nulla Relay Mainnet Validator
After=network-online.target
Wants=network-online.target
[Service]
User=$USER
Group=$USER
WorkingDirectory=$HOME/.NullaNetwork
ExecStart=$HOME/.NullaNetwork/nulla-relay \
--chain $HOME/.NullaNetwork/nulla-mainnet.raw.json \
--validator \
--name $YOUR_NODE_NAME \
--base-path $HOME/.NullaNetwork \
--node-key-file $HOME/.NullaNetwork/node.key \
--port 30333 \
--rpc-port 9944 \
--rpc-methods Unsafe \
--telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \
Restart=always
RestartSec=10
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
Start node
sudo systemctl daemon-reload
sudo systemctl enable nulla
Check logs
sudo systemctl start nulla && sudo journalctl -u nulla -fo cat
Get your session pubkeys:
curl -sX POST http://localhost:9944 \
-H "Content-Type: application/json" \
-d '{"id":1,"jsonrpc":"2.0","method":"author_rotateKeys","params":[]}'
Delete Node
sudo systemctl stop nulla
sudo systemctl disable nulla
sudo systemctl daemon-reload
rm -rf /etc/systemd/system/nulla.service
rm -rf $HOME/.NullaNetwork