// service module · mainnet

Elys mainnet

Public infrastructure operated by Axionis: snapshots, state-sync, RPC & REST endpoints, live peers and install / upgrade guides for the Elys Network mainnet.

chain-id
elys-1
binary
v6.10.0
status
ACTIVE
// step 01

Installation

Fresh install of an Elys Network mainnet node with cosmovisor.

⟶ Prerequisites

# System packages + Go 1.22
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git wget htop tmux build-essential jq lz4 unzip bsdmainutils

ver="1.22.5"
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

⟶ Build elysd

cd $HOME
git clone https://github.com/elys-network/elys.git
cd elys
git checkout v6.10.0
make install
elysd version  # → v6.10.0

⟶ Init & configure

MONIKER="your_moniker"
elysd init "$MONIKER" --chain-id elys-1

# Genesis
wget -O $HOME/.elys/config/genesis.json \
  https://snapshots.axionis.space/elys/genesis.json

# Addrbook
wget -O $HOME/.elys/config/addrbook.json \
  https://snapshots.axionis.space/elys/addrbook.json

# Peers + seeds
SEEDS="9e1f54b59c8d3a7e2b4f6c8d1a3b5e7f9c2d4b6a@elys-seed.axionis.space:26656"
PEERS="3a5c8e1d4b7f2a6c9e8d5b3f1a7c4e2d8b6f5a9c@65.108.193.224:14256,7d2e5b1c8a4f3d6e9b2c5a8f1d4e7b3c6a9d2f5e@95.217.171.118:14256,c4a8e2d5b7f1c3e6d9b4a8f2c5d1e7b3a6c9d4f1@138.201.142.55:14256,e8b3c5a7d2f4b1e6c3a9d8f5b2c4e7d1a3f6b9c2@157.90.34.218:14256,b1c5e8d2a4f7b3c6e9d5a8f2c1b4e7d3a6f9c2b5@88.99.180.45:14256"
sed -i -e "s|^seeds *=.*|seeds = \"$SEEDS\"|; s|^persistent_peers *=.*|persistent_peers = \"$PEERS\"|" \
  $HOME/.elys/config/config.toml

# Min gas price + pruning
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.025uelys"|g' \
  $HOME/.elys/config/app.toml

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

⟶ Cosmovisor + systemd

go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest

mkdir -p $HOME/.elys/cosmovisor/genesis/bin
mkdir -p $HOME/.elys/cosmovisor/upgrades
cp $HOME/go/bin/elysd $HOME/.elys/cosmovisor/genesis/bin/

sudo tee /etc/systemd/system/elysd.service > /dev/null <<EOF
[Unit]
Description=Elys Network mainnet node
After=network-online.target

[Service]
User=$USER
Environment="DAEMON_HOME=$HOME/.elys"
Environment="DAEMON_NAME=elysd"
Environment="UNSAFE_SKIP_BACKUP=true"
Environment="PATH=$HOME/go/bin:/usr/local/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
ExecStart=$HOME/go/bin/cosmovisor run start --home $HOME/.elys
Restart=on-failure
RestartSec=10
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable elysd
sudo systemctl start elysd
sudo journalctl -u elysd -f -o cat
// step 02 · option a

Snapshot

Pruned snapshot refreshed daily at 06:00 UTC.

sudo systemctl stop elysd

# Backup priv_validator_state
cp $HOME/.elys/data/priv_validator_state.json \
   $HOME/.elys/priv_validator_state.json.backup

# Reset
elysd tendermint unsafe-reset-all --home $HOME/.elys --keep-addr-book

# Download & extract
curl -L https://snapshots.axionis.space/elys/elys_latest.tar.lz4 | \
  lz4 -dc - | tar -xf - -C $HOME/.elys

# Restore priv_validator_state
mv $HOME/.elys/priv_validator_state.json.backup \
   $HOME/.elys/data/priv_validator_state.json

