Sunima Chain · Testnet · chain-id: sunima_8081-2

Running a
Sunima Chain Validator

This guide walks you through setting up a full validator node on the Sunima Chain testnet — a sovereign Cosmos SDK + CometBFT chain. Validators propose and sign blocks, earn staking rewards, and form the decentralised foundation of the network.

Open testnet — one command. The validator set is open. A single installer downloads the binary, installs genesis and the confidential-layer artifacts, requests a starter stake from the on-chain faucet, and bonds your validator — automatically. No application, no waiting. The detailed manual steps below are for operators who prefer to configure each step by hand.
curl -fsSL https://sunima.uk/install/operator.sh | ROLE=cpu bash

1. What your node does

A Sunima Chain validator node runs the full Cosmos SDK application state machine and the CometBFT consensus engine. It:

  • Receives and validates transactions from the mempool
  • Participates in BFT consensus rounds — proposing and pre-voting blocks
  • Signs committed blocks with its consensus key (ed25519)
  • Earns staking rewards proportional to bonded stake

A BFT chain needs at least four validators to tolerate one Byzantine fault. With a healthy multi-validator set the chain keeps producing blocks even if some validators go offline.

BFT
Byzantine Fault Tolerance
CometBFT consensus guarantees finality in one block. The chain continues as long as ⅔+ of bonded stake is online.
Sign
Staking & Rewards
Bond stake tokens to become an active validator. Rewards are distributed per block proportional to bonded stake.
SDK
Cosmos SDK
Built on Cosmos SDK v0.50 + CometBFT — battle-tested stack powering Cosmos Hub, Osmosis, and many sovereign chains.
L1
Sovereign Chain
Sunima Chain is a standalone L1 — no bridges, no rollup dependencies. Validators own the full execution environment.

2. System requirements

Sunima has three node tiers. Each plays a different role and has different hardware needs.

Tier 1 — Validator

Participates in BFT consensus. Proposes and signs blocks (ed25519 — pure CPU work, no GPU needed). Runs the CURARE rule-based runtime sensor alongside the chain daemon. This is the role that secures the network.

ComponentMinimumRecommended
OSUbuntu 22.04 LTS x86-64Ubuntu 24.04 LTS x86-64
CPU16 cores24+ cores
RAM32 GB64+ GB
Disk1 TB NVMe SSD2 TB NVMe SSD
Network100 Mbit, static public IP, outbound TCP 266561 Gbit, dedicated
GPUNot required
Reference classDedicated-CPU VPS (~€45/mo)Dedicated-CPU or bare-metal (~€60-90/mo)
Personal devices (laptop, desktop) are not recommended for production validators once mainnet launches. The hardware figures above are preliminary mainnet targets — today only the testnet is live. Intermittent connectivity, NAT issues, and disk wear make personal devices unreliable for 24/7 operation, so use a dedicated server. Personal devices are fine for testnet experimentation or as Tier 3 (RPC / full node) operators.

Tier 2 — GPU Worker (intake closed)

Performs encrypted computation off-chain and signs attestations. Not part of consensus. These workers are protocol-operated and are not currently a paid role: the gas-fee split pays burn, the validator set, and the protocol treasury — it has no compute channel, so accelerator hardware earns no fee income on this network. We are not asking anyone to buy a card against revenue that does not exist, so this tier is not open for applications. Tier 1 below is open and needs no GPU.

Tier 3 — RPC / Full Node

Serves API requests (read-only queries: balances, history, staking info). Keeps a full copy of chain history. Not a validator — does not participate in consensus, does not sign blocks, no stake required. Useful for integrators (wallets, exchanges, block explorers) and the wider community.

ComponentMinimumRecommended
OSUbuntu 22.04 LTS x86-64 / arm64, macOS (Apple Silicon), Windows WSL2Ubuntu 24.04 LTS
CPU8 cores12+ cores
RAM16 GB32 GB
Disk500 GB SSD1 TB NVMe SSD (chain history grows ~1 GB/day at 1M users)
Network100 Mbit1 Gbit
GPUNot required

Tier comparison: Tier 1 (Validator) is the only tier with stake, slashing, and staking rewards — and the only tier the gas-fee split pays. Tier 2 (GPU Worker) is protocol-operated and earns nothing from fees; intake is closed. Tier 3 (RPC) operates on volunteer or service-provider basis (no native rewards). On testnet all tokens are non-transferable test tokens with no monetary value.

3. Downloads

Download the pre-built binary for your operating system and the genesis file.

Build: sunima-8081-2 · 162 MB · build 2026-09-21 (current)

PlatformBinarySHA-256
Linux x86-64sunimad-linux-amd64.sha256
macOS Apple Silicon (M1/M2/M3/M4)sunimad-darwin-arm64.sha256
WindowsUse WSL2 and the Linux x86-64 binary

Every binary is signed with a Sunima release key. Verify the signature after download (the public key is pinned in Architecture → Trusted Build):

# 1. Download the binary + sha256 + minisig
curl -LO https://sunima.uk/chain/sunimad-linux-amd64
curl -LO https://sunima.uk/chain/sunimad-linux-amd64.sha256
curl -LO https://sunima.uk/chain/sunimad-linux-amd64.minisig

# 2. Check sha256
sha256sum -c sunimad-linux-amd64.sha256

# 3. Verify minisign signature (requires `brew install minisign`)
minisign -V -p <sunima-release.pub> -m sunimad-linux-amd64

Also download the genesis file:

curl -LO https://sunima.uk/chain/genesis.json
curl -LO https://sunima.uk/chain/genesis.json.sha256
curl -LO https://sunima.uk/chain/genesis.json.minisig
sha256sum -c genesis.json.sha256
minisign -V -p <sunima-release.pub> -m genesis.json

