Skip to content

🚀 Paxi Installation Guide

This guide helps you set up and run a Paxi Node.
🔗 Website | Discord | Twitter | Our Paxi Explorer


Component Minimum Recommended
CPU 4 Cores 4+ Cores
RAM 8 GB 8+ GB
Storage 400 GB SSD 1 TB NVMe SSD
OS Ubuntu 22.04 Ubuntu 22.04

Automatic Installation

bash <(curl -s https://raw.githubusercontent.com/kyronode/all-about-cosmos/refs/heads/main/Mainnet/Paxi/paxi-auto.sh)

Install Go (if you don't have one)

cd $HOME
VER="1.24.4"
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 Environment Variables

# WARNING: Please replace <YOUR_WALLET>, <YOUR_MONIKER>, and <CUSTOM_PORT> e.g 56,43,75
# with your own information before running the commands.
echo "export WALLET=<YOUR_WALLET>" >> $HOME/.bash_profile
echo "export MONIKER=<YOUR_MONIKER>" >> $HOME/.bash_profile
echo "export APP_PORT=<CUSTOM_PORT>" >> $HOME/.bash_profile
source $HOME/.bash_profile

Download Binary

cd $HOME
rm -rf paxi
git clone https://github.com/paxi-web3/paxi.git
cd paxi
git checkout v1.0.6
go build -mod=readonly -tags "cosmwasm pebbledb" -o $HOME/go/bin/paxid ./cmd/paxid

Init & Config

paxid init $MONIKER --chain-id paxi-mainnet
paxid config set client chain-id paxi-mainnet
paxid config set client node tcp://localhost:${APP_PORT}657

Download Genesis & Addrbook

curl -Ls https://raw.githubusercontent.com/kyronode/all-about-cosmos/refs/heads/main/Mainnet/Paxi/genesis.json > ~/go/bin/paxi/config/genesis.json
curl -Ls https://raw.githubusercontent.com/kyronode/all-about-cosmos/refs/heads/main/Mainnet/Paxi/addrbook.json > ~/go/bin/paxi/config/addrbook.json

Custom Ports

# app.toml
sed -i.bak -e "s%:1317%:${APP_PORT}317%g;
s%:8080%:${APP_PORT}080%g;
s%:9090%:${APP_PORT}090%g;
s%:9091%:${APP_PORT}091%g;
s%:8545%:${APP_PORT}545%g;
s%:8546%:${APP_PORT}546%g;
s%:6065%:${APP_PORT}065%g" ~/go/bin/paxi/config/app.toml

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

Pruning

sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" ~/go/bin/paxi/config/app.toml 
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" ~/go/bin/paxi/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"10\"/" ~/go/bin/paxi/config/app.toml

Min Gas, Prometheus, Indexer

sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0.01upaxi"|g' ~/go/bin/paxi/config/app.toml
sed -i -e "s/prometheus = false/prometheus = true/" ~/go/bin/paxi/config/config.toml
sed -i -e "s/^indexer *=.*/indexer = \"null\"/" ~/go/bin/paxi/config/config.toml

Create Service File

sudo tee /etc/systemd/system/paxid.service > /dev/null <<EOF
[Unit]
Description=paxi
After=network-online.target
[Service]
User=$USER
ExecStart=$(which paxid) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

Start Service

sudo systemctl daemon-reload
sudo systemctl enable paxid
sudo systemctl start paxid && sudo journalctl -u paxid -fo cat

Install Wasm Sync

bash <(curl -s https://raw.githubusercontent.com/kyronode/all-about-cosmos/refs/heads/main/Mainnet/Paxi/wasm.sh)
sudo systemctl restart paxid

Snapshot

sudo apt install lz4 -y
sudo systemctl stop paxid
cp ~/go/bin/paxi/data/priv_validator_state.json ~/go/bin/paxi/priv_validator_state.json.backup
paxid tendermint unsafe-reset-all --home ~/go/bin/paxi --keep-addr-book
curl -L https://snapshot-t.vinjan.xyz/paxi/latest.tar.lz4  | lz4 -dc - | tar -xf - -C ~/go/bin/paxi
mv ~/go/bin/paxi/priv_validator_state.json.backup ~/go/bin/paxi/data/priv_validator_state.json
sudo systemctl restart paxid && sudo journalctl -u paxid -fo cat

Node Synchronize Checker

# Paste this to your terminal
bash <(curl -s https://raw.githubusercontent.com/kyronode/all-about-cosmos/refs/heads/main/Mainnet/Paxi/paxi-sync.sh)

Create or Restore Wallet

Create new wallet and save ur mnemonics securely

paxid keys add $WALLET

If u want to restore use this command

paxid keys add $WALLET --recover

Set keys variable enviroment

WALLET_ADDRESS=$(paxid keys show $WALLET -a)
VALOPER_ADDRESS=$(paxid keys show $WALLET --bech val -a)
echo "export WALLET_ADDRESS="$WALLET_ADDRESS >> $HOME/.bash_profile
echo "export VALOPER_ADDRESS="$VALOPER_ADDRESS >> $HOME/.bash_profile
source $HOME/.bash_profile

Create Validator

If ur node has been fully synchronized, then u can create ur validator: Please Change <YOUR_MONIKER><YOUR_IDENTITY><YOUR_WEBSITE><YOUR_DETAILS> with ur own.

cd $HOME
echo "{
  \"pubkey\": {\"@type\":\"/cosmos.crypto.ed25519.PubKey\",\"key\": \"$(paxid tendermint show-validator | grep -Po '\"key\":\s*\"\K[^\"]*')\"},
  \"amount\": \"1000000upaxi\",
  \"moniker\": \"<YOUR_MONIKER>\",
  \"identity\": \"<YOUR_IDENTITY>\",
  \"website\": \"<YOUR_WEBSITE>\",
  \"security\": \"\",
  \"details\": \"<YOUR_DETAILS>\",
  \"commission-rate\": \"0.05\",
  \"commission-max-rate\": \"0.25\",
  \"commission-max-change-rate\": \"0.1\",
  \"min-self-delegation\": \"1\"
}" > validator.json

# Create a validator using the JSON configuration
paxid tx staking create-validator validator.json \
    --from $WALLET \
    --chain-id paxi-mainnet \
    --fees 15000upaxi \
    --gas-adjustment 1.3 \
    --gas auto \
    -y

Delete Node

Please backup ur wallet and important file like "priv_validator_key.json" before deleting.

sudo systemctl stop paxid
sudo systemctl disable paxid
sudo systemctl daemon-reload
sudo rm -rf /etc/systemd/system/paxid.service
sudo rm $(which paxid)
sudo rm -rf ~/go/bin/paxi/

Thanks to: Vinjan.Inc