Testnet
XRPL EVM

Installation Guide
CLI Command
Public Endpoint
Statesync
Snapshot
Explorers
Node Maps
Installation Guide
Installation Guide
CLI Command
Public Endpoint
Statesync
Snapshot
Explorers
Node Maps
How To Install Full Node XRPL EVM Sidechain Testnet
Setting up vars
Your Nodename (validator) that will shows in explorer
NODENAME=<Your_Nodename_Moniker>
Save variables to system
echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export XRPL_CHAIN_ID=xrplevm_1449000-1" >> $HOME/.bash_profile
source $HOME/.bash_profile
Update packages
sudo apt update && sudo apt upgrade -y
Install dependencies
sudo apt install curl build-essential git wget jq make gcc tmux net-tools ccze -y
Install go
if ! [ -x "$(command -v go)" ]; then
ver="1.21.3"
cd $HOME
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" >> ~/.bash_profile
source ~/.bash_profile
fi
Download and build binaries
cd $HOME
rm -rf node
git clone https://github.com/xrplevm/node.git
cd node
git checkout v7.0.0
make install
Init app
exrpd init $NODENAME --chain-id $XRPL_CHAIN_ID
Download configuration
cd $HOME
wget -O $HOME/.exrpd/config/genesis.json https://snap1.konsortech.xyz/xrpl/genesis.json
wget -O $HOME/.exrpd/config/addrbook.json https://snap1.konsortech.xyz/xrpl/addrbook.json
Disable indexing
indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.exrpd/config/config.toml
Config pruning
sed -i 's|pruning = "default"|pruning = "custom"|g' $HOME/.exrpd/config/app.toml
sed -i 's|pruning-keep-recent = "0"|pruning-keep-recent = "100"|g' $HOME/.exrpd/config/app.toml
sed -i 's|pruning-interval = "0"|pruning-interval = "19"|g' $HOME/.exrpd/config/app.toml
Set minimum gas price
sed -i 's|minimum-gas-prices =.*|minimum-gas-prices = "0axrp"|g' $HOME/.exrpd/config/app.toml
Create service
sudo tee /etc/systemd/system/exrpd.service > /dev/null << EOF
[Unit]
Description=XRPL EVM Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which exrpd) start
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
Register and start service
sudo systemctl daemon-reload
sudo systemctl enable exrpd
sudo systemctl restart exrpd && sudo journalctl -u exrpd -f -o cat
Guide for Node CLI
Create wallet
To create new wallet you can use command below. Don’t forget to save the mnemonic
exrpd keys add $WALLET
To recover your wallet using seed phrase
exrpd keys add $WALLET --recover
Show your wallet list
exrpd keys list
Save wallet info
Add wallet and validator address into variables
XRPL_WALLET_ADDRESS=$(exrpd keys show $WALLET -a)
XRPL_VALOPER_ADDRESS=$(exrpd keys show $WALLET --bech val -a)
echo 'export XRPL_WALLET_ADDRESS='${XRPL_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export XRPL_VALOPER_ADDRESS='${XRPL_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile
Create validator
Follow this guid to join testnet validator:
https://docs.xrplevm.org/pages/operators/validators/join-the-proof-of-authority
Check your validator key
[[ $(exrpd q staking validator $XRPL_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(exrpd status | jq -r .validator_info.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"
Get list of validators
exrpd q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
Usefull commands
Service management
Check logs
journalctl -fu exrpd -o cat
Start service
sudo systemctl start exrpd
Stop service
sudo systemctl stop exrpd
Restart service
sudo systemctl restart exrpd
Node info
Synchronization info
exrpd status 2>&1 | jq .sync_info
Validator info
exrpd status 2>&1 | jq .validator_info
Node info
exrpd status 2>&1 | jq .node_info
Show node id
exrpd tendermint show-node-id
Wallet operations
List of wallets
exrpd keys list
Recover wallet
exrpd keys add $WALLET --recover
Delete wallet
exrpd keys delete $WALLET
Get wallet balance
exrpd query bank balances $XRPL_WALLET_ADDRESS
Transfer funds
exrpd tx bank send $XRPL_WALLET_ADDRESS <TO_XRPL_WALLET_ADDRESS>
Voting
exrpd tx gov vote 1 yes --from $WALLET --chain-id=$XRPL_CHAIN_ID
Staking, Delegation and Rewards
Delegate stake
exrpd tx staking delegate $XRPL_VALOPER_ADDRESS --from=$WALLET --chain-id=$XRPL_CHAIN_ID --gas=auto
Redelegate stake from validator to another validator
exrpd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> --from=$WALLET --chain-id=$XRPL_CHAIN_ID --gas=auto
Withdraw all rewards
exrpd tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$XRPL_CHAIN_ID --gas=auto
Withdraw rewards with commision
exrpd tx distribution withdraw-rewards $XRPL_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$XRPL_CHAIN_ID
Validator management
Edit validator
exrpd tx staking edit-validator \
--moniker=$NODENAME \
--identity=<your_keybase_id> \
--website="<your_website>" \
--details="<your_validator_description>" \
--chain-id=$XRPL_CHAIN_ID \
--from=$WALLET
Unjail validator
exrpd tx slashing unjail \
--broadcast-mode=block \
--from=$WALLET \
--chain-id=$XRPL_CHAIN_ID \
--gas=auto
Custom Explorers
https://testnet-explorer.konsortech.xyz/xrplevm
Public Endpoint
RPC
https://testnet-xrpl-rpc.konsortech.xyz
EVM RPC
Network Name : XRPL EVM Sidechain Testnet
RPC URL : https://testnet-xrpl-evm.konsortech.xyz
Chain ID : 1449000
Curreny Symbol : XRP
API
https://testnet-xrpl-api.konsortech.xyz
gRPC
testnet-xrpl.konsortech.xyz:16090
Peers and Seeds
Peers
d09fbf1e3e6572a780bc50f21c21aede10f9fd5c@testnet-xrpl.konsortech.xyz:16656
Seeds
574dc3559318dd5b89ff53594e27ed68964c65fa@testnet-seed.konsortech.xyz:16165
Genesis & Address Book
Address Book
https://snap1.konsortech.xyz/xrpl/addrbook.json
Genesis
https://snap1.konsortech.xyz/xrpl/genesis.json
State Sync
sudo systemctl stop exrpd
cp $HOME/.exrpd/data/priv_validator_state.json $HOME/.exrpd/priv_validator_state.json.backup
exrpd tendermint unsafe-reset-all --home $HOME/.exrpd --keep-addr-book
SNAP_RPC="https://testnet-xrpl-rpc.konsortech.xyz:443"
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH
peers="d09fbf1e3e6572a780bc50f21c21aede10f9fd5c@testnet-xrpl.konsortech.xyz:16656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.exrpd/config/config.toml
sed -i -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.exrpd/config/config.toml
mv $HOME/.exrpd/priv_validator_state.json.backup $HOME/.exrpd/data/priv_validator_state.json
sudo systemctl restart exrpd
sudo journalctl -u exrpd -f --no-hostname -o cat
Snapshot
sudo systemctl stop exrpd
cp $HOME/.exrpd/data/priv_validator_state.json $HOME/.exrpd/priv_validator_state.json.backup
rm -rf $HOME/.exrpd/data
SNAP_NAME=$(curl -s https://snap1.konsortech.xyz/xrpl/ | egrep -o ">xrpl-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snap1.konsortech.xyz/xrpl/${SNAP_NAME} | lz4 -dc - | tar -xf - -C $HOME/.exrpd
mv $HOME/.exrpd/priv_validator_state.json.backup $HOME/.exrpd/data/priv_validator_state.json
sudo systemctl restart exrpd && journalctl -u exrpd -f --no-hostname -o cat