> For the complete documentation index, see [llms.txt](https://surftest.gitbook.io/axelar-wiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://surftest.gitbook.io/axelar-wiki/english/axelar-installarion/full-setup-testnet.md).

# FULL Setup testnet

## Quick sync

В In this section of the installation, we will ensure that our node will be synchronized.

{% hint style="info" %}
Current software versions can be found here <https://docs.axelar.dev/releases/testnet>

Info how to update testnet <https://docs.axelar.dev/releases/testnet/upgrade>

Info how to update mainnet <https://docs.axelar.dev/releases/mainnet/upgrade>
{% endhint %}

### Creating a password for the keyring file

Axelar keyring file will be encrypted with this password. The password must be at least 8 characters.

Below we will need this password to run the script. We will insert it into the command to run the script through a `KEYRING_PASSWORD` variable.

### Installing Axelar

Copying to our server the [`axelerate-community`](https://github.com/axelarnetwork/axelarate-community) repository:

```
git clone https://github.com/axelarnetwork/axelarate-community.git
cd axelarate-community
```

Before running the script, increase the system permission by the number of open files with the command:

```
ulimit -n 16384
```

Otherwise, during installation, we will see the following error:

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2FvQ4maR9pMoL9k11JfVqC%2Fimage.png?alt=media&amp;token=5bc670f4-2efe-4d77-a03e-bc217e0e76fd" alt="" data-size="original">

Run the installation script. In the script, instead of `my-secret-password` we need to insert the password that we came up with for keyring:

```
KEYRING_PASSWORD='my-secret-password' ./scripts/node.sh -a v0.13.6
```

We get the output:

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2FTZnqCkqtj8MKQgp2AtWL%2Fimage.png?alt=media&amp;token=cd34d26e-184a-4c3e-b8e7-21c6941f43c3" alt="" data-size="original">

Ready! Axelar node is down and started syncing. It was installed in the `~/.axelar_testnet` folder.

### Keys Backup  <a href="#backup-your-secret-keys" id="backup-your-secret-keys"></a>

**Backup seed phrase (mnemonic phrase).** \
Download and DELETE it. When launched, the script prepared a ready-made backup file for us. Download it to your computer via [WinSCP](https://winscp.net/download/WinSCP-5.19.5-Setup.exe) (for Windows), Cyberduck (for MacOS), FileZilla or another FTP utility. And delete from the server! The file is in the folder:

```
~/.axelar_testnet/validator.txt
```

**Backup Tendermint consensus secret key (it is needed to restart the node).**[​](https://docs.axelar.dev/roles/node/join#backup-your-secret-keys)\
Download but DO NOT delete from the server! The file is located at:

```
~/.axelar_testnet/.core/config/priv_validator_key.json
```

### View Logs

To view the logs, you need to enter the command:

```
tail -f ~/.axelar_testnet/logs/axelard.log
```

It will be seen that the blockchain is actively loaded. Log example:

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2F0AYIfP43vceLJ5ZObfii%2Fimage.png?alt=media&amp;token=8286063c-67b2-4346-966a-5f4dc30d782c" alt="" data-size="original">

### Axelar Synchronization by Snapshot

Synchronization from scratch is too long fun. So let's download the latest Snapshot of the Axelar blockchain. There are two verified resources:

1. [quicksync.io](https://quicksync.io/networks/axelar.html)
2. [staketab.com](https://cosmos-snap.staketab.com/axelar/) | [инструкции](https://github.com/staketab/nginx-cosmos-snap/blob/main/docs/axelar.md)

**Instruction:**

Let's stop the node:

```
kill -9 $(pgrep -f "axelard start")
```

Install the necessary programs:

```
sudo apt-get update -y
sudo apt-get install wget liblz4-tool aria2 -y
```

Let's delete the data directory into which the blockchain managed to load, create an empty one and go into it:

```
rm -r ~/.axelar_testnet/.core/data
mkdir -p ~/.axelar_testnet/.core/data
cd ~/.axelar_testnet/.core/data
```

Let's upload a snapshot.

```
wget -O - https://cosmos-snap.staketab.com/axelar/axelar-testnet-lisbon-3_2022-02-20.tar | tar xf -
```

In our case, we are uploading uncompressed information, so we will not unpack it.

Let's resume the work of the Axelar node. Let me remind you that instead of my-secret-password you need to insert your keyring password:

```
cd ~/axelarate-community
ulimit -n 16384
KEYRING_PASSWORD='my-secret-password' ./scripts/node.sh -n testnet
```

Let's check if everything is in order.\
Logs:\
`tail -f ~/.axelar_testnet/logs/axelard.log`

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2FkvG2NtYXO21e5z3gHDrL%2Fimage.png?alt=media&amp;token=caf696b4-372d-4f66-9c11-e37573150161" alt="" data-size="original">

If the blockchain is loading, then you need to wait until the synchronization catches up with the last block of the network. Let's check:

```
curl localhost:26657/status | jq '.result.sync_info'
```

We need to look at the `catching_up` :

* `true`: the node is still downloading the blockchain.
* `false`: The node has finished downloading the blockchain. And loads actual blocks.

Sample output:

![](https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2Fyf2TY4Rb4GRK08ufD2Ne%2Fimage.png?alt=media\&token=e27a9971-0802-4df8-baf8-52ad3fa808a5)

Ready! The node is synchronized. Now you can request test tokens and create a validator.

### Get AXL tokens from faucet[​](https://docs.axelar.dev/roles/node/basic#get-axl-tokens-from-the-faucet) <a href="#get-axl-tokens-from-the-faucet" id="get-axl-tokens-from-the-faucet"></a>

Get AXL testnet tokens from a faucet [Axelar Testnet Faucet](https://faucet.testnet.axelar.dev/).

To do this, we sould **find out our address**. Let's insert our keying password instead of `my-secret-password`:

```
echo 'my-secret-password' | ~/.axelar_testnet/bin/axelard keys show validator -a --home ~/.axelar_testnet/.core
```

Output:

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2Fyvw5THrBFLJsGlvXH3S2%2Fimage.png?alt=media&amp;token=5413f2dd-7b3d-4a9b-9274-4f3619c68731" alt="" data-size="original">

Copy the address and request tokens on the [Axelar Testnet Faucet](https://faucet.testnet.axelar.dev/).

**Check the balance**. As usual `my-secret-password` is your password, {MY\_ADDRESS} is your address:

```
cd ~/axelarate-community
ulimit -n 16384
echo 'my-secret-password' | ~/.axelar_testnet/bin/axelard q bank balances {MY_ADDRESS} --home ~/.axelar_testnet/.core
```

Output:

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2FDbEVwI03zzAOmiefACZi%2Fimage.png?alt=media&amp;token=036a214c-c483-428c-94df-c57e73ecf1c3" alt="" data-size="original">

On the wallet 6000000 uaxl.

## Starting processes `vald` and `tofnd`&#x20;

These processes are required for the validator to work.

#### Let's create a password for `tofnd`&#x20;

Now we substitute the passwords in the command below:\
`my-secret-password` - this is the password for `keyring`\
`my-tofnd-password` - this is the password for `tofnd`

```
KEYRING_PASSWORD='my-secret-password' TOFND_PASSWORD='my-tofnd-password' ./scripts/validator-tools-host.sh
```

Upon successful launch, we get the following output:

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2FbzANoLxRMbnRnqsr0Tnq%2Fimage.png?alt=media&amp;token=c4ffaf97-7710-40ba-9784-65b1f062f17f" alt="" data-size="original">

Among other things, we see a hint on how to become a validator:

```
To become a validator get some uaxl tokens from the faucet (testnet only) and stake them
Broadcaster address: axelar1fa3m6jtfn2l2yghs8vj3ksdd7el4w23mcmnspy
```

#### Make a backup

It is mandatory to backup and DELETE the following files:

**Tofnd** **mnemonic:** `/root/.axelar_testnet/.tofnd/import` \
**Broadcaster mnemonic**: `/root/.axelar_testnet/broadcaster.txt`

#### Check the logs`vald`, `tofnd`:

```
tail -f ~/.axelar_testnet/logs/vald.log
tail -f ~/.axelar_testnet/logs/tofnd.log
```

Log example:

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2FzcAGiPNZb61g37Zqqva0%2Fimage.png?alt=media&amp;token=caa3e553-3724-484c-a6ff-012c5f63c7fe" alt="" data-size="original">

## Register broadcaster proxy

Each validator must register a broadcaster in order to send messages from it.

### Find out our broadcaster account address

We saw it when entering the script above. If you didn't write down the address, you can find it at:

```
~/.axelar_testnet/broadcaster.address
```

### Fill up broadcaster address

To do this, copy the address and paste it into [Axelar faucet](https://faucet.testnet.axelar.dev/).

Check the balance (faucet sends out 6 AXL):

```
echo 'my-secret-password' | ~/.axelar_testnet/bin/axelard q bank balances {MY_ADDRESS} --home ~/.axelar_testnet/.core
```

### Register broadcaster address

Substitute in the command below: `my-secret-password` and `{BROADCASTER_ADDR}`.

```
echo 'my-secret-password' | ~/.axelar_testnet/bin/axelard tx snapshot register-proxy {BROADCASTER_ADDR} --from validator --chain-id axelar-testnet-lisbon-3 --home ~/.axelar_testnet/.core
```

Get the output:

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2FsGb2ZWLbMTij0h4GUVuf%2Fimage.png?alt=media&amp;token=97a50f7d-86a9-4feb-bbdd-cfb876aefcee" alt="" data-size="original">

#### Check the broadcaster address registration

```
echo 'my-secret-password' | ~/.axelar_testnet/bin/axelard q snapshot proxy $(cat ~/.axelar_testnet/validator.bech)
```

![](https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2F2RAYrVMsuQk71D5ttvAg%2Fimage.png?alt=media\&token=9727781e-3172-4c81-a0e8-741c30315d73)

Ready! We have registered a broadcaster account address!

## Creation of a validator

Let's start with a little theory 😊

`{KEYRING_PASSWORD}` - in other words `my-secret-password` - this is the password of Axelar keyring file.

`{STAKE_AMOUNT}` - this is the number of tokens we stake on our validator. \
This number is calculated in `uaxl`, where `1 AXL = 1000000 uaxl`.

`{MY_MONIKER}` -this is the name of the node that we now need to come up with and set with this command.

`{MY_identity}` - with this parameter, you can assign a picture to the validator. You can generate this code on the site <https://keybase.io/> without SMS but with registration😊

`{MY_details}` - write additional information here. For example, your Discord.

#### Let's change the command below for ourselves and enter into the command line:

```
echo '{KEYRING_PASSWORD}' | ~/.axelar_testnet/bin/axelard tx staking create-validator \
--amount {STAKE_AMOUNT}uaxl \
--moniker "{MY_MONIKER}" \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--pubkey="$(~/.axelar_testnet/bin/axelard tendermint show-validator \
--home ~/.axelar_testnet/.core)" \
--from validator \
--chain-id axelar-testnet-lisbon-3 \
--home ~/.axelar_testnet/.core \
--identity="{MY_identity}" \
--details="{MY_details}" \
```

This is what the output looks like:

<img src="https://524528777-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ff8kEXtTHjW0sndWFpCyO%2Fuploads%2FNpq9dyQsLuzJTFQo5qDu%2Fimage.png?alt=media&amp;token=72715fb4-dbc2-4c4c-ad85-08ef020674c3" alt="" data-size="original">

{% hint style="info" %}
When creating a validator, tokens are delegated from the address {MY\_ADDRESS} (`validator` account).
{% endhint %}

### Additional commands <a href="#optional-learn-your-valoper-address" id="optional-learn-your-valoper-address"></a>

#### Find out the Valoper address[​](https://docs.axelar.dev/roles/validator/setup/stake-axl#optional-learn-your-valoper-address) <a href="#optional-learn-your-valoper-address" id="optional-learn-your-valoper-address"></a>

{VALOPER\_ADDR} , {BROADCASTER\_ADDR} and {MY\_ADDRESS} - they are completely different things.

`{VALOPER_ADDR}`  - validator address. If we look at the validator in the explorer, we will see that its address is similar to the {MY\_ADDRESS} address. This is because the Validator is created based on the {MY\_ADDRESS} address. There can only be 1 validator per 1 address.\
In my case:\
`{MY_ADDRESS}` - validator account (originally generated address) axelar1n3876h9d0r674kxp30cx488ggha300cq6**kdd54**\
`{VALOPER_ADDR}` - validator address axelarvaloper1n3876h9d0r674kxp30cx488ggha300cq6**hmgx6**\
`{BROADCASTER_ADDR}` -  broadcaster account address axelar1fa3m6jtfn2l2yghs8vj3ksdd7el4w23mcmnspy

Command to find out `{VALOPER_ADDR}` address associated with `validator` account:

```
echo 'my-secret-password' | ~/.axelar_testnet/bin/axelard keys show validator -a --bech val --home ~/.axelar_testnet/.core
```

#### Check the amount of coins delegated to the validator[​](https://docs.axelar.dev/roles/validator/setup/stake-axl#optional-check-the-stake-amount-delegated-to-your-validator) <a href="#optional-check-the-stake-amount-delegated-to-your-validator" id="optional-check-the-stake-amount-delegated-to-your-validator"></a>

```
 ~/.axelar_testnet/bin/axelard q staking validator {VALOPER_ADDR} | grep tokens
```

#### Delegating an additional stake to a validator[​](https://docs.axelar.dev/roles/validator/setup/stake-axl#optional-delegate-additional-stake-to-your-validator) <a href="#optional-delegate-additional-stake-to-your-validator" id="optional-delegate-additional-stake-to-your-validator"></a>

```
echo 'my-secret-password' | ~/.axelar_testnet/bin/axelard tx staking delegate {VALOPER_ADDR} {STAKE_AMOUNT}uaxl --from validator --chain-id axelar-testnet-lisbon-3 --home ~/.axelar_testnet/.core
```

### Control

This is not a mandatory step, but informative. You can see if all the validator indicators work:

```
echo 'my-secret-password' | ~/.axelar_testnet/bin/axelard health-check --tofnd-host localhost --operator-addr {VALOPER_ADDR} --home ~/.axelar_testnet/.vald
```

<br>
