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
| Type | Endpoint | Link |
|---|---|---|
| RPC | https://osmosis-mainnet-rpc.crouton.digital | |
| API | https://osmosis-mainnet-api.crouton.digital | |
| gRPC | osmosis-mainnet-grpc.crouton.digital:12590 | |
| peer | [email protected]:12556 |
Hardware requirements
Recommended server specs for an Osmosis validator: 32 GB RAM, 8 CPU cores (or 4 physical cores), and at least 1 TB of SSD or NVMe storage.
Prepare
Update and install packages
sudo apt update && sudo apt upgrade -y && \ sudo apt install -y curl git wget jq make gcc clang tmux screen htop ncdu unzip tar lz4 bc build-essential pkg-config libssl-dev libleveldb-dev bsdmainutils fail2ban
Installing Go
VER="1.23.4" && \ 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" && \ mkdir -p $HOME/go/bin && \ grep -qxF 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' $HOME/.bash_profile || echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && \ source $HOME/.bash_profile && \ go version
Binary
Building from source
cd $HOME && \ rm -rf osmosis && \ git clone https://github.com/osmosis-labs/osmosis osmosis && \ cd osmosis && \ APP_VERSION="v31.0.0" && \ git checkout tags/$APP_VERSION -b $APP_VERSION && \ make install && \ osmosisd version --long | grep -E 'version|commit' # version: 31.0.0 # commit: c1adfd5fd510f132137857c2d644db6b2c70981b
Initialization
Initialize the node and create the default configuration files
osmosisd init MONIKER --chain-id osmosis-1
Replace MONIKER with your own validator name. This name will be used as your node’s identifier on the network.
Genesis
Download genesis
mkdir -p $HOME/.osmosisd/config && \ wget -O $HOME/.osmosisd/config/genesis.json https://storage.crouton.digital/mainnet/osmosis/files/genesis.json
Addrbook
Download addrbook
mkdir -p $HOME/.osmosisd/config && \ wget -O $HOME/.osmosisd/config/addrbook.json https://storage.crouton.digital/mainnet/osmosis/files/addrbook.json
Configuration
Set the minimum gas price in app.toml
sed -i.bak \ -e 's|^minimum-gas-prices *=.*|minimum-gas-prices = "0.0025uosmo"|' \ $HOME/.osmosisd/config/app.toml
Create a service file
sudo tee /etc/systemd/system/osmosisd.service > /dev/null <<EOF [Unit] Description=osmosis node After=network-online.target [Service] User=$USER WorkingDirectory=$HOME/.osmosisd ExecStart=$(which osmosisd) start --home $HOME/.osmosisd Restart=on-failure RestartSec=5 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
Restore node from snapshot
sudo apt install -y lz4 && \ 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 -L https://storage.crouton.digital/mainnet/osmosis/snapshots/osmosis_latest.tar.lz4 | lz4 -dc - | tar -xf - -C $HOME/.osmosisd && \ mkdir -p $HOME/.osmosisd/data && \ mv $HOME/.osmosisd/priv_validator_state.json.backup $HOME/.osmosisd/data/priv_validator_state.json && \ sudo systemctl restart osmosisd && \ sudo journalctl -u osmosisd -f -o cat
Key management
Wallet management commands are provided below as examples. Replace wallet with your own wallet name before running them.
osmosisd keys add wallet
After creating or importing your wallet, fund it with at least the minimum amount required by the network to create a validator. On Osmosis, this means enough OSMO for your self-delegation plus additional OSMO to cover transaction fees.
Validator management
osmosisd tx staking create-validator \ --amount 1000000uosmo \ --from wallet \ --commission-rate 0.1 \ --commission-max-rate 0.2 \ --commission-max-change-rate 0.01 \ --min-self-delegation 1000000 \ --pubkey $(osmosisd tendermint show-validator) \ --moniker "MONIKER" \ --identity "TESTKEY123" \ --website "https://example.com" \ --details "Reliable validator for the network." \ --chain-id osmosis-1 \ --gas auto \ --gas-adjustment 1.5 \ --gas-prices 0.0025uosmo \ -y
Replace the example values with your own details. If the command fails or the transaction does not go through, try increasing the gas limit or the commission fee.
Validator commands
osmosisd status 2>&1 | jq
Make sure to replace wallet with the name of your wallet before running the command.
Governance
osmosisd q gov proposals
"1" is only an example proposal ID, so replace it with the actual one. Available voting options are "yes" to approve, "no" to reject, "abstain" to abstain, and "no_with_veto" to reject with veto.
Onchain
osmosisd tx distribution withdraw-rewards $(osmosisd keys show wallet --bech val -a) --commission --from wallet --chain-id osmosis-1 --gas auto -y
osmosisd tx staking delegate $(osmosisd keys show wallet --bech val -a) 1000000uosmo --from wallet --chain-id osmosis-1 --gas 300000 --fees 2000uosmo -y
These commands contain example values. Be sure to replace them with your own validator address, wallet name, wallet address, and any other required details before running them.
Service operations
sudo journalctl -u osmosisd -f -o cat
Manual upgrade
cd $HOME && \ rm -rf osmosis && \ git clone https://github.com/osmosis-labs/osmosis osmosis && \ cd osmosis && \ APP_VERSION=v31.0.0 && \ git checkout v31.0.0 && \ make install && \ sudo systemctl restart osmosisd && \ sudo journalctl -u osmosisd -f


