Tools & Environment Setup

Remix (remix.ethereum.org) is a browser IDE: file explorer, compiler, deploy & run panel with in-browser VMs (Remix VM), debugger, static analysis plugin, and MetaMask connection ("Injected Provider").

4.1 Remix IDE (zero-install — start here)

Remix (remix.ethereum.org) is a browser IDE: file explorer, compiler, deploy & run panel with in-browser VMs (Remix VM), debugger, static analysis plugin, and MetaMask connection ("Injected Provider"). Ideal for learning and quick experiments.

4.2 Foundry (recommended for professional development)

Foundry is a Rust-based toolkit where tests are written in Solidity:

build, test, fuzz, coverage, gas snapshots, deploy scripts, verification

Swiss-army CLI: call contracts, send txs, encode/decode ABI, convert units fast local Ethereum node; can fork mainnet

Project layout: src/ (contracts), test/ (*.t.sol), script/ (*.s.sol), lib/ (dependencies as git submodules), foundry.toml (config).

curl -L https://foundry.paradigm.xyz | bash   # installs foundryup (on Windows use WSL or prebuilt binaries)
foundryup                                     # installs forge, cast, anvil, chisel
forge init my-project && cd my-project
forge build
forge test -vvv
forge install OpenZeppelin/openzeppelin-contracts
anvil                                         # local node at http://127.0.0.1:8545 with 10 funded test accounts
cast --to-wei 1 ether                         # 1000000000000000000
cast call <addr> "balanceOf(address)(uint256)" <holder> --rpc-url $RPC_URL
cast sig "transfer(address,uint256)"          # 0xa9059cbb
# foundry.toml
[profile.default]
src = "src"
out = "out"
libs = ["lib"]
solc_version = "0.8.28"
optimizer = true
optimizer_runs = 200
evm_version = "cancun"
remappings = ["@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/"]

[fuzz]
runs = 1000

4.3 Hardhat (JavaScript/TypeScript ecosystem)

Hardhat is a Node.js development environment with a local network, plugins, and tests in TypeScript/JavaScript (using ethers.js or viem). Hardhat 3 (2025) adds native Solidity tests, multichain simulation, and a Rust-powered runtime, while keeping the TypeScript test workflow.

mkdir my-hardhat && cd my-hardhat
npx hardhat --init            # Hardhat 3 (Hardhat 2: npm i -D hardhat && npx hardhat init)
npx hardhat compile
npx hardhat test
npx hardhat node              # local JSON-RPC node at 127.0.0.1:8545

4.4 The compiler: solc

Version managers: solc-select (Python), or let Foundry/Hardhat download compilers automatically.

npm install -g solc                 # solcjs (JavaScript build)
solc --version
solc --bin --abi --optimize -o build/ MyContract.sol
solc --via-ir --optimize --optimize-runs 1000 MyContract.sol
solc --storage-layout MyContract.sol   # JSON storage layout

4.5 Wallets, networks, explorers

MetaMask, Rabby, Coinbase Wallet, Frame browser wallets that sign transactions Hardware wallets (Ledger, Trezor) keep keys offline — use for real funds and deployer keys

Testnets: Sepolia (apps), Hoodi (validators/staking; replaced Holesky in 2025) free test ETH from faucets

RPC providers: Alchemy, Infura, QuickNode, public endpoints JSON-RPC access to nodes

Explorers: Etherscan, Blockscout, chain-specific explorers inspect txs, verified source, read/write contracts Tenderly, Phalcon transaction simulation, tracing, debugging

4.6 Editor setup

VS Code with the Solidity extension (Nomic Foundation) or JetBrains IDEs with the Solidity plugin; forge fmt or Prettier with prettier-plugin-solidity for formatting; solhint for linting.