Taking the time to set up the overall development environment is often overlooked, yet is one of the most important tasks. Each person has their own preference and different tasks or scopes of work may call for vastly different setups, so this section will cover just enough to get you started, and pointed in the right direction.

IDE Setup

Remix is a full-feature IDE in a web-app supporting all EVM compatible networks out of the box. A convenient option For quick testing, or as a self-contained smart contract depoyment interface. Read more..

Visual Studio / Visual Studio Code

“VSCode” is widely used and has unparalelled extension support.

Essential Extensions

  • Solidity by Nomic Foundation: Syntax highlighting, code completion, and linting.
  • Go by Google: Required for Cosmos SDK development.
  • Prettier - Code formatter: For automated code formatting.
  • ESLint: For JavaScript/TypeScript error detection.

VS Code Configuration

Create a .vscode/settings.json file in your project root:
{
  "go.testFlags": ["-v"],
  "go.testTimeout": "60s",
  "go.lintTool": "golangci-lint",
  "solidity.defaultCompiler": "remote",
  "solidity.compileUsingRemoteVersion": "v0.8.20+commit.a1b79de6"
}

Core Tooling

Node.js

Most smart contract frameworks require Node.js. Install using Node Version Manager (nvm):
# Install nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

# Install latest LTS Node.js
nvm install --lts

# Install yarn (recommended over npm)
npm install -g yarn

Go

Required for Cosmos SDK development:
# Install Go from https://go.dev/doc/install
# Verify installation
go version

Environment Configuration

Configure your shell environment variables in ~/.bashrc or ~/.zshrc:
# Set Go paths
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

# Useful aliases
alias evm-build='make build'
alias evm-test='make test'

Development Workflow

Always use the provided make targets for consistency with core developers and CI/CD pipelines.

Common Commands

make build      # Build binaries
make test       # Run tests
make lint       # Check code style
make format     # Format code

Project Structure

cosmos-evm/
├── app/           # Application configuration
├── x/             # Custom modules
│   ├── evm/       # EVM module
│   └── feemarket/ # Fee market module
├── tests/         # Integration tests
└── Makefile       # Build automation

Next Steps

With your environment configured, explore the development tools: