# Run a Limonata validator Help operate and decentralize the Limonata testnet (`limonata_10777-1`). Running a validator is **operating network infrastructure - a technical service, not an investment.** There is **no staking inflation (x/mint is off)**, so you are not paid to hold a coin; instead validators earn **a share of network transaction fees plus their commission** as compensation for operating a node - payment for a service, not a return on any purchase. Testnet fees are small today. You run a node to help secure and decentralize the network. See the legal note at the bottom. You do **not** need to buy or hold LIMO. Stake is delegated to your validator by the team to give it voting power; those coins remain the team's property. --- ## 0. What you need - A Linux server (2+ vCPU, 4 GB+ RAM, 50 GB+ SSD), reachable on TCP **26656** (p2p). - Go 1.26+ to build the node, or a release binary from the team. - Chain facts: - Cosmos chain-id: **`limonata_10777-1`** | EVM chain-id: **10777 (0x2a19)** - Bond / gas denom: **`aLIMO`** (1 LIMO = 10^18 aLIMO) - Seed/peer node-id: **`4b154368aab24cb5b31c927efd50c73d0f4f9799`** - Genesis: **https://limonata.xyz/genesis.json** ## 1. Get the binary The node binary is `limonatad` (alias of cosmos/evm `evmd`). Two options: **Prebuilt binary** (linux/amd64, the exact build the live network runs — fastest): ```bash curl -sL https://github.com/Limonata-Blockchain/limonata/releases/latest/download/limonatad-linux-amd64.tar.gz | tar xz sudo install limonatad /usr/local/bin/ limonatad version ``` **Or build from source** (Go 1.26+, CGO enabled): ```bash git clone https://github.com/Limonata-Blockchain/limonata.git && cd limonata make install # installs limonatad/evmd into $HOME/go/bin limonatad version ``` ## 2. Initialise + fetch genesis ```bash MONIKER="community-1" # your validator name limonatad init "$MONIKER" --chain-id limonata_10777-1 curl -s https://limonata.xyz/genesis.json -o ~/.limonatad/config/genesis.json limonatad genesis validate-genesis # should print "is a valid genesis file" ``` ## 3. Configure peers + this build's required settings ```bash CFG=~/.limonatad/config/config.toml APP=~/.limonatad/config/app.toml # connect to the network (p2p must be reachable; ask the team if the seed port is closed) sed -i 's#^persistent_peers =.*#persistent_peers = "4b154368aab24cb5b31c927efd50c73d0f4f9799@142.127.103.79:26656"#' "$CFG" # this build REQUIRES the app-side mempool sed -i 's/^type = "flood"/type = "app"/' "$CFG" # accept zero-fee (gas is sponsored by the protocol) sed -i 's/^minimum-gas-prices = .*/minimum-gas-prices = "0aLIMO"/' "$APP" ``` ## 4. Sync the node ```bash # the cosmos chain-id AND the EVM chain-id are REQUIRED on start, or the node # aborts at InitChain ("invalid chain-id on InitChain"). limonatad start \ --chain-id limonata_10777-1 \ --evm.evm-chain-id 10777 \ --minimum-gas-prices 0aLIMO # wait until "catching_up": false limonatad status 2>&1 | grep -o '"catching_up":[a-z]*' ``` Run it under systemd/nohup so it survives your SSH session. ## 5. Create your validator (dust self-bond) A validator needs a tiny self-bond (the protocol's `min_self_delegation` is **1 aLIMO**). Get a few free test LIMO from **https://faucet.limonata.xyz** to your operator address - that is the only LIMO you ever need. ```bash limonatad keys add operator # your operator account (cosmos1...) # fund it from the faucet, then: limonatad comet show-validator # -> paste the pubkey object into validator.json below ``` `validator.json`: ```json { "pubkey": {"@type":"/cosmos.crypto.ed25519.PubKey","key":""}, "amount": "1000000000000000000aLIMO", "moniker": "community-1", "identity": "", "website": "", "security": "", "details": "", "commission-rate": "0.10", "commission-max-rate": "0.20", "commission-max-change-rate": "0.01", "min-self-delegation": "1" } ``` ```bash limonatad tx staking create-validator validator.json \ --from operator --chain-id limonata_10777-1 --gas auto --gas-adjustment 1.3 --fees 0aLIMO -y ``` ## 6. Get voting power You are now a validator, but with only a dust self-bond. Send your **operator address and `cosmosvaloper1...` address** to the team. The team delegates network stake to your validator to give it voting power. That stake stays the team's property and can be undelegated at any time (21-day unbonding). You never custody it. Check your validator: ```bash limonatad query staking validator ``` --- ### Notes for the team (infra prerequisites) - **Publish genesis:** served live at `https://limonata.xyz/genesis.json`. - **Open p2p:** the seed node listens on `0.0.0.0:26656`; ensure TCP `26656` is reachable at `142.127.103.79` (port-forward / firewall) and optionally set `external_address` + a `seed.limonata.xyz` DNS record so the peer string is stable. - **Delegate:** `bash ~/limonata-delegate.sh `. --- ### Legal Running a Limonata validator is operating open-source network infrastructure - a technical service, **not** an investment or security. The chain has no staking inflation (x/mint off), so validators are not paid to hold a coin; they earn **a share of network transaction fees plus their commission** as compensation for operating a node - payment for a service, not a return on any purchase or investment. Testnet fees are small. Stake delegated to your validator by the team remains the team's property and confers no ownership, claim, or interest to you. `$LIMO` is a network-utility coin; testnet tokens are valueless. Any Genesis-network recognition for sustained, reliable operation is **separate, discretionary**, and is not a promised wage or return. Nothing here is an offer, sale, or promise of any asset or investment return.