Welcome Zstake Service
XRPL EVM
Validator
The XRPL EVM Sidechain enables Ethereum smart contracts and ERC-20 tokens to interact with the XRP Ledger, combining the best of both ecosystems. Whether you are a user, developer, operator, or interested in bridging assets, this documentation will guide you.
Component | Storage KV |
---|---|
Memory | 32 GB RAM |
CPU | 8 cores |
Storage | 1TB Cloud Storage (AWS), SSD or NVMe |
Bandwidth | 100Mbp |
⌨️
1sudo apt update && sudo apt upgrade -y
2sudo apt install make curl git wget htop tmux build-essential jq make lz4 gcc unzip -y
⌨️
1echo "export WALLET="wallet"" >> $HOME/.bash_profile
2echo "export MONIKER="Zstake"" >> $HOME/.bash_profile
3echo "export XRPL_CHAIN_ID="xrplevm_1449000-1"" >> $HOME/.bash_profile
4echo "export XRPL_PORT="50"" >> $HOME/.bash_profile
5source $HOME/.bash_profile
⌨️
1cd $HOME
2git clone https://github.com/xrplevm/node
3cd node
4git checkout v6.0.0
5make install
6exrpd version
⌨️
1export WASMVM_VERSION=v2.1.2
2export Exrpd_PATH=$HOME/.exrpd/lib
3mkdir -p $Exrpd_PAT
4wget "https://github.com/CosmWasm/wasmvm/releases/download/$WASMVM_VERSION/libwasmvm.$(uname -m).so" -O "$Exrpd_PATH/libwasmvm.$(uname -m).so"
5echo "export Exrpd_PATH=$HOME/.exrpd/lib:$Exrpd_PATH" >> ~/.bashrc
6source ~/.bashrc
⌨️
1exrpd config set client node "tcp://localhost:50657"
2exrpd config set client keyring-backend os
3exrpd config set client chain-id xrplevm_1449000-1
4exrpd init "Zstake" --chain-id xrplevm_1449000-1
⌨️
1SEEDS=""
2PEERS=972f58b459debdbaa92fd8479d89128b653d7eb8@65.21.29.250:3640,f8452f28064e9cf9ef1df0c055ac0280576143b6@65.108.69.56:26696,b96d3e221688108e40706d51cca59d80a60f67e9@65.21.200.7:3640,1881f3f71603b7eba91b8b84148834c7322122be@45.77.195.1:26656,6c5b34685a0c1956bde097914e42bc537f5ca5c7@79.137.70.143:26646
3sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.exrpd/config/config.toml
⌨️
1sed -i -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*seeds *=.*/seeds = \"$SEEDS\"/}" \
2 -e "/^\[p2p\]/,/^\[/{s/^[[:space:]]*persistent_peers *=.*/persistent_peers = \"$PEERS\"/}" $HOME/.exrpd/config/config.toml
⌨️
1wget -O $HOME/.exrpd/config/genesis.json https://snapshots.polkachu.com/testnet-genesis/xrp/genesis.json
2wget -O $HOME/.exrpd/config/addrbook.json https://snapshots.polkachu.com/testnet-addrbook/xrp/addrbook.json
⌨️
1sed -i.bak -e "s%:1317%:${XRPL_PORT}317%g;
2s%:8080%:${XRPL_PORT}080%g;
3s%:9090%:${XRPL_PORT}090%g;
4s%:9091%:${XRPL_PORT}091%g;
5s%:8545%:${XRPL_PORT}545%g;
6s%:8546%:${XRPL_PORT}546%g;
7s%:6065%:${XRPL_PORT}065%g" $HOME/.exrpd/config/app.toml
⌨️
1sed -i.bak -e "s%:26658%:${XRPL_PORT}658%g;
2s%:26657%:${XRPL_PORT}657%g;
3s%:6060%:${XRPL_PORT}060%g;
4s%:26656%:${XRPL_PORT}656%g;
5s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${XRPL_PORT}656\"%;
6s%:26660%:${XRPL_PORT}660%g" $HOME/.exrpd/config/config.toml
⌨️
1sed -i -e "s/^pruning *=.*/pruning = \"custom\"/" $HOME/.exrpd/config/app.toml
2sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"100\"/" $HOME/.exrpd/config/app.toml
3sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"19\"/" $HOME/.exrpd/config/app.toml
⌨️
1sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0axrp"|g' $HOME/.exrpd/config/app.toml
2sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.exrpd/config/config.toml
3sed -i -e "s/^indexer *=.*/indexer = \"null\"/" $HOME/.exrpd/config/config.toml
⌨️
1sudo tee /etc/systemd/system/exrpd.service > /dev/null <<EOF
2[Unit]
3Description=XRPL node
4After=network-online.target
5[Service]
6User=$USER
7WorkingDirectory=$HOME/.exrpd
8ExecStart=$(which exrpd) start --home $HOME/.exrpd
9Restart=on-failure
10RestartSec=5
11LimitNOFILE=65535
12[Install]
13WantedBy=multi-user.target
14EOF
⌨️
1sudo systemctl daemon-reload && sudo systemctl enable exrpd && sudo systemctl restart exrpd
⌨️
1sudo journalctl -u exrpd -fo cat
Add New Wallet
1exrpd keys add $WALLET
Restore executing wallet
1exrpd keys add $WALLET --recover
Check Balance
1exrpd q bank balances $WALLET
View EVM Private Key
1exrpd keys unsafe-export-eth-key $WALLET
Delegate Self
1exrpd tx staking delegate $(exrpd keys show $WALLET --bech val -a) 1000000uxrp --from $WALLET --chain-id exrp_1440002-1 --gas auto --gas-adjustment 1.5 -y
⌨️
1exrpd tx staking create-validator \
2--amount 1000000uxrp \
3--from $WALLET \
4--commission-rate 0.1 \
5--commission-max-rate 0.2 \
6--commission-max-change-rate 0.01 \
7--min-self-delegation 1 \
8--pubkey $(exrpd tendermint show-validator) \
9--moniker "$MONIKER" \
10--identity "" \
11--details "Exrp_node_by_Stv" \
12--chain-id exrp_1440002-1 \
13--gas auto --gas-adjustment 1.5 \
14-y
Edit Validator
1exrpd tx staking edit-validator \
2--new-moniker "YOUR_MONIKER_NAME" \
3--identity "YOUR_KEYBASE_ID" \
4--details "YOUR_DETAILS" \
5--website "YOUR_WEBSITE_URL" \
6--security-contact "YOUR_CONTACT"
7--from $WALLET \
8--chain-id exrp_1440002-1 \
9--gas auto --gas-adjustment 1.5 \
10-y
Validator info
1exrpd q staking validator $(exrpd keys show wallet --bech val -a)
2exrpd tendermint show-validator
Validator Details
1exrpd q staking validator $(exrpd keys show $WALLET --bech val -a)