Operators
Tools

Tools

On this page you can find tools to setup a node automatically, explorers and other useful dashboards and scripts.

ℹ️

Our documentation often refer to syntax annotated in <> brackets. We use this expression for variables that are unique to each user (like path, local moniker, versions etcetra). Any syntax in <> brackets needs to be substituted with your correct name or version, without the <> brackets. If you are unsure, please check our table of essential parameters and variables (opens in a new tab).

Explorers

Nym Network stats can be humanly read on some of the explorers and dashboards.

Nym Node CLI

This interactive command-line-based tool takes an operator through a journey of installing, configuring and starting a nym-node as a systemd service, doing most of the steps automatically for them.

Installation & Running

1. SSH into your server (VPS)
  • The installation of nym-node using this program requires you to run as root
2. Download nym-node-cli.py and make executable
wget https://raw.githubusercontent.com/nymtech/nym/refs/heads/develop/scripts/nym-node-setup/nym-node-cli.py && \
chmod +x ./nym-node-cli.py
3. Run the program

There are two ways how to run the program. fully interactive or with provided arguments. The former has a shorter initial command but then operators must fill the values on the go, the latter requires more complex command, but then there is a minimum prompts during the process.

  1. Fully interactive mode - just run:
./nym-node-cli.py install
  1. Use arguments - run this command to see all options:
./nym-node-cli.py install --help
usage: nym-node-cli install [-h] [-V] [-d BRANCH] [-v]
                            [--mode {mixnode,entry-gateway,exit-gateway}]
                            [--wireguard-enabled {true,false}]
                            [--hostname HOSTNAME] [--location LOCATION]
                            [--email EMAIL] [--moniker MONIKER]
                            [--description DESCRIPTION]
                            [--public-ip PUBLIC_IP]
                            [--nym-node-binary NYM_NODE_BINARY]
                            [--uplink-dev UPLINK_DEV] [--env KEY=VALUE]
 
options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -d BRANCH, --dev BRANCH
                        Define github branch (default: develop)
  -v, --verbose         Show full error tracebacks
  --mode {mixnode,entry-gateway,exit-gateway}
                        Node mode: 'mixnode', 'entry-gateway', or 'exit-
                        gateway'
  --wireguard-enabled {true,false}
                        WireGuard functionality switch: true / false
  --hostname HOSTNAME   Node domain / hostname
  --location LOCATION   Node location (country code or name)
  --email EMAIL         Contact email for the node operator
  --moniker MONIKER     Public moniker displayed in explorer & NymVPN app
  --description DESCRIPTION
                        Short public description of the node
  --public-ip PUBLIC_IP
                        External IPv4 address (autodetected if omitted)
  --nym-node-binary NYM_NODE_BINARY
                        URL for nym-node binary (autodetected if omitted)
  --uplink-dev UPLINK_DEV
                        Override uplink interface used for NAT/FORWARD (e.g.,
                        'eth0'; autodetected if omitted)
  --env KEY=VALUE       (Optional) Extra ENV VARS, e.g. --env CUSTOM_KEY=value
  • An example can look like this:
# substitute with your real values:
./nym-node-cli.py install 
  --hostname node-install.devrel.nymte.ch 
  --moniker MainnetGW-DE 
  --description "This node is installed with nym-node-cli v1.2.0" 
  --wireguard-enabled true 
  --location DE  
  --mode exit-gateway 
  --email kawa_hesinkar@example.ku
4. Read and follow the prompts

There ware a few required confirmations and in case of running the program without the arguments, you will be prompted for values neccessary to setup a nym-node and configure your server.

Read these prompts carefully!

5. Setup finished

Congratulation, your node is installed.

This version of the program does not prompt an operator for the local node moniker (--id <ID>) therefore it asigns your node an automatic one default-nym-node.

All configuration and data of your node can be found in this location:

ls $HOME/.nym/nym-nodes/default-nym-node/

CMD Reward Tracker

A command-line-based program locally calculating nodes rewards based on provided Nyx account addresses in data/wallet-addresses.csv.

Installation & Running

1. Pull / clone nymtech/nym repository
  • Open terminal and navigate to where you want to have nym repostiry and run:
git clone https://github.com/nymtech/nym
2. Add your Nyx accounts to wallet-addresses.csv
  • Navigate to nym/scripts/rewards-tracker/data
  • Open wallet-addresses.csv in your favourite text editor or a sheet managing tool (Like Libre Office Calc)
  • To the first collumn called address add all Nyx addresses you want to track
  • Delete all add_wallet_or_delete template examples
3. Add entity to wallet-addresses.csv - optional
  • In the same file operators who want to separate their nodes by an entity, can add this entity to the tag column

  • If not leave this column empty - delete all optional_tag_or_delete fields

  • Csv example with tags:

address, tag
n1foofoofoo, personal
n1barbarbar, personal
n1bazbazbaz, mysquad
n1lollollol, mysquad
  • For operators having all nodes under one entity, the tag field will be left empty. Example:
address, tag
n1foofoofoo
n1barbarbar
n1bazbazbaz
4. Save wallet-addresses.csv and exit
5. Run the program
  • In terminal navigate to nym/scripts/rewards-tracker
  • Run the program:
./node_rewards_tracker.py

The Output

The result of running node_rewards_tracker.py is:

  1. Printed table in terminal
  2. Updated sheet with complete info stored in data/node-balances.csv
  3. Historical data file stored in data/data.yaml - this file should not be changed manually, as all values older than 30 days get auto-removed

Node Ping Tester

This tool is used to diagnose how many nodes providing self-described endpoint allow your IP to ping them. It's a very simple script fetching all /described (opens in a new tab) nodes and trying to ping each of them.

The output is collected into two files:

  ├── ping_not_working.csv
  └── ping_works.csv

Installation & Running

1. SSH into your node server (VPS)
2. Download and make executable
  • Navigate to the directory where you want to have this script
  • Download and make executable:
wget https://raw.githubusercontent.com/nymtech/nym/refs/heads/develop/scripts/test-nodes-pings.sh && \
chmod +x test-nodes-pings.sh
3. Run the script
  • Default running command is straight forward
./test-nodes-pings.sh
  • If you want to increase the ping attempts from default 2 or lower the concurency, feel free to change the variables, like this:
PING_RETRIES=10 PING_TIMEOUT=5 CONCURRENCY=16 ./test-nodes-pings.sh

You can look up the IPs from ping_not_working.csv, using some online database, like ipinfo.io (opens in a new tab).

Feel invited to share the outcome with Nym team, mentors and the rest of the operators in our Matrix Node Operators channel (opens in a new tab).