AviaOne logo

ELYS (Chain ID : elystestnet-1)
by AviaDoc 🟢

Logo Elys

ELYS

Hybrid AMM DEX featuring native USDC and multi-asset-index LPs, seamless onboarding for non-crypto users, margin & multi-chain bridge. Powered by Cosmos SDK


Learn more about Elys :Go to the AviaOne's website about Elys

Public endpoints

Aviaone endpoints

STEP 1 Update your server to get the latest version
sudo apt update && sudo apt upgrade -y
STEP 2 Install packages
sudo apt install git curl wget tar lz4 unzip jq build-essential pkg-config clang bsdmainutils make ncdu -y
STEP 3 Install Go

Go is a programming language allowing each node of the Cosmos ecosystem to operate.
Go is a compiled and concurrent programming language inspired by C and Pascal.
This language was developed by Google from an initial concept by Robert Griesemer, Rob Pike and Ken Thompson.

cd $HOME
version="1.21.6"
wget "https://golang.org/dl/go$version.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$version.linux-amd64.tar.gz"
rm "go$version.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile

Check GO version, it must return : go version go1.21.6 linux/amd64

go version
Top page
STEP 4 Install App and build

Here we will install the node for Elys with this binary version : v0.39.0

Please be sure to install the latest version one last minute version can be published ! Please check by yourself here...
cd $HOME
git clone https://github.com/elys-network/elys.git 
cd elys 
git checkout v0.39.0 
make install

Check if the binary "elysd" version v0.39.0 has been correctly installed

elysd version
Top page
STEP 5 Set variables

What does moniker mean?
A personal name or nickname. This name (moniker) will appear in the blockchain explorer.

SPACE in your moniker will create errors

ELYS_MONIKER="Replace_AVIAONE_by_your_name"
Top page
STEP 6 Initialize the node (part 1)

We are now ready to initialze the node


elysd init $ELYS_MONIKER --chain-id elystestnet-1
Top page
STEP 7 Initialize the node (part 2)

Set minimum gas price

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0uelys\"|" $HOME/.elys/config/app.toml

Download genesis

wget -O $HOME/.elys/config/genesis.json "https://services.elystestnet-1.elys.aviaone.com/genesis.json"

Download addrbook

wget -O $HOME/.elys/config/addrbook.json "https://services.elystestnet-1.elys.aviaone.com/addrbook.json"

Add Seeds

SEEDS="258f523c96efde50d5fe0a9faeea8a3e83be22ca@seed.elystestnet-1.elys.aviaone.com:20273"
sed -i -e "s|^seeds *=.*|seeds = \"$SEEDS\"|" $HOME/.elys/config/config.toml

Change ports

Advanced users ONLY !

Clear Data

elysd tendermint unsafe-reset-all $HOME/.elys --keep-addr-book
Top page
STEP 8 Create service to START and STOP (/etc/systemd/system)

This will let you start and stop your node with /etc/systemd/system

sudo tee /etc/systemd/system/elysd.service > /dev/null <<EOF
[Unit] 
Description=ELYS\n 
After=network.target 
[Service] 
Type=simple
User=$USER
ExecStart=$(which elysd) start 
Restart=on-failure RestartSec=10 LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF
sudo systemctl enable elysd 
sudo systemctl daemon-reload

This command will start your node

Do not use it now if you are going to use below : Snapshot | State Sync (because your node shouldn't start now... but after the Snapshot | State Sync)

sudo systemctl restart elysd && journalctl -u elysd -f --no-hostname -o cat
Top page
STEP 9 SNAPSHOT SNAPSHOT (After do no use STATE SYNC if you get synced, this is make no sense !)
How to use ?
The best way is just copy and past this code below in your terminal and that's it ! Your snapshot will be done.
Generic placeholder image
SNAPSHOT Elys (Chain ID : elystestnet-1)

(updated every 24 hours)

File name : https://services.elystestnet-1.elys.aviaone.com/elystestnet-1_2024-07-21.tar.gz

Download this file

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
wget -c https://services.elystestnet-1.elys.aviaone.com/elystestnet-1_2024-07-21.tar.gz -O - | tar -xz -C $HOME/.elys
mv $HOME/.elys/priv_validator_state.json.backup $HOME/.elys/data/priv_validator_state.json sudo systemctl start elysd && sudo journalctl -u elysd -f --no-hostname -o cat
Top page
STEP 9 STATE SYNC STATE SYNC (After do not use SNAPSHOT if you get synced, this is make no sense !)
How to use ?
The best way is just copy and past this code below in your terminal and that's it ! Your StateSync will be done.

Please be sure to use the latest binary version : v0.39.0

Optional to clean your previous State Sync
sed -i "/\[statesync\]/, /^enable =/ s/=.*/= false/;\
/^rpc_servers =/ s|=.*|= \"\"|;\
/^trust_height =/ s/=.*/= 0/;\
/^trust_hash =/ s/=.*/= \"\"/" $HOME/.elys/config/config.toml						 
sudo systemctl stop elysd 
SNAP_RPC="https://rpc.elystestnet-1.elys.aviaone.com: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)
Check if you get a positive return
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH
Copy and past !
sed -i "/\[statesync\]/, /^enable =/ s/=.*/= true/;\
/^rpc_servers =/ s|=.*|= \"$SNAP_RPC,$SNAP_RPC\"|;\
/^trust_height =/ s/=.*/= $BLOCK_HEIGHT/;\
/^trust_hash =/ s/=.*/= \"$TRUST_HASH\"/" $HOME/.elys/config/config.toml
Reset all data
sudo systemctl stop elysd && elysd tendermint unsafe-reset-all --home $HOME/.elys --keep-addr-book
Start Sync
sudo systemctl start elysd && journalctl -u elysd -f --no-hostname -o cat
Watch your logs and be patient it can take 5 minutes.... !!

STEP 10 Now get synced and check 8723361

With the command used just above, your node just started, now BE PATIENT your node has started to work and will need time to get synced on the last block.

First check your logs and have a look at what's going on !

You should see some output like this which confirm that your node is indexing blocks

### indexed block exents height=8723361 module=txindex

How to check if your node is already fully synced? ?

elysd status 2>&1 | jq .SyncInfo

The current block number is :8723361 and the last block app hash is :IVcwdY7qR5OAamQwAg1ZhO4lo2de9PMJOQbmQavo4Is=

true mean syncing on the way, and true is NOT SYNCED

You will see an output with :

"catching_up": false

If you get true instead of false, please wait... it's not done yet, it's on the way...

true mean syncing on the way, and true is NOT SYNCED

The current block number is :8723361 and the last block app hash is :IVcwdY7qR5OAamQwAg1ZhO4lo2de9PMJOQbmQavo4Is=

Top page
STEP 11 Create or recover a wallet

Why it's better to get synced before to create or recover a wallet ?
Because when your wallet will be created or recovered, if you are not synced, you will not be able to check the balance !

Create Wallet

elysd keys add name_wallet 

Recover Wallet

elysd keys add name_wallet --recover 
Top page
STEP 12 Create your validator (NEVER DO IT if you are not already synced with the last block)

Create your validator if you are not synced, you will get some troubles...

elysd tx staking create-validator \
 --amount=1000000uelys \
 --pubkey=$(elysd tendermint show-validator) \
 --moniker="YOUR_NICKNAME" \
 --chain-id=elystestnet-1 \
 --commission-rate=0.05 \
 --commission-max-rate=0.2 \
 --commission-max-change-rate=0.02 \
 --min-self-delegation=1 \
 --website="https://your-website.com" \
 --identity="keyBASE_id" \
 --details="This is will be display in the blockchain explorer. Write here something about you"\
 --gas-prices=0.1uelys \
 --gas-adjustment=1.5 \
 --gas=auto \
 --from=WRITE_HERE_YOUR_WALLET_ADDRESS
Top page
LAST STEP EVERYTHING IS DONE !!!

Congratulations, your made all the steps above necessary to setup the node for ELYS (chain-id=elystestnet-1) with success and your node is already online now.

Top page
Find here the most useful commands for Elys (--chain-id elystestnet-1)
elysd q bank balances YOUR_WALLET_NUMBER

Must return false to get synced

elysd status 2>&1 | jq .SyncInfo
journalctl -u elysd -f --no-hostname -o cat

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx gov vote 14 yes --from YOUR_WALLET_NUMBER --chain-id elystestnet-1

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx slashing unjail --chain-id=elystestnet-1 --from YOUR_WALLET_NUMBER -y
sudo systemctl restart elysd && journalctl -u elysd -f --no-hostname -o cat
elysd q bank balances YOUR_WALLET_NUMBER
elysd keys add YOUR_WALLER_NAME
elysd keys add YOUR_WALLET_NUMBER --recover
elysd keys list
elysd keys delete YOUR_WALLET_NUMBER

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx gov vote 14 yes --from YOUR_WALLET_NUMBER --chain-id elystestnet-1

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx gov vote 14 no --from YOUR_WALLET_NUMBER --chain-id elystestnet-1

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx gov vote 14 no_with_veto --from YOUR_WALLET_NUMBER --chain-id elystestnet-1

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx gov vote 14 abstain --from YOUR_WALLET_NUMBER --chain-id elystestnet-1

(In some case that's necessary to add "fees" or --gas=auto)

elysd query gov proposals

(In some case that's necessary to add "fees" or --gas=auto)

elysd query gov proposal 14

(In some case that's necessary to adjust : "deposit" or "fees" or --gas=auto)

elysd tx gov submit-proposal \
--from YOUR_WALLET_NUMBER \
--chain-id elystestnet-1 \
--deposit=100000000uelys \
--type="Text" \
--title="Write here the title of your proposal for Elys" \
--description="Describe here with details your proposal for Elys" \
--fees=10000uelys \
--gas=auto \
-y 

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx slashing unjail --chain-id=elystestnet-1 --from YOUR_WALLET_NUMBER -y
elysd keys show YOUR_WALLET_NUMBER --bech val -a
elysd query staking validator YOUR_VALIDATOR_VALOPER --output json 
elysd q staking validator $(elysd keys show YOUR_WALLET_NUMBER --bech val -a)
elysd query slashing signing-info $(elysd tendermint show-validator)
elysd status 2>&1 | jq .ValidatorInfo
elysd 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
elysd q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl
elysd tx staking edit-validator \
--new-moniker="Replace AVIAONE by your name" \
--identity=YOUR_KEYBASE_ID \
--details="This is will be display in the blockchain explorer. Write here something about you" \
--chain-id=elystestnet-1 \
--commission-rate=0.1 \
--from=YOUR_WALLET_NUMBER \
--gas-prices=0.1uelys \
--gas-adjustment=1.5 \
--gas=auto \
-y 

(NEVER DO IT if you are not already synced with the latest block)

elysd tx staking create-validator \
--amount=1000000uelys \
--pubkey=$(elystestnet-1 tendermint show-validator) \
--moniker="Replace AVIAONE by your name" \
--identity=YOUR_KEYBASE_ID \
--details="This is will be display in the blockchain explorer. Write here something about you" \
--chain-id=elystestnet-1 \
--commission-rate=0.10 \
--commission-max-rate=0.20 \
--commission-max-change-rate=0.01 \
--min-self-delegation=1 \
--from=YOUR_WALLET_NUMBER \
--gas-prices=0.1uelys \
--gas-adjustment=1.5 \
--gas=auto \
-y 

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx bank send WALLET_SENDER WALLET_RECEIVER 1000000uelys --chain-id=elystestnet-1

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx staking delegate WALLET_NUMBER_WHERE_YOU_WANT_DELEGATE 1000000uelys --from YOUR_WALLET_NUMBER --chain-id=elystestnet-1

(In some case that's necessary to add "fees" or --gas=auto)

elysd tx staking delegate YOUR_VALIDATOR_NUMBER 1000000uelys --from YOUR_WALLET_NUMBER --chain-id=elystestnet-1
elysd tx distribution withdraw-all-rewards --from YOUR_WALLET_NUMBER
elysd tx distribution withdraw-rewards YOUR_VALIDATOR_NUMBER --from YOUR_WALLET_NUMBER --commission
Under contruction
Under contruction
Under contruction
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0uelys\"/" $HOME/.elys/config/app.toml
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.elys/config/config.toml
sed -i -e 's|^indexer *=.*|indexer = "kv"|' $HOME/.elys/config/config.toml
echo $(elysd tendermint show-node-id)'@'$(curl -s ifconfig.me)':'$(cat $HOME/.elys/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
curl -sS https://rpc.elystestnet-1.elys.aviaone.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'

YOU ARE GOING TO DELETE EVERYTHING WITHOUT ANY POSSIBILITY TO RECOVER, be sure that's really you are looking for...

BEFORE BE SURE TO SAVE $HOME/.elys/config/priv_validator_key.json

This file $HOME/.elys/config/priv_validator_key.json will let you create a new node with the same validator

cd $HOME
sudo systemctl stop elysd 
sudo systemctl disable elysd 
sudo rm /etc/systemd/system/elysd.service 
sudo systemctl daemon-reload 
rm -f $(which elysd) 
rm -rf $HOME/.elys 
rm -rf $HOME/elys
Get all fresh live peers available with the chain elystestnet-1
curl -sS https://rpc.elystestnet-1.elys.aviaone.com/net_info | jq -r '.result.peers[] | "\(.node_info.id)@\(.remote_ip):\(.node_info.listen_addr)"' | awk -F ':' '{print $1":"$(NF)}'
Try these peers it should work !
PEERS="15263a87a09f90ba71d35cbddf17ff5178e9b133@65.21.225.10:40656,a346d8325a9c3cd40e32236eb6de031d1a2d895e@95.217.107.96:26156,eea369326c859c0167e1085dd7d540c8c8e308fb@95.217.89.202:53656,42d3a20613e443087ae5aec1f1e56c0a12cf8455@135.181.60.184:46656,d986a31287d999efa5f7962d363cec25de6c45e0@65.21.134.243:26675,6b47fa2a93928cbe736853849887f111668d20a7@65.109.175.192:26656,3a69f577b14bb5e3829489881cc80841b785e092@116.203.129.0:26656,fed5ba77a69a4e75f44588f794999e9ca0c6b440@45.67.217.22:21956,136f2c639937adc6a06fe9b004da19087ddba466@88.198.242.163:26656,d907ce9285951a2a063789df2f6bd4cc86b33d53@142.132.155.178:16656,b7b044df4dc2e709972b79c04d9eb7d921e3b45f@116.202.227.117:53656,09bf7359f3d2b8ef05d328d89019204d6627f4a4@94.16.117.238:24656,fc5a323a8c57393e84902e832a75f15bd0b898b2@84.46.242.124:53656,fec2dfd0a7e0e174e90755eb60c750f5ccc43b40@199.175.98.115:53656,147683d8ae2c34281fc73d6a9f6cedd5f28a15ed@185.216.203.176:21956,a81a21bcee82aedbf2f731b7ba26ee8dca2c61d6@54.38.193.93:26676,ef5792644c527d083665d00d4e3cb98b316a060b@51.159.210.149:26656,b311e76cf8f66f52d144e1640471d49845c71ff9@108.175.1.36:21956,79416b9dc2114b8246bf73aab6540bc55669a533@154.53.57.227:26656,86987eeff225699e67a6543de3622b8a986cce28@91.183.62.162:26656,72830131de8c4d80cad5e69326d7dc570be4dcf8@65.109.28.226:17656,0ea4e8352215aad85ff33a20a3bf4acf49070662@64.226.117.34:21956,01aaf7bce61622ab4f2f6cedbc57fa3aa5d3cf3c@167.235.1.101:26676,e4b07652c318b08357e5796431982169789ce2c5@159.65.32.10:21956,ae22b82b1dc34fa0b1a64854168692310f562136@198.27.74.140:26656,501767323c5223bfe138d916189cb5427f7e3931@104.193.254.42:27656,a42cc9d7134949ce2fa703c6e341a0bd9cc1984c@65.108.206.74:16656,1092d9a9508053d6936661ebc5708d0d8d360e3e@193.26.159.34:10656,701a382e03978c54f1176145460125516b6a4672@3.144.113.232:26656"
sed -i -e "s|^persistent_peers *=.*|persistent_peers = \"$PEERS\"|" $HOME/.elys/config/config.toml
SEEDS="258f523c96efde50d5fe0a9faeea8a3e83be22ca@seed.elystestnet-1.elys.aviaone.com:20273"
sed -i -e "s|^seeds *=.*|seeds = \"$SEEDS\"|" $HOME/.elys/config/config.toml

(updated every 4 hours)

curl -Ls https://services.elystestnet-1.elys.aviaone.com/addrbook.json > $HOME/.elys/config/addrbook.json

(updated every 4 hours)

curl -Ls https://services.elystestnet-1.elys.aviaone.com/genesis.json > $HOME/.elys/config/genesis.json
SNAPSHOT Elys (Chain ID : elystestnet-1)
SNAPSHOT Elys (Chain ID : elystestnet-1)

(updated every 24 hours)

File name : https://services.elystestnet-1.elys.aviaone.com/elystestnet-1_2024-07-21.tar.gz


Please be sure to use the latest binary version.

One last minute version can be published ! Please check by yourself here... and compare with your node elysd version

How to use ? The best way is just copy and past this code below in your terminal and that's it ! Your snapshot will be done.
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 wget -c https://services.elystestnet-1.elys.aviaone.com/elystestnet-1_2024-07-21.tar.gz -O - | tar -xz -C $HOME/.elys
mv $HOME/.elys/priv_validator_state.json.backup $HOME/.elys/data/priv_validator_state.json sudo systemctl start elysd && sudo journalctl -u elysd -f --no-hostname -o cat

Please be sure to use the latest binary version : v0.39.0

How to use ? The best way is just copy and past this code below in your terminal and that's it !
Optional to clean your previous State Sync
Recommanded when you already get Sync to avoid trouble when you will restart your node next time.
sed -i "/\[statesync\]/, /^enable =/ s/=.*/= false/;\
/^rpc_servers =/ s|=.*|= \"\"|;\
/^trust_height =/ s/=.*/= 0/;\
/^trust_hash =/ s/=.*/= \"\"/" $HOME/.elys/config/config.toml
Start here the process for State Sync
sudo systemctl stop elysd 
SNAP_RPC="https://rpc.elystestnet-1.elys.aviaone.com: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)
Check if you get a positive return
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH
Copy and past !
sed -i "/\[statesync\]/, /^enable =/ s/=.*/= true/;\
/^rpc_servers =/ s|=.*|= \"$SNAP_RPC,$SNAP_RPC\"|;\
/^trust_height =/ s/=.*/= $BLOCK_HEIGHT/;\
/^trust_hash =/ s/=.*/= \"$TRUST_HASH\"/" $HOME/.elys/config/config.toml
Reset all data
sudo systemctl stop elysd && elysd tendermint unsafe-reset-all --home $HOME/.elys --keep-addr-book
Now we must restart the node Elys to initiate synchronization with the chain elystestnet-1
sudo systemctl start elysd && journalctl -u elysd -f --no-hostname -o cat
Watch your logs and be patient it can take 5 minutes.... !!
How to use ? You are looking for an other way than the command line to connect your wallet with Elys (Chain ID : elystestnet-1)?
Logo Keplr
ADD in your Keplr Wallet : Elys (Chain ID : elystestnet-1)

That's an easy process, just click and follow the instructions...it will be done in 10 seconds !

Our platform offers a secure link that allows you to effortlessly connect your KEPLR wallet. The process is quick and easy. Adding a new chain to your wallet is a standard procedure that doesn't involve any transaction. It simply requires your approval. To get started, click on the button below to add this chain to your wallet and start interacting with the blockchain.