Instances
Prebuilt instance definitions
Every instance wraps the same lifecycle (start / stop / restart, events, status) around a specific process. Chain instances accept CosmosChainParameters plus chain-specific extras; hermes instead accepts relayer channels and a mnemonic.
One source rule for every chain instance: image-first. Where a usable, version-pinned image exists, it's the instance's default; where none exists, the node source is required — pass image (a container image ref) or binary (a local executable on PATH). The hermes relayer is the exception: not a chain node, it runs as a host binary. See the container runtime guide.
Test nodes
Reference nodes built for testing, not live networks — what you'll boot in most suites:
| Instance | Default source | Use case |
|---|---|---|
Instance.simd() | image ghcr.io/cosmos/simapp | Lightweight Cosmos SDK testing |
Instance.wasmd() | image cosmwasm/wasmd | CosmWasm contracts + IBC |
Instance.evmd() | image (starskiff-published) | Canonical cosmos-evm precompile testing, EVM JSON-RPC |
Instance.hermes() | binary hermes (host relayer) | Relaying between two chain instances |
- simd for plain Cosmos SDK testing.
- wasmd when you need CosmWasm or IBC (a superset of simd).
- evmd when you need an EVM: it additionally exposes
evmPort/evmUrl(JSON-RPC) and useseth_secp256k1keys at coin type 60. - hermes to relay IBC packets between two running chain instances.
Chain nodes
Nodes of real networks (XPLA, Cosmos Hub, maroo) share the exact same lifecycle and parameters — see Chains.
Your chain isn't covered? Define it in a few lines with cosmosBase / cosmosEvmBase.