> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cosmos.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Development Environment Setup

> A guide to setting up a local environment for Cosmos EVM development.

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

<Tip>
  [Remix](https://remix.org) 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..](/evm/v0.4.x/documentation/getting-started/tooling-and-resources/remix)
</Tip>

### 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:

```json theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
{
  "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):

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
# 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:

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
# Install Go from https://go.dev/doc/install
# Verify installation
go version
```

## Environment Configuration

Configure your shell environment variables in `~/.bashrc` or `~/.zshrc`:

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
# 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

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

### Common Commands

```bash theme={"theme":{"light":"github-light-high-contrast","dark":"github-dark-high-contrast"}}
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:

<CardGroup cols={2}>
  <Card title="Foundry Guide" href="/evm/v0.4.x/documentation/getting-started/tooling-and-resources/foundry" icon="hammer">
    Fast, efficient smart contract development and testing
  </Card>

  <Card title="Hardhat Guide" href="/evm/v0.4.x/documentation/getting-started/tooling-and-resources/hardhat" icon="wrench">
    Flexible environment for compiling, deploying, and debugging
  </Card>
</CardGroup>
