Live on Testnet

Stable Testnet Infrastructure

Enterprise-grade node infrastructure for Stable testnet. Get instant access to RPC endpoints, snapshots, state sync, and comprehensive node setup guides.

Chain ID: stabletestnet_2201-1
Binary: stabled
EVM + Cosmos SDK

Quick Sync

Bootstrap your node in minutes using our daily snapshots or state sync service.

High Performance

Access low-latency RPC, API, and gRPC endpoints for optimal performance.

99.9% Uptime

Enterprise infrastructure with 24/7 monitoring and automated failover.

Public Endpoints

Available Now
gRPC
grpc.stable.community-validator.org:443
Seed Node
9e4b85688ce43d4353fe809f66759a3640fe46bf@seed.community-validator.org:56656

Node Setup

Quick Bootstrap
Fastest way to sync: Download our daily snapshot (pruned) and restore it to your node data directory. Current snapshot: ~1.66GB at height 33,138,001
Snapshot Restore
sudo systemctl stop stabled

cp $HOME/.stabled/data/priv_validator_state.json \
   $HOME/.stabled/priv_validator_state.json.backup

stabled tendermint unsafe-reset-all --home ~/.stabled --keep-addr-book

curl -L https://community-validator.org/chains/testnet/stable/latest.tar.lz4 \
  | lz4 -dc - | tar -xf - -C $HOME/.stabled

mv $HOME/.stabled/priv_validator_state.json.backup \
   $HOME/.stabled/data/priv_validator_state.json

sudo systemctl restart stabled && sudo journalctl -u stabled -fo cat
State Sync
Sync to the latest state without downloading the entire blockchain history. Takes just a few minutes.
State Sync Configuration
sudo systemctl stop stabled

cp $HOME/.stabled/data/priv_validator_state.json \
   $HOME/.stabled/priv_validator_state.json.backup

stabled tendermint unsafe-reset-all --home $HOME/.stabled

SNAP_RPC="https://rpc.stable.community-validator.org: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

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\"|" \
  $HOME/.stabled/config/config.toml

mv $HOME/.stabled/priv_validator_state.json.backup \
   $HOME/.stabled/data/priv_validator_state.json

sudo systemctl restart stabled && sudo journalctl -u stabled -fo cat

1. Hardware & Packages

Recommended Hardware
Minimum: 8 CPU cores, 16 GB RAM, 250GB+ NVMe SSD storage
Network: 100 Mbps connection recommended for optimal performance
System Packages
sudo apt update && sudo apt upgrade -y
sudo apt install curl git wget htop tmux build-essential jq make lz4 gcc unzip -y

2. Environment Variables

Set Variables
echo "export WALLET=\"my_wallet\"" >> $HOME/.bash_profile
echo "export MONIKER=\"my_node\"" >> $HOME/.bash_profile
echo "export CHAIN_ID=\"stabletestnet_2201-1\"" >> $HOME/.bash_profile
echo "export NODE_PORT=\"26\"" >> $HOME/.bash_profile

source $HOME/.bash_profile

3. Install Binary

Linux AMD64
wget -O stabled-0.8.1-testnet-linux-amd64.tar.gz \
  https://stable-testnet-data.s3.us-east-1.amazonaws.com/stabled-latest-linux-amd64-testnet.tar.gz

tar -xvzf stabled-0.8.1-testnet-linux-amd64.tar.gz
sudo mv stabled /usr/bin/
stabled version
Linux ARM64
wget -O stabled-0.8.1-testnet-linux-arm64.tar.gz \
  https://stable-testnet-data.s3.us-east-1.amazonaws.com/stabled-latest-linux-arm64-testnet.tar.gz

tar -xvzf stabled-0.8.1-testnet-linux-arm64.tar.gz
sudo mv stabled /usr/bin/
stabled version

4. Init Node & Genesis

Initialize & Download Genesis
stabled config node tcp://localhost:${NODE_PORT}657
stabled config keyring-backend os
stabled config chain-id ${CHAIN_ID}

stabled init $MONIKER --chain-id ${CHAIN_ID}
stabled download-genesis ${CHAIN_ID}

# Backup old genesis
mv ~/.stabled/config/genesis.json ~/.stabled/config/genesis.json.backup

# Download and install genesis
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/stable_testnet_genesis.zip
unzip stable_testnet_genesis.zip
cp genesis.json ~/.stabled/config/genesis.json

# Verify checksum (optional)
sha256sum ~/.stabled/config/genesis.json
# Expected: 66afbb6e57e6faf019b3021de299125cddab61d433f28894db751252f5b8eaf2

5. Optimized Config & Ports

Download Optimized Config
wget https://stable-testnet-data.s3.us-east-1.amazonaws.com/rpc_node_config.zip
unzip rpc_node_config.zip

cp ~/.stabled/config/config.toml ~/.stabled/config/config.toml.backup
cp config.toml ~/.stabled/config/config.toml

sed -i "s/^moniker = \".*\"/moniker = \"$MONIKER\"/" ~/.stabled/config/config.toml
Enable JSON-RPC (app.toml)
PORT="${STABLE_PORT:-27}"
APP_TOML="$HOME/.stabled/config/app.toml"

