Documentation Index
Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
Use this file to discover all available pages before exploring further.
Submit a gentx for the Stateset Commerce Network Testnet
Network: stateset-1-testnet
Denom: ustst (micro‑STST)
Plan: This testnet simulates stateset v0.0.8.
Quick Start (Copy/Paste)
Replace <moniker-name> and <key-name> with your own values.
Default home in this doc is ~/.stateset. If your build uses ~/.statesetd, adjust paths or pass --home ~/.statesetd.
# 0) If you've run Stateset before: stop & clean
sudo systemctl stop statesetd 2>/dev/null || true
statesetd unsafe-reset-all --home ~/.stateset 2>/dev/null || true
rm -f ~/.stateset/config/genesis.json
rm -rf ~/.stateset/config/gentx/
# 1) Build statesetd (source, v0.0.8)
# Requires Go >= 1.17 and a working GOPATH/GOBIN
git clone https://github.com/stateset/core
cd core
git checkout v0.0.8
make build && make install
# Sanity check
statesetd version # expected format example: latest-8e35a4d3
# 2) Initialize node home
statesetd init <moniker-name> --chain-id=stateset-1-testnet --home ~/.stateset
# 3) Fetch the testnet genesis (one of these will be current in the repo)
# Preferred (genesis.json for testnet)
curl -s https://raw.githubusercontent.com/stateset/networks/testnets/main/stateset-1-testnet/genesis.json \
> ~/.stateset/config/genesis.json
# (Alternate fallback used in earlier instructions)
# curl -s https://raw.githubusercontent.com/stateset/networks/main/stateset-1-testnet/pregenesis.json \
# > ~/.stateset/config/genesis.json
# 4) Create a key (choose a secure backend)
statesetd keys add <key-name> --keyring-backend os --home ~/.stateset
# 5) Add a genesis account with funds (10,000 STATE = 10,000,000,000 ustate)
statesetd add-genesis-account $(statesetd keys show <key-name> -a --keyring-backend os --home ~/.stateset) \
10000000000ustate --home ~/.stateset
# 6) Create your gentx (self-delegate 9,000 STATE = 9,000,000,000 ustate)
# Minimal:
statesetd gentx <key-name> 9000000000ustate \
--chain-id=stateset-1-testnet \
--keyring-backend os \
--home ~/.stateset
# (Advanced: include validator metadata & commission params)
# statesetd gentx <key-name> 9000000000ustate \
# --commission-max-change-rate "0.05" \
# --commission-max-rate "0.20" \
# --commission-rate "0.01" \
# --moniker "<moniker-name>" \
# --identity "" \
# --website "" \
# --details "" \
# --security-contact "" \
# --chain-id=stateset-1-testnet \
# --keyring-backend os \
# --home ~/.stateset
# 7) Validate your genesis
statesetd validate-genesis --home ~/.stateset
# 8) Submit the gentx via PR to the networks repo (see "Submit" section below)
# Your gentx file will be at:
# ~/.stateset/config/gentx/gentx-*.json
“First!” — If you’re resetting from a previous run
-
Stop your node
sudo systemctl stop statesetd 2>/dev/null || true
pkill -f statesetd 2>/dev/null || true
-
Unsafe reset
statesetd unsafe-reset-all --home ~/.stateset
-
Remove old genesis & gentxs
rm -f ~/.stateset/config/genesis.json
rm -rf ~/.stateset/config/gentx/
-
Proceed with the gentx flow below.
Heads‑up: Some older builds default to ~/.statesetd instead of ~/.stateset. If your setup uses ~/.statesetd, swap the home path (or pass --home ~/.statesetd on each command).
Prerequisites
- Golang ≥ 1.17 installed and on your
PATH
git, curl, and basic build tools
- (Recommended) A configured GOPATH/GOBIN
Example environment setup (Linux/macOS):
# Add to ~/.profile or ~/.zshrc then `source` it
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
If in doubt:
mkdir -p ~/go
export GOPATH=~/go
Build the statesetd Binary
Option A — Build from Source (recommended for v0.0.8)
git clone https://github.com/stateset/core
cd core
git checkout v0.0.8
make build && make install
This installs statesetd into $GOBIN (commonly ~/go/bin). Ensure it’s on your PATH.
Verify:
statesetd version
# example output: latest-8e35a4d3
Option B — Starport/Ignite (alternative)
If you prefer Starport:
curl https://get.starport.network/starport! | bash
git clone https://github.com/stateset/core
cd core
starport chain build
# Move the built binary into your PATH if needed:
sudo mv ./build/statesetd /usr/local/bin/
Note: Version parity matters for the testnet. If you use Starport, confirm statesetd version aligns with the testnet commit/tag.
Minimum Hardware
- RAM: 8–16 GB
- Disk: 100 GB (SSD recommended)
- CPU: 2 cores
Generate Your gentx
-
Init your node
statesetd init <moniker-name> --chain-id=stateset-1-testnet --home ~/.stateset
-
Pull the testnet genesis
curl -s https://raw.githubusercontent.com/stateset/networks/testnets/main/stateset-1-testnet/genesis.json \
> ~/.stateset/config/genesis.json
(Alternate earlier path used in some guides: .../main/stateset-1-testnet/pregenesis.json)
-
Create a key
statesetd keys add <key-name> --keyring-backend os --home ~/.stateset
-
Add a funded genesis account
statesetd add-genesis-account $(statesetd keys show <key-name> -a --keyring-backend os --home ~/.stateset) \
10000000000ustate --home ~/.stateset
-
Create the gentx
Minimal form:
statesetd gentx <key-name> 9000000000ustate \
--chain-id=stateset-1-testnet \
--keyring-backend os \
--home ~/.stateset
Advanced (with metadata & commission):
statesetd gentx <key-name> 9000000000ustate \
--commission-max-change-rate "0.05" \
--commission-max-rate "0.20" \
--commission-rate "0.01" \
--moniker "<moniker-name>" \
--identity "" \
--website "" \
--details "" \
--security-contact "" \
--chain-id=stateset-1-testnet \
--keyring-backend os \
--home ~/.stateset
Success looks like:
Genesis transaction written to "/home/<you>/.stateset/config/gentx/gentx-******.json"
-
Validate
statesetd validate-genesis --home ~/.stateset
Submit Your gentx
-
Fork the networks repo: https://github.com/stateset/networks
-
Clone your fork:
git clone https://github.com/<your-github-username>/networks
cd networks
-
Copy your gentx into the testnet folder:
mkdir -p testnets/stateset-1-testnet/gentx
cp ~/.stateset/config/gentx/gentx*.json ./testnets/stateset-1-testnet/gentx/
-
Commit & push, then open a PR back to
stateset/networks.
Acceptance note: Only PRs from individuals/groups with a history of successfully running nodes may be accepted to ensure the network launches on time.
Tips & Troubleshooting
-
Home directory differences
Some environments use
~/.statesetd as the default. Either:
- pass
--home ~/.statesetd to every command, or
- symlink:
ln -s ~/.statesetd ~/.stateset (pick one path and stay consistent).
-
Keyring backend
Use
--keyring-backend os for persistence with your OS keystore. Alternatives:
file (plaintext on disk), test (ephemeral/in‑memory).
-
Denom & amounts
-
Denom is
ustate (micro‑units).
-
1 STATE = 1,000,000 ustate
-
Examples:
- 10,000 STATE =
10000000000ustate
- 9,000 STATE =
9000000000ustate
-
Commission fields
If you include commission params in your
gentx, typical values for testnets:
--commission-rate "0.01" (1%)
--commission-max-rate "0.20" (20%)
--commission-max-change-rate "0.05" (5% per day)
-
Build issues (Go/GOPATH)
Ensure:
go version # >= 1.17
echo $GOPATH # set (e.g. $HOME/go)
echo $PATH | grep go # includes $GOPATH/bin and $GOROOT/bin
-
Sanity checks
statesetd version
statesetd validate-genesis --home ~/.stateset
jq .chain_id ~/.stateset/config/genesis.json 2>/dev/null # should show "stateset-1-testnet"
Security Notes
- Back up your mnemonic offline. Anyone with it controls your validator funds.
- Never commit
~/.stateset* contents to any repository.
- Double‑check addresses before submitting on‑chain transactions.
What Happens After PR Merge?
- The Stateset team publishes the final testnet genesis (with accepted gentxs) and launch time.
- You’ll be instructed to download the final genesis and start your node/validator for network launch.