Sitemap

Worrell | Gentx Submission for Second Testnet

5 min readOct 28, 2026

--

Press enter or click to view image in full size

Learn more about Worrell in Worrell | Validator Node Setup Guide

worrell-testnet-1 closes: Tuesday 24 November 2026

worrell-testnet-2 is a new network that starts the way mainnet will start: validators send a signed genesis transaction (gentx) during a sign-up window, the final genesis file is built from those transactions and published, and every node starts at the same time.

Joining is open to every validator.
There is no selection for this testnet.
Participation is recorded per operator (who signed up, who was online at launch, who stayed).
Every account that submits a valid gentx receives 500 WORRELL in the genesis.

Official documentation

Timeline (UTC)

Gentx window opens: Tuesday 27 October 2026, 10:00 UTC
Gentx window closes: Friday 6 November 2026, 10:00 UTC
Final genesis published: Saturday 7 November 2026
Network start (genesis_time): Tuesday 10 November 2026, 08:00 UTC

Server Requirements

4CPU, 8RAM, 200GB space.
In the future it will require more space, but for testnet it’s enough.

Prerequisite

1) Update the local package repository database & upgrade installed packages to their latest versions based on the updated package database:

apt update && apt upgrade -y

2) Install packages:

apt install curl gcc tmux htop nvme-cli pkg-config libssl-dev libleveldb-dev tar clang bsdmainutils ncdu unzip libleveldb-dev build-essential git wget jq make -y

3) Install Go:

ver="1.26.1" && \
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz" && \
sudo rm -rf /usr/local/go && \
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz" && \
rm "go$ver.linux-amd64.tar.gz" && \
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile && \
source $HOME/.bash_profile && \
go version

Installation

1) Install the binary:
This installation goes in parallel with worrell-testnet-1 running on the same server, so binary name will be worrell2d.

wget https://github.com/worrellchain/worrell/releases/download/v0.2.0/v0.2.0_linux_amd64.tar.gz && \
tar -C /root/ -xzf "v0.2.0_linux_amd64.tar.gz" && \
rm "v0.2.0_linux_amd64.tar.gz" && \
mv worrelld $HOME/go/bin/worrell2d && \
chmod +x $HOME/go/bin/worrell2d

2) Check version:

worrell2d version --long | grep -e version -e commit

Output should be:

commit: 5523bf67c81e40587d06a67fb14af9bf278e4ab1
version:
v0.2.0

3) Initialize node in a separate home for this network:

export T2_HOME=$HOME/.worrell-testnet-2
worrell2d init <YOUR_NODE_ID> --chain-id worrell-testnet-2 --default-denom uworrell --home $T2_HOME

4) Configure the binary:

worrell2d config set client chain-id worrell-testnet-2 --home $T2_HOME
worrell2d config set client node tcp://localhost:27657 --home $T2_HOME
worrell2d config set client keyring-backend os --home $T2_HOME

5) Replace the genesis created by init with the published pre-genesis.json :

curl -s https://raw.githubusercontent.com/worrellchain/networks/main/worrell-testnet-2/pre-genesis.json -o $T2_HOME/config/genesis.json

6) Check sha256sum:

sha256sum $T2_HOME/config/genesis.json

Output should be:

f5231dc924c762bdbe5aa0605ed6472288c9b71f4b175015e0559edccdd96b94 /root/.worrell-testnet-2/config/genesis.json

7) Create operator wallet:
Change <WALLET_NAME> with Your wallet name.

worrell2d keys add <WALLET_NAME>

Enter password (passphrase).
Save mnemonic and wallet address.

This wallet receives the 500 WORRELL in the genesis and is the account your gentx is signed with.

8) Add the wallet to your local copy of the genesis with the amount you will receive:

worrell2d genesis add-genesis-account $(worrell2d keys show <WALLET_NAME> -a --home $T2_HOME) \
500000000uworrell --home $T2_HOME

9) Create the gentx:

worrell2d genesis gentx makelove 495000000uworrell \
--chain-id worrell-testnet-2 \
--moniker "$makeLOVE" \
--identity EA7D3F9194075A95 \
--website "https://makelove.family" \
--security-contact "https://chat.makelove.family" \
--details "The LOVE coin. Together we'll prevail." \
--commission-rate 0.05 \
--commission-max-rate 0.20 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1000000 \
--ip 202.61.199.112 \
--p2p-port 27656 \
--home $T2_HOME