sed -i.bak -E "/^\[json-rpc\]/,/^\[/{ \
s|^[[:space:]]*enable *=.*|enable = true|; \
s|^[[:space:]]*address *=.*|address = \"0.0.0.0:${PORT}545\"|; \
s|^[[:space:]]*ws-address *=.*|ws-address = \"0.0.0.0:${PORT}546\"|; \
s|^[[:space:]]*allow-unprotected-txs *=.*|allow-unprotected-txs = true|; }" \
"$APP_TOML"
Configure P2P & RPC (config.toml)
PORT="${STABLE_PORT:-27}"
CFG_TOML="$HOME/.stabled/config/config.toml"
PERSISTENT_PEERS="86dab3dc399c33ff9770fd089f51125d004a2fe3@130.185.118.7:26656,\
68a099f9fcf3a3fcff6e549105d206125b51d973@62.169.31.251:26656,\
b681477a33ae49fe1976f08a526fcf471a5325d4@173.212.235.213:26656"

sed -i.bak -E "/^\[p2p\]/,/^\[/{ \
s|^[[:space:]]*max_num_inbound_peers *=.*|max_num_inbound_peers = 50|; \
s|^[[:space:]]*max_num_outbound_peers *=.*|max_num_outbound_peers = 30|; \
s|^[[:space:]]*persistent_peers *=.*|persistent_peers = \"${PERSISTENT_PEERS}\"|; \
s|^[[:space:]]*pex *=.*|pex = true|; }" \
"$CFG_TOML"

sed -i -E "/^\[rpc\]/,/^\[/{ \
s|^[[:space:]]*laddr *=.*|laddr = \"tcp://0.0.0.0:${PORT}657\"|; \
s|^[[:space:]]*max_open_connections *=.*|max_open_connections = 900|; \
s|^[[:space:]]*cors_allowed_origins *=.*|cors_allowed_origins = [\"*\"]|; }" \
"$CFG_TOML"
Port Remap (Optional)
# app.toml
sed -i.bak -e "s%:1317%:${NODE_PORT}317%g; \
s%:8080%:${NODE_PORT}080%g; \
s%:9090%:${NODE_PORT}090%g; \
s%:9091%:${NODE_PORT}091%g; \
s%:8545%:${NODE_PORT}545%g; \
s%:8546%:${NODE_PORT}546%g; \
s%:6065%:${NODE_PORT}065%g" \
$HOME/.stabled/config/app.toml

# config.toml
sed -i.bak -e "s%:26658%:${NODE_PORT}658%g; \
s%:26657%:${NODE_PORT}657%g; \
s%:6060%:${NODE_PORT}060%g; \
s%:26656%:${NODE_PORT}656%g; \
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${NODE_PORT}656\"%; \
s%:26660%:${NODE_PORT}660%g" \
$HOME/.stabled/config/config.toml
Live Peer List
Use these peers in your config.toml for reliable network connectivity.
Persistent Peers
PEERS="f7bf3a360984c8683d089728f3bcd81bb4bfd9a1@rpc.stable.community-validator.org:26656,\
a1e56b9918f25688ef1301696a56915c12d87cb0@157.173.122.200:36656,\
2944a8609240aea578f3a867b90f34c5f40ffccc@173.249.0.176:26656,\
84d74c90514a74000bc47fa6bb62eeb5ffc88fd0@94.130.164.82:20056"

sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" \
  $HOME/.stabled/config/config.toml

Create Systemd Service

Systemd Unit File
sudo tee /etc/systemd/system/stabled.service > /dev/null <

Check Sync Status

Verify Synchronization
stabled status 2>&1 | jq .SyncInfo
Sync Status
When catching_up is false, your node is fully synced and ready to create a validator.

Wallet & Validator

Final Steps

1. Create or Import Wallet

New Wallet
stabled keys add $WALLET
Restore Existing Wallet
stabled keys add $WALLET --recover
Save Wallet Addresses
WALLET_ADDRESS=$(stabled keys show $WALLET -a)
VALOPER_ADDRESS=$(stabled keys show $WALLET --bech val -a)

echo "export WALLET_ADDRESS=$WALLET_ADDRESS" >> $HOME/.bash_profile
echo "export VALOPER_ADDRESS=$VALOPER_ADDRESS" >> $HOME/.bash_profile

source $HOME/.bash_profile

2. Check Balance

Query Balance
stabled query bank balances $WALLET_ADDRESS
Get Testnet Tokens
Make sure your wallet has enough testnet tokens before creating a validator. You can request tokens from the Stable testnet faucet.

3. Create Validator

Create Validator Transaction
stabled tx staking create-validator \
  --amount 1000000astable \
  --from $WALLET \
  --commission-rate 0.1 \
  --commission-max-rate 0.2 \
  --commission-max-change-rate 0.01 \
  --min-self-delegation 1 \
  --pubkey $(stabled tendermint show-validator) \
  --moniker "$MONIKER" \
  --identity "" \
  --website "" \
  --details "Community Validator Node" \
  --chain-id $CHAIN_ID \
  --gas auto --gas-adjustment 1.5 \
  --gas-prices 0.005astable \
  -y
Customize Your Validator
Tip: Update the --moniker, --identity (keybase.io ID), --website, and --details fields to personalize your validator. Adjust commission rates according to your strategy.