logo

AtomOne

ATONE
  • Network:

    Mainnet

  • Chain ID:

    atomone-1

  • Current Node Version:

    v3.0.3

Overview

AtomOne is a constitutionally governed, minimalist L1 blockchain and neutral interchain hub. It’s built as a secure base layer rather than a feature-heavy app chain, focusing on routing value and security between many blockchains via IBC and shared security.

Core pieces:

AtomOne Hub – the main chain that provides security, IBC connectivity and Interchain Security to connected consumer chains, while letting them stay sovereign and specialize (DeFi, infra, etc.).

  • ATONE – the staking and governance token, used to secure the network and vote on proposals, including constitutional changes.

  • PHOTON – the dedicated fee and payment token for the hub and its connected environment, created only by burning ATONE and capped in total supply.

  • Constitution & DAOs – an on-chain constitution plus a set of DAOs (steering, oversight, treasury, etc.) that define and enforce how the protocol, economics and governance can evolve.

By separating security (ATONE) from everyday usage and fees (PHOTON), and by grounding upgrades in a formal constitution, AtomOne aims to be a long-term, predictable hub for an interchain ecosystem rather than just another experimental application chain.

Public Endpoints

TypeEndpointLink
RPChttps://atomone-mainnet-rpc.crouton.digital arrow right icon
APIhttps://atomone-mainnet-api.crouton.digital arrow right icon
gRPCatomone-mainnet-grpc.crouton.digital:30690
peer6ec1488c456256ad56946ccd4c5adb8c5c433f63@5.9.95.101:30656

Guide

INFOINFO

This guide provides a complete and reliable setup for running an AtomOne mainnet node and validator. Here you’ll find everything you need - from downloading binaries and configuration files to initializing the node, managing keys, applying snapshots, and maintaining a stable validator environment. Follow the steps carefully to ensure a smooth and secure deployment on the AtomOne network.

Prepare

Update and install packages

sudo apt update && sudo apt upgrade -y && \ sudo apt install curl tar wget clang pkg-config libssl-dev libleveldb-dev jq build-essential bsdmainutils git make ncdu htop screen unzip bc fail2ban htop -y

Installing Go

VER="1.22.0" 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" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version

Binary

git clone https://github.com/atomone-hub/atomone atomone cd atomone git checkout v3.0.3 make install atomoned version --long | grep -e version -e commit # version: v3.0.3 # commit: a948052ffbe9b594070abe601b39f91ac1a8498c

Initialization

Initialize the node (replace VALIDATOR_NAME with your own)

atomoned init VALIDATOR_NAME --chain-id atomone-1 && \ atomoned config chain-id atomone-1 && \ atomoned config keyring-backend os

Genesis

Download genesis

wget https://storage.crouton.digital/mainnet/atomone/files/genesis.json -O $HOME/.atomone/config/genesis.json

Addrbook

Download addrbook

wget https://storage.crouton.digital/mainnet/atomone/files/addrbook.json -O $HOME/.atomone/config/addrbook.json

Configuration

EXTERNAL_IP=$(wget -qO- eth0.me) NODE_NUMBER="1" sed -i.bak \ -e "s/\(proxy_app = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))58\"/" \ -e "s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))57\"/" \ -e "s/\(pprof_laddr = \"\)\([^:]*\):\([0-9]*\).*/\1localhost:$(($NODE_NUMBER + 60))60\"/" \ -e "/\[p2p\]/,/^\[/{s/\(laddr = \"tcp:\/\/\)\([^:]*\):\([0-9]*\).*/\1\2:$(($NODE_NUMBER + 266))56\"/}" \ -e "/\[p2p\]/,/^\[/{s/\(external_address = \"\)\([^:]*\):\([0-9]*\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/; t; s/\(external_address = \"\).*/\1${EXTERNAL_IP}:$(($NODE_NUMBER + 266))56\"/}" \ -e "s/\(prometheus_listen_addr = \":\)\([0-9]*\).*/\1$(($NODE_NUMBER + 266))60\"/" $HOME/.atomone/config/config.toml sed -i.bak \ -e "/\[api\]/,/^\[/{s/\(address = \"tcp:\/\/\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 13))17\4/}" \ -e "/\[grpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))90\4/}" \ -e "/\[grpc-web\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 90))91\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))45\4/}" \ -e "/\[json-rpc\]/,/^\[/{s/\(ws-address = \"\)\([^:]*\):\([0-9]*\)\(\".*\)/\1\2:$(($NODE_NUMBER + 85))46\4/}" $HOME/.atomone/config/app.toml echo "export NODE=http://localhost:$(($NODE_NUMBER + 266))57" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ atomoned config node $NODE

Create a service file

sudo tee /etc/systemd/system/atomoned.service > /dev/null <<EOF [Unit] Description=atomone_node After=network.target [Service] User=$USER Type=simple ExecStart=$(which atomoned) start --home $HOME/.atomone Restart=on-failure LimitNOFILE=65535 [Install] WantedBy=multi-user.target EOF

Start the node

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

Snapshot

Block HeightSizeIndexerLast SnapshotDownload
62545853.7Gnull2025-12-12T14:17:16.643958385Z arrow right icon

Restore node from snapshot

sudo apt install lz4 -y && \ sudo systemctl stop atomoned && \ cp $HOME/.atomone/data/priv_validator_state.json $HOME/.atomone/priv_validator_state.json.backup && \ rm -rf $HOME/.atomone/data && \ curl https://storage.crouton.digital/mainnet/atomone/snapshots/atomone_latest.tar.lz4 | 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 && \ sudo journalctl -u atomoned -f

State Sync

Restore node from state sync

SNAP_RPC="https://atomone-mainnet-rpc.crouton.digital:443" && \ 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 && \ peers="6ec1488c456256ad56946ccd4c5adb8c5c433f63@5.9.95.101:30656" && \ sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.atomone/config/config.toml && \ 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" && sleep 2 && \ sed -i.bak -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\"| ; s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $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

Upgrade Node

VER="vv3.0.3" git clone https://github.com/atomone-hub/atomone atomone && \ cd $HOME && \ rm -rf atomone && \ git clone https://github.com/atomone-hub/atomone atomone && \ cd atomone && \ git checkout tags/$VER -b $VER && \ make install && \ sudo systemctl restart atomoned && \ sudo journalctl -u atomoned -f

Delete Node

sudo systemctl stop atomoned && \ sudo systemctl disable atomoned && \ sudo rm -rf /etc/systemd/system/atomoned.service && \ sudo rm "$(which atomoned)" && \ sudo rm -rf "$HOME/.atomone"

Key management

# This command generates a new wallet with a unique keypair. # Use this to create a secure, brand-new wallet for transactions. # Your wallet name = "wallet" atomoned keys add wallet

Validator management

atomoned tx staking create-validator \ --amount 1000000uatone \ --moniker "VALIDATOR_NAME" \ --identity "" \ --website "" \ --details "" \ --from wallet \ --commission-rate 0.1 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.01 \ --min-self-delegation 1 \ --pubkey $(celestia-appd tendermint show-validator) \ --chain-id atomone-1 \ --gas auto \ --gas-adjustment 1.4 \ --gas-prices 0.002uatone \ -y

Validator commands

# Retrieves comprehensive information regarding the validator. # This command is utilized to fetch details about the current validator, including its address, public key, and associated data. # Your wallet name = "wallet" atomoned q staking validator $(atomoned keys show wallet --bech val -a)

Onchain

# Withdraw all accumulated rewards from your account. # This command retrieves and withdraws all rewards earned from staking. # Your wallet name = "wallet" atomoned tx distribution withdraw-all-rewards --from wallet --chain-id atomone-1 --gas-adjustment=1.15 --gas auto --gas-prices 0.002uatone -y

Chat With Us

Connect directly with our team by filling out the contact form. Whether you’re looking to optimize staking yields, deploy validator nodes, integrate RPC services, or find a reliable validator partner for your blockchain or project — we’re here to help.

We can explore Web3 and blockchain infrastructure solutions together and tailor our support to your long-term goals. Schedule a meeting, and let’s discuss your long-term goals.

Crouton Digital respects your privacy. By submitting this form, you are acknowledging that you have read and agree to our Privacy Policy, which details how we collect and use your information.