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:Test Your Setup
The repository includes a development script that launches a fully configured local testnet: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:- Pre-Genesis Configuration - Set chain-id, token parameters and other values that are hard-coded.
- Genesis Configuration - Initialize the chain and configure genesis.json parameters such as module configs, genesis token allocations, and validator set.
- Runtime Configuration - Set up node-level settings and launch the network.
Pre-Genesis & Genesis Setup
Configure your chain’s identity, parameters, and genesis file
Additional Configuration Resources
Throughout your configuration journey, refer to these resources:- Configuration Reference - Comprehensive command reference with examples for different configurations
- EVM Mempool Integration - Advanced mempool customization
- Predeployed Contracts - Deploy standard contracts at genesis