What Blockchain Types Does Starship Support for Development and Testing?
Starship supports over 30 distinct blockchain implementations spanning Cosmos-SDK chains, Solana, and the Ethereum ecosystem through a unified Docker-based configuration system.
The hyperweb-io/starship repository provides a universal inter-chain development environment designed to spin up local devnets for testing cross-chain applications. Understanding what blockchain types does Starship support helps developers determine if their target networks are compatible with this Kubernetes-native testing framework.
Supported Blockchain Categories
Starship organizes its supported blockchains into three primary categories, each defined in the central Docker image catalog at starship/docker/chains/versions.yaml.
Cosmos-SDK Based Chains
The majority of Starship's supported chains run the Tendermint consensus engine and expose standard RPC/REST APIs. These include major networks such as Osmosis, Cosmos Hub, Gaia, Juno, Agoric, Evmos, Sei, Stride, Persistence, Regen, Quasar, Quicksilver, Sommelier, Stargaze, Umee, Wasmd, Simapp, Cheqd, Neutron, Union, Dymension, Kujira, Noble, Xpla, Cronos, Crypto.org Chain, Injective, and ics.
Each entry in versions.yaml specifies the chain identifier and base Docker image:
- name: osmosis
base: ghcr.io/strangelove-ventures/heighliner/osmosis
- name: gaia
base: ghcr.io/strangelove-ventures/heighliner/gaia
Non-Cosmos Smart-Contract Platforms
Starship extends beyond the Cosmos ecosystem to support Solana, including both standard and solana-agave variants. These configurations appear in versions.yaml alongside the Cosmos entries and are validated through dedicated end-to-end tests in starship/tests/e2e/solana_test.go.
Ethereum Ecosystem
For EVM-compatible development, Starship supports Geth (ethereum/client-go), Prysm beacon chain, Prysm validator, and Prysm CLI components. These Ethereum clients are enumerated in versions.yaml and exercised by the test suite in starship/tests/e2e/eth_test.go and eth-lite_test.go.
How Starship Discovers and Configures Blockchains
Starship employs a three-layer discovery mechanism to validate and instantiate supported chains.
Docker Image Catalog
The file starship/docker/chains/versions.yaml serves as the single source of truth for available chain types. Every blockchain Starship can spin up requires an entry containing the name identifier and Docker base image reference.
Configuration Files
Users declare target chains in config.yaml files. The test suite provides ready-made examples in starship/tests/e2e/configs/*.yaml that demonstrate real-world usage patterns:
chains:
- id: osmosis-1
name: osmosis
ports:
rest: 1313
rpc: 26653
- id: cosmoshub-4
name: cosmoshub
ports:
rest: 1317
rpc: 26657
Registry Service Validation
When creating a ChainClient in starship/clients/go/client/chain.go, Starship fetches the chain's registry entry from the local Starship registry endpoint /chains/{chain-id}. This runtime lookup retrieves metadata including Bech32Prefix, Slip44, and fee information, confirming the declared chain is fully supported before instantiation.
Launching a Supported Blockchain in Code
To programmatically launch a supported chain, instantiate the Go client with the appropriate chain configuration:
cfg := &client.Config{
Chains: []*client.Chain{
{
ID: "osmosis-1",
Name: "osmosis",
Ports: client.Port{
Rest: 1313,
Rpc: 26653,
},
},
},
}
logger, _ := zap.NewProduction()
clients, err := client.NewChainClients(logger, cfg)
// clients[0] is a ready-to-use Lens client for the Osmosis devnet
The NewChainClients function validates the configuration against the registry via GetChainRegistry and constructs a Lens client configured with the chain's RPC address, as implemented in starship/clients/go/client/chain.go.
Summary
- Starship supports more than 30 blockchain implementations across Cosmos-SDK, Solana, and Ethereum ecosystems.
- The master list of supported chains resides in
starship/docker/chains/versions.yaml, which maps chain identifiers to Docker images. - Runtime validation occurs through the registry service in
starship/clients/go/client/chain.go, which verifies chain metadata before client instantiation. - End-to-end test configurations in
starship/tests/e2e/configs/*.yamlprovide working examples for most supported chain types. - Adding new blockchain support requires only adding a Docker image entry to
versions.yamland providing a chain-registry JSON file.
Frequently Asked Questions
How many blockchain types does Starship support out of the box?
Starship ships with support for more than 30 distinct blockchain implementations. This includes the full Cosmos-SDK ecosystem (Osmosis, Cosmos Hub, Juno, Neutron, etc.), Solana (standard and Agave variants), and Ethereum ecosystem tooling including Geth and Prysm consensus clients.
Where is the master list of supported blockchains defined?
The definitive catalog resides in starship/docker/chains/versions.yaml. This file enumerates every available chain type with its corresponding Docker base image. For example, entries for name: osmosis, name: solana, and name: ethereum/client-go appear alongside their respective container images.
Can I add custom blockchains to Starship that aren't in the default registry?
Yes. Adding a new blockchain requires updating versions.yaml with the chain's Docker image reference and providing a chain-registry JSON file containing metadata such as Bech32Prefix and Slip44. Once registered, Starship can spin up devnets, expose RPC/REST endpoints, and run the full integration test suite against the new chain.
Does Starship support both mainnet and testnet configurations?
Starship primarily targets local development and testing environments through devnet configurations. While the registry contains metadata for various networks, the system is designed to spin up isolated, ephemeral chains for CI/CD pipelines and local development rather than connecting to live mainnet or public testnet infrastructure.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →