Mainnet

Atomone

Installation Guide
Node CLI
Public Endpoint
State Sync
Snapshot
Custom Explorers
Decentralization Maps
Installation Guide
Installation Guide
Node CLI
Public Endpoint
State Sync
Snapshot
Custom Explorers
Decentralization Maps

How To Install Full Node Atomone Mainnet

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 ATOMONE_CHAIN_ID=atomone-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.2"
  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
git clone https://github.com/atomone-hub/atomone.git
cd atomone
git checkout v1.0.1
make install

Init app

atomoned init $NODENAME --chain-id $ATOMONE_CHAIN_ID

Download configuration

wget https://snap1.konsortech.xyz/atomone/genesis.json -O $HOME/.atomone/config/genesis.json
wget https://snap1.konsortech.xyz/atomone/addrbook.json -O $HOME/.atomone/config/addrbook.json

Set the minimum gas price and Peers, Filter peers/ MaxPeers

SEEDS="eab84253445cd82e843b9cbfbb311020ae045c26@mainnet-seed.konsortech.xyz:13165"
PEERS="13745b16a6e037d9282c7d77980f05f20c4cbd41@mainnet-atomone.konsortech.xyz:12656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.atomone/config/config.toml
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0001uatone\"/;" ~/.atomone/config/app.toml
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.atomone/config/config.toml

Disable indexing

indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.atomone/config/config.toml

Config pruning

pruning="custom" && \
pruning_keep_recent="100" && \
pruning_keep_every="0" && \
pruning_interval="10" && \
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" ~/.atomone/config/app.toml && \
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" ~/.atomone/config/app.toml && \
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" ~/.atomone/config/app.toml && \
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" ~/.atomone/config/app.toml

Create service

sudo tee /etc/systemd/system/atomoned.service > /dev/null <<EOF
[Unit]
Description=atomone
After=network-online.target

[Service]
User=$USER
ExecStart=$(which atomoned) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Register and start service

sudo systemctl daemon-reload
sudo systemctl enable atomoned
sudo systemctl restart atomoned && sudo journalctl -u atomoned -f -o cat

Guidence for create validator

Create wallet

To create new wallet you can use command below. Don’t forget to save the mnemonic

atomoned keys add $WALLET

To recover your wallet using seed phrase

atomoned keys add $WALLET --recover

Show your wallet list

atomoned keys list

Save wallet info

Add wallet and validator address into variables

ATOMONE_WALLET_ADDRESS=$(atomoned keys show $WALLET -a)
ATOMONE_VALOPER_ADDRESS=$(atomoned keys show $WALLET --bech val -a)
echo 'export ATOMONE_WALLET_ADDRESS='${ATOMONE_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export ATOMONE_VALOPER_ADDRESS='${ATOMONE_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Fund your wallet

Buy on Osmosis DEX

Create validator

check your wallet balance:

atomoned query bank balances $ATOMONE_WALLET_ADDRESS

To create your validator run command below

atomoned tx staking create-validator \
  --amount 1000000uatone \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.1" \
  --min-self-delegation "1" \
  --pubkey  $(atomoned tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $ATOMONE_CHAIN_ID
  --gas-prices=0.1uatone \
  --gas-adjustment=1.5 \
  --gas=auto

Check your validator key

[[ $(atomoned q staking validator $ATOMONE_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(atomoned status | jq -r .ValidatorInfo.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

atomoned 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 atomoned -o cat

Start service

sudo systemctl start atomoned

Stop service

sudo systemctl stop atomoned

Restart service

sudo systemctl restart atomoned

Node info

Synchronization info

atomoned status 2>&1 | jq .SyncInfo

Validator info

atomoned status 2>&1 | jq .ValidatorInfo

Node info

atomoned status 2>&1 | jq .NodeInfo

Show node id

atomoned tendermint show-node-id

Wallet operations

List of wallets

atomoned keys list

Recover wallet

atomoned keys add $WALLET --recover

Delete wallet

atomoned keys delete $WALLET

Get wallet balance

atomoned query bank balances $ATOMONE_WALLET_ADDRESS

Transfer funds

atomoned tx bank send $ATOMONE_WALLET_ADDRESS <TO_ATOMONE_WALLET_ADDRESS> 1000000uatone

Voting

atomoned tx gov vote 1 yes --from $WALLET --chain-id=$ATOMONE_CHAIN_ID

Staking, Delegation and Rewards

Delegate stake

atomoned tx staking delegate $ATOMONE_VALOPER_ADDRESS 1000000uatone --from=$WALLET --chain-id=$ATOMONE_CHAIN_ID --gas=auto

Redelegate stake from validator to another validator

atomoned tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000uatone --from=$WALLET --chain-id=$ATOMONE_CHAIN_ID --gas=auto

Withdraw all rewards

atomoned tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$ATOMONE_CHAIN_ID --gas=auto

Withdraw rewards with commision

atomoned tx distribution withdraw-rewards $ATOMONE_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$ATOMONE_CHAIN_ID

Validator management

Edit validator

atomoned tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=<your_keybase_id> \
  --website="<your_website>" \
  --details="<your_validator_description>" \
  --chain-id=$ATOMONE_CHAIN_ID \
  --from=$WALLET

Unjail validator

atomoned tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$ATOMONE_CHAIN_ID \
  --gas=auto

Public Endpoint

RPC

https://mainnet-atomone-rpc.konsortech.xyz

API

https://mainnet-atomone-api.konsortech.xyz

gRPC

mainnet-atomone.konsortech.xyz:12090

Peers and Seeds

Peers

13745b16a6e037d9282c7d77980f05f20c4cbd41@mainnet-atomone.konsortech.xyz:12656

Seeds

eab84253445cd82e843b9cbfbb311020ae045c26@mainnet-seed.konsortech.xyz:13165

Genesis & Address Book

Address Book

https://snap1.konsortech.xyz/atomone/addrbook.json

Genesis

https://snap1.konsortech.xyz/atomone/genesis.json

State Sync

sudo systemctl stop atomoned

cp $HOME/.atomone/data/priv_validator_state.json $HOME/.atomone/priv_validator_state.json.backup
atomoned tendermint unsafe-reset-all --home $HOME/.atomone --keep-addr-book

SNAP_RPC="https://mainnet-atomone-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="13745b16a6e037d9282c7d77980f05f20c4cbd41@mainnet-atomone.konsortech.xyz:12656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.atomone/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/.atomone/config/config.toml

mv $HOME/.atomone/priv_validator_state.json.backup $HOME/.atomone/data/priv_validator_state.json

sudo systemctl restart atomoned
sudo journalctl -u atomoned -f --no-hostname -o cat

Snapshot

sudo systemctl stop atomoned
cp $HOME/.atomone/data/priv_validator_state.json $HOME/.atomone/priv_validator_state.json.backup
rm -rf $HOME/.atomone/data

SNAP_NAME=$(curl -s https://snap1.konsortech.xyz/atomone/ | egrep -o ">atomone-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snap1.konsortech.xyz/atomone/${SNAP_NAME} | lz4 -dc - | tar -xf - -C $HOME/.atomone
mv $HOME/.atomone/priv_validator_state.json.backup $HOME/.atomone/data/priv_validator_state.json

sudo systemctl restart atomoned && journalctl -u atomoned -f --no-hostname -o cat
Embed Iframe

Atomone Mainnet Decentralization Maps