--- html: join-evm-sidechain-devnet.html parent: evm-sidechains.html blurb: Learn how to join the XRP Ledger EVM Sidechain Devnet. labels: - Development, Interoperability status: not_enabled --- # Join the XRP Ledger EVM Sidechain Devnet This tutorial walks you through the steps to join the existing **XRP Ledger EVM Sidechain Devnet**. For ease of use, create an alias, `exprd`, to run all commands inside your Docker container. ## Pre-requisites Before proceeding to initialize the node, ensure that the following pre-requisites are installed and running: * Docker 19+ * Create an alias to run all commands in this tutorial inside a Docker container: ```bash alias exrpd="docker run -it --rm -v ~/.exrpd:/root/.exrpd peersyst/xrp-evm-client:latest exrpd" ``` ## Initialize Node The first task is to initialize the node, which creates the necessary validator and node configuration files. 1. Initialize the chain parameters using the following command: ```bash exrpd config chain-id exrp_1440001-1 ``` 2. Create or add a key to your node. For this tutorial, we use the `test` keyring: ```bash exrpd keys add --keyring-backend test ``` Note the `key_name` you enter as you need to reference it in subsequent steps. **Note** For more information on a more secure setup for your validator, refer to [cosmos-sdk keys and keyrings](https://docs.cosmos.network/v0.46/run-node/keyring.html) and [validator security](evm-sidechain-validator-security.html). 3. Initialize the node using the following command: ```bash exrpd init --chain-id exrp_1440001-1 ``` Monikers can contain only ASCII characters. Using Unicode characters renders your node unreachable. All these commands create your `~/.exrpd` (i.e `$HOME`) directory with subfolders `config/` and `data/`. In the `config` directory, the most important files for configuration are `app.toml` and `config.toml`. ## Genesis & Seeds 1. Copy the Genesis File. Download the `genesis.json` file from here and copy it to the `config` directory: `~/.exrpd/config/genesis.json`. This is a genesis file with the chain-id and genesis accounts balances. ```bash wget [https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/genesis.json](https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/genesis.json) ~/.exrpd/config/ ``` Verify the genesis configuration file: ```bash exrpd validate-genesis ``` 2. Add Persistent Peer Nodes Set the [`persistent_peer`](https://docs.tendermint.com/master/tendermint-core/using-tendermint.html#persistent-peer)s field in `~/.exrpd/config/config.toml` to specify peers with which your node maintains persistent connections. You can retrieve them from the list of available peers on the archive repo ([https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/peers.txt](https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/peers.txt)). To get a list of entries from the `peers.txt` file in the `PEERS` variable, run the following command: ```bash PEERS=`curl -sL https://raw.githubusercontent.com/Peersyst/xrp-evm-archive/main/devnet/peers.txt | sort -R | head -n 10 | awk '{print $1}' | paste -s -d, -` ``` Use `sed` to include them in the configuration. You can also add them manually: ```bash sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.exrpd/config/config.toml ``` ## Run a Devnet Validator Node Run the Devnet validator node using following command: ```bash exrpd tx staking create-validator \ --amount=1000000000000axrp \ --pubkey=$(exrpd tendermint show-validator) \ --moniker="" \ --chain-id= \ --commission-rate="0.05" \ --commission-max-rate="0.20" \ --commission-max-change-rate="0.01" \ --min-self-delegation="1000000" \ --gas="auto" \ --gas-prices="0.025axrp" \ --from= ``` **Note** For more information on running a validator note, see [Run a validator](evm-sidechain-run-a-validator-node.html) ## Start the Node Start the node. ```bash exrpd start ``` Once enough voting power (+2/3) from the genesis validators is up-and-running, the node starts producing blocks.