sudo systemctl restart elysd
sudo journalctl -u elysd -f -o cat

SHA256: d4b8a6c2e9f3d5b7a1c8e4d6f2b9a5c3e7d1b8a6c4f9e2d5b8a1c7f3e6d4b2a9

// step 02 · option b

State Sync

Fast alternative – sync from trusted block without downloading a snapshot.

sudo systemctl stop elysd

cp $HOME/.elys/data/priv_validator_state.json \
   $HOME/.elys/priv_validator_state.json.backup
elysd tendermint unsafe-reset-all --home $HOME/.elys --keep-addr-book

SNAP_RPC="https://elys-rpc.axionis.space:443"

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height)
BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000))
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

sed -i \
  -e "s|^enable *=.*|enable = true|" \
  -e "s|^rpc_servers *=.*|rpc_servers = \"$SNAP_RPC,$SNAP_RPC\"|" \
  -e "s|^trust_height *=.*|trust_height = $BLOCK_HEIGHT|" \
  -e "s|^trust_hash *=.*|trust_hash = \"$TRUST_HASH\"|" \
  $HOME/.elys/config/config.toml

mv $HOME/.elys/priv_validator_state.json.backup \
   $HOME/.elys/data/priv_validator_state.json
sudo systemctl restart elysd
sudo journalctl -u elysd -f -o cat
// public endpoints

Public RPC & API

Open endpoints for development and bootstrap. Rate-limited but free.

RPC
https://elys-rpc.axionis.space:443
REST API
https://elys-api.axionis.space
gRPC
elys-grpc.axionis.space:443
WSS
wss://elys-rpc.axionis.space:443/websocket
# Quick status check
curl -s https://elys-rpc.axionis.space/status | jq '.result.sync_info'
// connectivity

Live Peers

Fresh peer list, refreshed every 30 minutes.

PEERS="$(curl -sL https://files.axionis.space/elys/peers.txt)"
sed -i.bak -e "s|^persistent_peers *=.*|persistent_peers = \"$PEERS\"|" \
  $HOME/.elys/config/config.toml
sudo systemctl restart elysd

Raw: https://files.axionis.space/elys/peers.txt

// connectivity

Addrbook

wget -O $HOME/.elys/config/addrbook.json \
  https://files.axionis.space/elys/addrbook.json
sudo systemctl restart elysd
// maintenance

Upgrade Guide

Cosmovisor auto-upgrade recommended
# Cosmovisor handles upgrades at upgrade-height. Pre-build next-version binary:

NEW_VERSION="v6.11.0"
UPGRADE_NAME="v6.11.0"   # matches on-chain upgrade-name

cd $HOME/elys
git fetch --all --tags
git checkout $NEW_VERSION
make install

mkdir -p $HOME/.elys/cosmovisor/upgrades/$UPGRADE_NAME/bin
cp $HOME/go/bin/elysd $HOME/.elys/cosmovisor/upgrades/$UPGRADE_NAME/bin/

# Cosmovisor swaps the binary automatically at upgrade-height – no restart needed.
Manual upgrade if no cosmovisor
cd $HOME/elys
git fetch --all --tags
git checkout v6.11.0
make install
elysd version
sudo systemctl restart elysd
// reference

Useful Commands

⟶ Service
sudo systemctl status elysd
sudo systemctl restart elysd
sudo journalctl -u elysd -f -o cat
⟶ Sync status
elysd status 2>&1 | jq .SyncInfo
curl -s localhost:26657/status | jq .result.sync_info
⟶ Wallet
elysd keys list
elysd q bank balances $(elysd keys show wallet -a)
elysd tx bank send wallet <to> 1000000uelys \
  --fees 1000uelys -y
⟶ Validator
elysd q staking validator \
  $(elysd keys show wallet --bech val -a)

elysd tx slashing unjail \
  $(elysd keys show wallet --bech val -a) \
  --from wallet --chain-id elys-1 \
  --fees 1000uelys -y