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 Explorer v2 (opens in a new tab): Official Nym Explorer
-
SpectreDAO Explorer (opens in a new tab): By operators for operators - currently the most used Nym explorer
-
Nym Node Status Observatory (opens in a new tab): An explorer with a list of Nym Nodes, their properformance and per node data
-
Nym Node Status UI (opens in a new tab): A dashboard displaying results of Gateway probes and much more in one table
-
Nymesis (opens in a new tab): A slick dashboard by operator community
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-nodeusing this program requires you to run asroot
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.py3. 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.
- Fully interactive mode - just run:
./nym-node-cli.py install- Use arguments - run this command to see all options:
./nym-node-cli.py install --help./nym-node-cli.py install --helpusage: 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.ku4. 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
nymrepostiry and run:
git clone https://github.com/nymtech/nym2. Add your Nyx accounts to wallet-addresses.csv
- Navigate to
nym/scripts/rewards-tracker/data - Open
wallet-addresses.csvin your favourite text editor or a sheet managing tool (Like Libre Office Calc) - To the first collumn called
addressadd all Nyx addresses you want to track - Delete all
add_wallet_or_deletetemplate 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
tagcolumn -
If not leave this column empty - delete all
optional_tag_or_deletefields -
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
n1bazbazbaz4. Save wallet-addresses.csv and exit
5. Run the program
- In terminal navigate to
nym/scripts/rewards-tracker - Run the program:
./node_rewards_tracker.pyThe Output
The result of running node_rewards_tracker.py is:
- Printed table in terminal
- Updated sheet with complete info stored in
data/node-balances.csv - 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.csvInstallation & 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.sh3. Run the script
- Default running command is straight forward
./test-nodes-pings.sh- If you want to increase the
pingattempts 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.shYou 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).