# Install Validator node​

Install EMoney node on Mainnet

Steps to join as a node to E Money Network

Once all servers as per the defined hardware and software requirements are setup.\
\
<https://docs.emoney.network/validating-on-e-money-network>\
E Money client should be downloaded as per following steps.\
\
(E Money network officially supports macOS and Linux only).

1. Install prerequisites go, make, gcc, etc. if not installed already.

`export PATH=$PATH:$(go env GOPATH)/bin`

`$ go install` [`cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest`](http://cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest)

2. Remember to install prerequisites go, make, gcc, p7zip-full, etc. if not installed already.

Download E Money client from here:

`wget https://dxnzodmwa7rdj.cloudfront.net/MainNet_Binaries/emoneyd.zip`

`unzip emoneyd.zip` \
\
`mv emoneyd go/bin/`

Set your go binary path:

`export PATH=$PATH:$(go env GOPATH)/bin`

Check if emoneyd binary is active by using:

`emoneyd`

should give a list of all emoneyd commands.

This will install the emoneyd client on your node and ready to use.

Check if cosmovisor binary is active by using:

`cosmovisor`

should give a list of all cosmovisor commands.

This will install the cosmovisor client on your node and ready to use.

3\. Now initialise the emoney client on your node by running the following command:

`emoneyd init <your_custom_moniker> --chain-id emoney_4545-1`

This will create a .emoneyd/ folder on your node's home directory. Check using ls -a.

4\.   Download the genesis file from the given link and place the genesis file in the path below on your node. The previously available genesis file in this folder should be replaced with the downloaded one.

Mainnet:\
\
`wget https://dxnzodmwa7rdj.cloudfront.net/MainNet_Binaries/genesis.zip`

`unzip genesis.zip`\
\
`mv genesis.json .emoneyd/config/`\
\
This will replace the genesis file with the network genesis file.

5\. In the node, edit the config.toml file to update persistent\_peers in P2P configurations:

`perl -i -pe 's/persistent_peers = ""/persistent_peers = "30bc8f9b07b03bca30fa30d689f48983c2fca7aa@13.202.13.237:26656"/' ~/.emoneyd/config/config.toml`&#x20;

\# Comma separated list of nodes to keep persistent connections to

persistent\_peers = "30bc8f9b07b03bca30fa30d689f48983c2fca7aa\@13.202.13.237:26656"

Folder: .emoneyd/config/config.toml

![](https://lh7-rt.googleusercontent.com/docsz/AD_4nXdiZ1w5O9SXY7-djpvLlocZrV_gWwERerL-orR-sSxWeI4ku4-IrmssNflK6Q2-wX00oLRoIiycOSLO134hqSp6VHrAX7SwAZ3C6PsCkFJg_-ck0WQEA93Yb8HElvZeJTi843W3SA?key=OeWiRomFZET_iR2-e7fQ-4XJ)

Set source profile on server:\
\
`nano ~/.profile`\
\
(Paste following parameters)\
\
`export DAEMON_NAME=emoneyd`

`export DAEMON_HOME=/home/ubuntu`

`export DAEMON_RESTART_AFTER_UPGRADE=true`

`export DAEMON_DATA_BACKUP_DIR=/home/ubuntu/data`\
\
`source ~/.profile`\
\
Execute following commands to complete setup:

`mkdir -p cosmovisor/genesis/bin`

`cp go/bin/emoneyd cosmovisor/genesis/bin/`

`chmod +x cosmovisor/genesis/bin/emoneyd`&#x20;

`mkdir -p  data`

7\. Run the start command with following arguments on your node:\
\
Pruning states:

There are four strategies for pruning state. These strategies apply only to state and do not apply to block storage. To set pruning, adjust the pruning parameter in the \~/.emoneyd/config/app.toml file. The following pruning state settings are available:

1. everything: Prune all saved states other than the current state.
2. nothing: Save all states and delete nothing.
3. default: Save the last 100 states and the state of every 10,000th block.
4. custom: Specify pruning settings with the pruning-keep-recent, pruning-keep-every, and pruning-interval parameters.

By default, every node is in default mode which is the recommended setting for most environments. If you would like to change your nodes pruning strategy then you must do so when the node is initialized. Passing a flag when starting emoneyd will always override settings in the app.toml file, if you would like to change your node to the everything mode then you can pass the --pruning everything flag when you call emoneyd start.

1. Run your node as Full Node\
   \
   Full nodes store all the blockchain's data and participate in block validation. Validating the blockchain includes keeping track of new blocks and computing and maintaining state changes. Full nodes, once fully synced with the network, can query all EMoney network blockchain data.\
   \
   To start an E Money network Full node execute following start command on your node terminal:\
   \
   `cosmovisor run start --pruning=nothing --log_level INFO --api.enable --json-rpc.api eth,txpool,personal,net,debug,web3 &`<br>
2. Run your node as Light Node

`cosmovisor run start --log_level INFO --api.enable --json-rpc.api eth,txpool,personal,net,debug,web3 &`

Set different log levels as below:

`cosmovisor run start --log_level error --log_level fatal --log_level panic --api.enable --minimum-gas-prices=0.1uemyc --json-rpc.api eth,txpool,personal,net,debug,web3 --log_level info --log_level warn --log_level debug >> logfile.log 2>&1 &`\
\
Note: Check different modes and settings to run the node using the following command for complete documentation on your terminal.\
\
`emoneyd start -h`

This will start the block minting and peer syncing process on your node and should be able to see block height increasing/syncing with peer nodes.

Check the status of block syncing with the node using following command showing the latest\_block\_height

`emoneyd status`

Run a validator on your node:\
\
1\. Use following command to create a key which is subsequently used as the validator operator to stake tokens and start block proposal/minting operations on E Money network.

`emoneyd keys add <custom-key-name>`

– Shows a new key created and mnemonic, please write down and save mnemonic for any future key recovery.

`emoneyd query bank balances <custom-key-address>`\
\
– Query command to check current balance of the key.

`emoneyd keys show <custom-key-name> --bech val  --address`\
\
– Command to view the bech32 validator operator address of the key.

Please contact our team to perform Know Your Business or KYB which is a process through which only verified and whitelisted businesses can interact and run validators on EMN network.

2\. Deposit tokens as per minimum stake tokens requirement for becoming a validator to the custom key.\
\
Minimum Stake tokens:

500,000 EMYC.\
\
3\. Once tokens are deposited, run following command to lock tokens to be eligible for becoming a validator.

`emoneyd tx lock lock <validator-address> --from <custom-key-name> --chain-id emoney_4545-1 --fees 20000uemyc`\
\
Following command can be used to check the lock status of a validator.

`emoneyd query lock lock <validator-address>`

4\. Once validator lock is confirmed, use following commands to stake tokens and become a validator.

`emoneyd tx staking create-validator --pubkey $(emoneyd tendermint show-validator)  --commission-max-change-rate <custom-value> --commission-max-rate <custom-value> --commission-rate <custom-value> --min-self-delegation <custom-value> --fees 40000uemyc --yes --from <custom-key-name> --amount 500000000000000000000000uemyc --moniker <custom-moniker>  --broadcast-mode block --chain-id emoney_4545-1 --gas auto`

5\. Use following commands to check the staked validators and other details.

`emoneyd query staking validators`<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.emoney.network/validating-on-e-money-network/install-validator-node.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
