Home

Zenrock

Zenrock is a permissionless MPC (Multi-Party Computation) infrastructure that enables decentralized key management for cross-chain protocols and wallet builders, eliminating single points of failure through distributed private keys. Through its zrSign technology, it provides developers with tools to build secure omnichain applications that can control assets across any blockchain while maintaining institutional-grade security with hot wallet convenience

RPC API gRPC RPC-EVM WSS-RPC Addressbook Genesis Seed Peer Explorer

Minimum Hardware

NODE CPU RAM SSD OS
zenrockd 4 8 200 GB Ubuntu 22.04 LTS

Install dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y

Install Go

cd $HOME
VER="1.23.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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin

Set Var

echo "export WALLET="wallet"" >> $HOME/.bash_profile
echo "export MONIKER="test"" >> $HOME/.bash_profile
echo "export ZENROCK_CHAIN_ID="gardia-9"" >> $HOME/.bash_profile
echo "export ZENROCK_PORT="56"" >> $HOME/.bash_profile
source $HOME/.bash_profile

Download Binary

cd $HOME
wget -O zenrockd.zip https://github.com/Zenrock-Foundation/zrchain/releases/download/v6.8.1/zenrockd.zip
unzip zenrockd.zip
rm zenrockd.zip
chmod +x $HOME/zenrockd
sudo mv $HOME/zenrockd $HOME/go/bin/

Config and Init App

zenrockd init $MONIKER --chain-id $ZENROCK_CHAIN_ID
zenrockd config set client chain-id $ZENROCK_CHAIN_ID
zenrockd config set client node tcp://localhost:${ZENROCK_PORT}657

Download Genesis and Addrbook

wget -O $HOME/.zrchain/config/genesis.json https://server-5.itrocket.net/testnet/zenrock/genesis.json
wget -O $HOME/.zrchain/config/addrbook.json https://server-5.itrocket.net/testnet/zenrock/addrbook.json

Seeds and Peers

SEEDS="0e0fa76bf61bebb79c9db6890b5c8da78a0f62d3@zenrock-testnet-seed.itrocket.net:56656"
PEERS="dd2ba8bdb8b42e4127eb442bea27f5192aaba18c@zenrock-testnet-peer.itrocket.net:11656,cc0b7cd12a5b3b444af41d1c33f1fc0eda22fe79@89.208.6.139:26656,af903d0979b6d78c1264e18dcca6e1231ee94a1d@193.34.212.80:59656,d9927ea0ea2e4bb46d2192f1c94aeb0770ae8f91@34.246.15.243:26656,2fdb13c3a70cc4534c455bb1b924c5e120e13329@195.26.251.0:17656,d76afe7cbe8e6e39f96d67bdf60c7e767893b15e@34.246.15.243:26656,eb069100dcef3c8b8789e9672cf29808e32c9a60@51.77.108.156:26656,8f1b7232e8530f7f964ba048270f77e1e90636de@52.30.152.47:26656,0181c6617927e96d62195da3208809b647676e6a@94.130.164.82:40956"
sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
 -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.zrchain/config/config.toml

Custom Ports

sed -i.bak -e "s%:1317%:${ZENROCK_PORT}317%g;
s%:8080%:${ZENROCK_PORT}080%g;
s%:9090%:${ZENROCK_PORT}090%g;
s%:9091%:${ZENROCK_PORT}091%g;
s%:8545%:${ZENROCK_PORT}545%g;
s%:8546%:${ZENROCK_PORT}546%g;
s%:6065%:${ZENROCK_PORT}065%g" $HOME/.zrchain/config/app.toml

sed -i.bak -e "s%:26658%:${ZENROCK_PORT}658%g;
s%:26657%:${ZENROCK_PORT}657%g;
s%:6060%:${ZENROCK_PORT}060%g;
s%:26656%:${ZENROCK_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${ZENROCK_PORT}656\"%;
s%:26660%:${ZENROCK_PORT}660%g" $HOME/.zrchain/config/config.toml

Pruning, Gas and Prometheus

sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.zrchain/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.zrchain/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $HOME/.zrchain/config/app.toml

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0urock"|g' $HOME/.zrchain/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.zrchain/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.zrchain/config/config.toml

Create Service File

sudo tee /etc/systemd/system/zenrockd.service > /dev/null << EOF
[Unit]
Description=Zenrock node
After=network-online.target
[Service]
User=$USER
WorkingDirectory=$HOME/.zrchain
ExecStart=$(which zenrockd) start --home $HOME/.zrchain
Restart=on-failure
RestartSec=5
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

Start

sudo systemctl daemon-reload
sudo systemctl enable zenrockd
sudo systemctl restart zenrockd && sudo journalctl -u zenrockd -fo cat

Snapshot

sudo systemctl stop zenrockd
cp $HOME/.zrchain/data/priv_validator_state.json $HOME/.zrchain/priv_validator_state.json.backup
rm -rf $HOME/.zrchain/data $HOME/.zrchain/wasm
curl https://server-5.itrocket.net/testnet/zenrock/zenrock_2025-07-02_703155_snap.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.zrchain
mv $HOME/.zrchain/priv_validator_state.json.backup $HOME/.zrchain/data/priv_validator_state.json
sudo systemctl restart zenrockd && sudo journalctl -u zenrockd -f

Create and Restore Address

zenrockd keys add wallet
# Restore wallet
zenrockd keys add wallet --recover
# List
zenrockd keys list

Check Balance

zenrockd q bank balances $(zenrockd keys show wallet -a)

Create Validator

cd $HOME
echo "{\"pubkey\":{\"@type\":\"/cosmos.crypto.ed25519.PubKey\",\"key\":\"$(zenrockd comet show-validator | grep -Po '\"key\":\s*\"\K[^"]*')\"},
 \"amount\": \"1000000urock\",
 \"moniker\": \"test\",
 \"identity\": \"\",
 \"website\": \"\",
 \"security\": \"\",
 \"details\": \"catsmile\",
 \"commission-rate\": \"0.1\",
 \"commission-max-rate\": \"0.2\",
 \"commission-max-change-rate\": \"0.01\",
 \"min-self-delegation\": \"1\"
}" > validator.json

zenrockd tx staking create-validator validator.json \
 --from $WALLET \
 --chain-id gardia-9 \
 --fees 500000urock

Delegate to own

zenrockd tx staking delegate $(zenrockd keys show $WALLET --bech val -a) 1000000urock --from $WALLET --chain-id gardia-9 --fees 500000urock -y

Unjail Validator

zenrockd tx slashing unjail --from $WALLET --chain-id gardia-9 --fees 500000urock -y

Vote

zenrockd tx gov vote 1 yes --from $WALLET --chain-id gardia-9 --fees 500000urock -y

Upgrade

cd $HOME
wget -O zenrockd.zip https://github.com/Zenrock-Foundation/zrchain/releases/download/v6.13.0/zenrockd.zip
unzip zenrockd.zip
rm zenrockd.zip
chmod +x $HOME/zenrockd
sudo mv $HOME/zenrockd $(which zenrockd)
sudo systemctl restart zenrockd && sudo journalctl -u zenrockd -f

Delete node

sudo systemctl stop zenrockd
sudo systemctl disable zenrockd
sudo rm -rf /etc/systemd/system/zenrockd.service
sudo rm $(which zenrockd)
sudo rm -rf $HOME/.zrchain
sed -i "/ZENROCK_/d" $HOME/.bash_profile