The file is written to $T2_HOME/config/gentx/gentx-<node id>.json.

Check it:

cat $T2_HOME/config/gentx/gentx-*.json | jq '.body.messages[0] | {moniker: .description.moniker, validator_address, value}'

Submit the Gentx (Pull Request)

1) Fork worrellchain/networks.

Get crptcpchk’s stories in your inbox

Join Medium for free to get updates from this writer.

2) Copy your gentx file to worrell-testnet-2/gentx/<moniker>.json (use your moniker as the file name).

3) Open a pull request titled gentx: <moniker>. One file per pull request.

The pull request must arrive before the window closes.
Each file is checked for:

  • exactly one MsgCreateValidator message and one signature;
  • denomination uworrell and amount between 1 and 500 WORRELL;
  • an account that is not already used by another gentx and is not a founder account;
  • a valid JSON file.

The Final Genesis

When the window closes, the coordinator builds the genesis: every gentx account is credited with 500 WORRELL.

The genesis is then started on a local test node.

Only after that test the final genesis.json is published in this folder, together with its sha256 and the list of persistent peers taken from the gentx memos.

1) Download genesis file:

curl -s https://raw.githubusercontent.com/worrellchain/networks/main/worrell-testnet-2/genesis.json \
-o $T2_HOME/config/genesis.json

2) Check sha256sum:

sha256sum $T2_HOME/config/genesis.json

# must match the published hash:

ed4555669ba42158ee97a59d9f4b527f8491833848a3e2440d38d127f89a018a /root/.worrell-testnet-2/config/genesis.json

3) Setup minimum gas prices in app.toml file:

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.025uworrell\"/;" $HOME/.worrell-testnet-2/config/app.toml

4) Add peers:

PEERS="4ae3601a733c88a1b8f377774ff197dbd3e377c6@144.91.82.147:26656"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.worrell-testnet-2/config/config.toml

5) Add maximum inbound/outbound peers:

sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 40/g' $HOME/.worrell-testnet-2/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 10/g' $HOME/.worrell-testnet-2/config/config.toml

6) Add “bad” peers filtration:

sed -i -e "s/^filter_peers *=.*/filter_peers = \"true\"/" $HOME/.worrell-testnet-2/config/config.toml

7) Add pruning:

pruning="custom"
pruning_keep_recent="1000"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.worrell-testnet-2/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.worrell-testnet-2/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.worrell-testnet-2/config/app.toml

8) Create service file:

tee /etc/systemd/system/worrell2d.service > /dev/null <<EOF
[Unit]
Description=Worrell Validator Node | Testnet 2
After=network-online.target

[Service]
User=$USER
ExecStart=$(which worrell2d) start --home $T2_HOME
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

9) Start the node a few minutes before genesis_time:

systemctl daemon-reload && \
systemctl enable worrell2d && \
systemctl start worrell2d && \
systemctl status worrell2d

A node started before genesis_time waits, then produces the first block together with the other genesis validators. Nothing happens before that time, which is normal.

10) Check logs:

journalctl -u worrell2d -f -o cat

After the Start

Your validator should be BOND_STATUS_BONDED from block 1.

Who was online at the start, who joined late and who did not appear is recorded per operator.

Check:

worrell2d status --home $T2_HOME | jq '.sync_info | {latest_block_height, catching_up}' && \
worrell2d q staking validator $(worrelld keys show <WALLET_NAME> --bech val -a --home $T2_HOME) --home $T2_HOME

Delete Node

systemctl stop worrell2d && \
systemctl disable worrell2d && \
rm /etc/systemd/system/worrell2d.service && \
systemctl daemon-reload && \
rm -f $(which worrell2d) && \
rm -rf $HOME/.worrell-testnet-2 $HOME/worrell

Links

Follow for more guides on nodes, drops and other useful stuff.

psi.crypto Discord: https://discord.gg/9kvtEQwtqJ

X: https://twitter.com/the01100011

Telegram: https://t.me/psicrypto

--

--

crptcpchk
crptcpchk

@RawBox Squad | Blockchain Validator