Skip to main content

Prerequisites

You’ll need a standard Go development environment:
  • Go 1.23.8+ - Installation guide
  • Git - For repository management
  • Make - For build commands
  • GCC/Build Tools - Required for CGo compilation
If you’re new to Go development, ensure your $GOPATH/bin is in your system PATH. Most package managers (Homebrew, apt, pacman) handle this automatically.

Get the Code

Clone the cosmos/evm repository:
git clone https://github.com/cosmos/evm.git
cd evm
Build and verify:
make install
evmd version

Test Your Setup

The repository includes a development script that launches a fully configured local testnet:
./local_node.sh
This starts a validator node accessible at http://localhost:8545 with all JSON-RPC namespaces enabled (chain ID: 262144). You can:
  • Connect with MetaMask or other Ethereum wallets
  • Interact via the RPC Explorer
  • Use the CLI for consensus-layer operations

Key Concepts

Before building your chain, familiarize yourself with: Precompiled Contracts - Precompiles bridge EVM smart contracts with Cosmos SDK modules, enabling Solidity contracts to access staking, governance, IBC, and other native functionality. Cosmos SDK Modules - Explore the core modules that provide blockchain functionality:
  • Bank - Token transfers and balances
  • Staking - Validator delegation and rewards
  • Governance - On-chain voting and proposals
  • Slashing - Validator penalty enforcement
  • Distribution - Fee and reward distribution

Next Steps

With your development environment ready, you can start configuring the pre-launch parameters. To make the process more manageable, we will go through it in three sections:
  1. Pre-Genesis Configuration - Set chain-id, token parameters and other values that are hard-coded.
  2. Genesis Configuration - Initialize the chain and configure genesis.json parameters such as module configs, genesis token allocations, and validator set.
  3. Runtime Configuration - Set up node-level settings and launch the network.
Proceed to the Pre-Genesis & Genesis Setup guide to begin customizing your chain’s identity and parameters.

Pre-Genesis & Genesis Setup

Configure your chain’s identity, parameters, and genesis file

Additional Configuration Resources

Throughout your configuration journey, refer to these resources: