logo

Osmosis

OSMO
  • Network:

    Mainnet

  • Chain ID:

    osmosis-1

  • Current Node Version:

    31.0.0

Overview

Osmosis is a sovereign L1 blockchain in the Cosmos ecosystem, built as an interchain DEX rather than a general-purpose app chain. It focuses on providing deep, capital-efficient liquidity and custom AMMs for assets coming from many different chains via IBC and bridges.

Core pieces:

  • Osmosis Chain - a Cosmos SDK chain optimized for DeFi, hosting the DEX logic, custom AMM pools, routing, and on-chain governance, with IBC built in for seamless cross-chain swaps.

  • OSMO - the native token used for staking (securing the chain), governance (protocol upgrades, pool parameters) and as a key part of incentives and fee distribution across the DEX.

  • Liquidity & AMMs - flexible liquidity pools (concentrated, weighted, stable-swap and more) that allow projects and LPs to design tailored markets with configurable fees and parameters.

  • Interchain DeFi layer - deep integration with IBC and external bridges, enabling users to swap, route and farm assets from many different chains in one place, instead of siloed per-chain DEXs.

By combining a chain-native DEX with rich AMM features and strong interchain connectivity, Osmosis aims to be the primary liquidity hub for the Cosmos ecosystem and beyond, rather than just another single-chain exchange.

Public Endpoints

TypeEndpointLink
RPChttps://osmosis-mainnet-rpc.crouton.digital arrow right icon
APIhttps://osmosis-mainnet-api.crouton.digital arrow right icon
gRPCosmosis-mainnet-grpc.crouton.digital:12590
peer[email protected]:12556

Guide

INFOINFO

This guide provides a complete and reliable setup for running an Osmosis 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 Osmosis 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/osmosis-labs/osmosis osmosis cd osmosis git checkout 31.0.0 make install osmosisd version --long | grep -e version -e commit # version: 31.0.0 # commit: c1adfd5fd510f132137857c2d644db6b2c70981b

Initialization

Initialize the node (replace VALIDATOR_NAME with your own)

osmosisd init VALIDATOR_NAME --chain-id osmosis-1 && \ osmosisd config chain-id osmosis-1 && \ osmosisd config keyring-backend os

Genesis

Download genesis

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

Addrbook

Download addrbook

wget https://storage.crouton.digital/mainnet/osmosis/files/addrbook.json -O $HOME/.osmosisd/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/.osmosisd/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/.osmosisd/config/app.toml echo "export NODE=http://localhost:$(($NODE_NUMBER + 266))57" >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ osmosisd config node $NODE

Create a service file

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

Start the node

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

Snapshot

Block HeightSizeIndexerLast SnapshotDownload
4757671327Gnull2025-11-02T21:27:00.79155355Z arrow right icon

Restore node from snapshot

sudo apt install lz4 -y && \ sudo systemctl stop osmosisd && \ cp $HOME/.osmosisd/data/priv_validator_state.json $HOME/.osmosisd/priv_validator_state.json.backup && \ rm -rf $HOME/.osmosisd/data && \ curl https://storage.crouton.digital/mainnet/osmosis/snapshots/osmosis_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.osmosisd && \ mv $HOME/.osmosisd/priv_validator_state.json.backup $HOME/.osmosisd/data/priv_validator_state.json && \ sudo systemctl restart osmosisd && \ sudo journalctl -u osmosisd -f

State Sync

Restore node from state sync

SNAP_RPC="https://osmosis-mainnet-rpc.crouton.digital:443" && \ sudo systemctl stop osmosisd && \ cp $HOME/.osmosisd/data/priv_validator_state.json $HOME/.osmosisd/priv_validator_state.json.backup && \ osmosisd tendermint unsafe-reset-all --home $HOME/.osmosisd --keep-addr-book && \ peers="[email protected]:12556" && \ sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" $HOME/.osmosisd/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/.osmosisd/config/config.toml && \ mv $HOME/.osmosisd/priv_validator_state.json.backup $HOME/.osmosisd/data/priv_validator_state.json && \ sudo systemctl restart osmosisd && \ sudo journalctl -u osmosisd -f

Upgrade Node

VER="v31.0.0" git clone https://github.com/osmosis-labs/osmosis osmosis && \ cd $HOME && \ rm -rf osmosis && \ git clone https://github.com/osmosis-labs/osmosis osmosis && \ cd osmosis && \ git checkout tags/$VER -b $VER && \ make install && \ sudo systemctl restart osmosisd && \ sudo journalctl -u osmosisd -f

Delete Node

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

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" osmosisd keys add wallet

Validator management

osmosisd tx staking create-validator \ --amount 1000000uosmo \ --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 osmosis-1 \ --gas auto \ --gas-adjustment 1.4 \ --gas-prices 0.002uosmo \ -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" osmosisd q staking validator $(osmosisd 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" osmosisd tx distribution withdraw-all-rewards --from wallet --chain-id osmosis-1 --gas-adjustment=1.15 --gas auto --gas-prices 0.002uosmo -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.