Skip to main content

Nulla Network

Tangle Network

NULLA is the quantum-resistant Layer-1 for encrypted computation, private AI, and confidential finance.

X: https://x.com/NullaNetwork

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

Telemetry: https://telemetry.polkadot.io/#list/0x5554316d9ad57b0f43461df669505107aa3a53c2cca6df6bcdd8a503113d05d1

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