Skip to main content
Version: 0.1.0

Quickstart

This runs a local single-node chain on your machine. It is disposable and bound to loopback. It is not the public testnet — see Network status for that.

Prerequisites​

ToolVersionNotes
Goper go.modToolchain directive at the top of go.mod is authoritative
Node.js>= 20Only needed for the docs site and the Vue frontend
makeanyPrimary build entry point

You do not need Ignite CLI. The repository builds and runs with make and go; Ignite is only used for scaffolding new chains.

Build the binary​

git clone <repository-url> centerchain
cd centerchain
make install

This runs go mod verify and installs centerchaind into $(go env GOPATH)/bin. Check it:

centerchaind version

Initialize and start the local devnet​

The repository ships a scripted, reproducible devnet under tests/devnet:

bash tests/devnet/init.sh # builds, inits, recovers keys, patches genesis, gentx
bash tests/devnet/start.sh # starts the node

init.sh is idempotent by default: if DEVNET_HOME already holds a valid genesis and config for centerchain-1, it exits successfully without touching anything. It does not start the node.

:::danger Reinitialization destroys chain state REINIT=1 stops the node and deletes the node home and the fixtures file. The script can also delete an existing home with an invalid or incomplete genesis even without REINIT=1. Back up the home directory and confirm no node owns the configured ports before running either script. :::

VariableDefault
DEVNET_HOME/home/mujdat/.centerchain-devnet
REINITunset (no-op when the home is valid)

Endpoints after start:

ServiceURL
CometBFT RPChttp://127.0.0.1:26657
Cosmos RESThttp://127.0.0.1:1317
gRPC127.0.0.1:9090

The port values have a single source of truth: tests/devnet/ports.json. Read that file rather than assuming, and confirm /status reports centerchain-1 before querying or signing.

curl -s http://127.0.0.1:26657/status | jq '.result.node_info.network'

The devnet keyring uses the test backend and holds two fixture accounts, a validator and an issuer. They are test material for this disposable chain only. tests/devnet/init.sh is the source of truth for their names and balances.

Alternative: Ignite development mode​

ignite chain serve

serves installs dependencies, builds, initializes, and starts the chain in development. Chain-level development options live in config.yml — the chain ID, the genesis accounts, the bond and mint denoms, the bank denom metadata, and the faucet.

:::warning localStorage can override the dashboard defaults The browser dashboards cache their RPC/REST URLs and chain ID in localStorage under cc.rpc, cc.rest, and cc.chainId. A stale cached value silently overrides the page default. Clear those keys when the UI points at the wrong network. :::

Run the tests​

make test # go vet, unit tests, monitor fixtures, production-config checks
make test-race # the same unit tests under the race detector
make test-devnet # devnet integration suite
make lint # golangci-lint

Regenerate protobuf output after changing anything under proto/centerchain/:

make proto-gen

Use the dashboards​

Once the node is running, the two operator surfaces are served from ui/:

SurfaceURL
Investor dashboardhttp://localhost:8000/ui/investor.html
Devnet consolehttp://localhost:8000/ui/devnet-console.html

Serve them from the repository root with any static file server.

Connect to the public testnet instead​

Point the CLI at a public endpoint. RPC and REST share one base URL per node:

centerchaind config chain-id centerchain-testnet-1
centerchaind config node https://rpc0.test.centerchain.org
centerchaind keys list --keyring-backend test

Its tokens are valueless test tokens, and all four of its validators run on a single host. Read Network status before relying on it.