Also download the genesis file:

curl -LO https://sunima.uk/chain/genesis.json

4. Initialise

Replace my-validator with your preferred moniker (display name).

# Make the binary executable
chmod +x sunimad-linux-amd64   # or sunimad-darwin-arm64
mv sunimad-linux-amd64 sunimad  # rename for convenience

# Initialise node (creates ~/.sunima/)
./sunimad init my-validator --chain-id sunima_8081-2

# Install the genesis file
cp genesis.json ~/.sunima/config/genesis.json
Default home directory is ~/.sunima/ — not ~/.sunimad/. Double-check paths if you get "no such file or directory" errors.

5. Configure

Set the seed peer and gas price in your node's config files.

Binary

Pre-built Linux binary (amd64):

curl -fsSL https://sunima.uk/chain/sunimad-linux-amd64 -o sunimad
chmod +x sunimad
echo "f441550625d0256b90275db53763a7efc4736b46d5c8a2f30b2bc175095eef37  sunimad" | sha256sum -c -

Verified release: current (2026-09-21). Checksum (SHA-256): f441550625d0256b90275db53763a7efc4736b46d5c8a2f30b2bc175095eef37

Seed peer — ~/.sunima/config/config.toml

Replace the persistent_peers line. The active seed (mainnet-grade, sunima-8081-2 testnet) is reachable at:

SENTRY="[email protected]:26656"
sed -i "s|^persistent_peers = .*|persistent_peers = \"$SENTRY\"|" ~/.sunima/config/config.toml
sed -i "s|^seeds = .*|seeds = \"$SENTRY\"|" ~/.sunima/config/config.toml
sed -i "s|^pex = .*|pex = true|" ~/.sunima/config/config.toml

Ask the operator for the current <node-id> — it rotates when a seed is rebuilt. If you are the operator yourself, run ./sunimad tendermint show-node-id on your seed to fill the slot.

Public seed status: the public seed.sunima.uk is currently not provisioned (single-host testnet — three nodes co-located on the operator's Mac). It comes online when the network opens to external operators (target: 4+ bonded validators). Until then, ask the operator for a direct IP + port to peer with, or use the operator's public node at 150.241.70.52:26656 if port 26656 is forwarded.
Behind a home NAT? If you run two validators on the same home network (same external IP), add allow_duplicate_ip = true under the [p2p] section of config.toml on the seed node.

6. Start the node

Run the node. It will connect to the seed peer and sync the chain.

# Foreground (Ctrl-C to stop)
./sunimad start --minimum-gas-prices="1000000000asuna"

# Background — persists after terminal close
nohup ./sunimad start --minimum-gas-prices="1000000000asuna" > sunimad.log 2>&1 & disown

Tail the log to watch sync progress:

tail -f sunimad.log

You will see lines like received proposal … height=1234 and committed state … height=1234 as the node catches up. Wait until the height matches the live network height before proceeding.

7. Become a validator

The installer script handles the entire validator lifecycle automatically: it downloads the binary and native library, installs genesis and the confidential-layer artifacts, seeds peers, creates your account key, requests a starter stake from the on-chain faucet, registers the operator, submits create-validator, and starts the node in the background.

curl -fsSL https://sunima.uk/install/operator.sh | ROLE=cpu bash

The script prints your sunima1… address and a 24-word mnemonic when done.

Save your mnemonic. The key creation step prints a 24-word mnemonic. Write it down — it cannot be recovered from the server.

7a. Starter stake — automatic

The installer requests your starter stake from the on-chain faucet automatically and waits for it to confirm before bonding. No manual request is needed. The faucet is rate-limited per network address.

7b. Manual create-validator (advanced)

The installer already submits this for you. If you configured the node by hand and want to bond manually, run (replace my-key with the key name you chose):

./sunimad tx staking create-validator validator.json \
  --from=my-key \
  --keyring-backend=test \
  --chain-id=sunima_8081-2 \
  --node=http://localhost:26657 \
  --fees=2000000000asuna \
  --gas=300000 \
  --yes
Use the consensus key (ed25519). The installer generates validator.json automatically with the correct key type. If you edit it manually, use ./sunimad tendermint show-validator — not keys show.

After one block your validator appears on the Network page with status Bonded.

8. Monitoring

Check your node's sync status and peer count via the local RPC:

# Sync status
curl -s http://localhost:26657/status | python3 -m json.tool | grep -E "latest_block_height|catching_up"

# Peer count
curl -s http://localhost:26657/net_info | python3 -m json.tool | grep n_peers

The live network dashboard shows all bonded validators, block height, and stake in real time:

sunima.uk/network →

9. Troubleshooting

ErrorCauseFix
failed to initialize database: resource temporarily unavailable Another sunimad process is already running and holds the DB lock Run sudo pkill -f sunimad, delete any stale lock files with find ~/.sunima/data -name LOCK -delete, then restart
auth failure: secret conn failed Connecting from the same external IP as another validator (NAT) Add allow_duplicate_ip = true under [p2p] in the seed node's config.toml and restart it
validator pubkey type is not supported Used the account key (secp256k1) instead of the consensus key (ed25519) in validator.json Replace pubkey with the output of ./sunimad tendermint show-validator
persistent_peers not connecting (timeout) Port 26656 blocked by firewall Allow outbound TCP 26656 in your firewall / router. On Linux: ufw allow 26656/tcp
genesis.json path error on curl Wrong home directory path (~/.sunimad vs ~/.sunima) The home directory is ~/.sunima/ (no trailing 'd'). Use ~/.sunima/config/genesis.json
Still stuck? Open an issue at github.com/sunima-labs/sunima-evm or reach out via the community Discord.