0Pricing
Web3 & DApp Development Fundamentals · Lektion

Foundry vs. Hardhat

Rust-basierte Tools

Foundry vs. Hardhat ist eine kostenlose Web3 & DApp Development Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Web3 & DApp Development Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

What Is Foundry

Foundry is a fast, Rust-based toolkit for Ethereum development. It lets you write tests, scripts, and deployments entirely in Solidity, with no JavaScript layer required.

Its speed and Solidity-native testing have made it the dominant choice for many professional smart contract teams.

The Four Tools

Foundry ships as four command-line tools:

  • forge — build, test, and deploy contracts
  • cast — interact with chains and contracts from the CLI
  • anvil — a local development blockchain
  • chisel — a Solidity REPL

Together they cover the full development lifecycle.

What Is Hardhat

Hardhat is a JavaScript and TypeScript based development environment. Tests and scripts are written in JS/TS using libraries like ethers.js or viem, and it has a rich plugin ecosystem.

It is well suited to teams comfortable in the Node.js world and projects with heavy off-chain tooling.

Language for Tests

The biggest difference is the testing language:

  • Foundry — tests are Solidity contracts; no context switch from your contract code
  • Hardhat — tests are JavaScript/TypeScript using a chai-style assertion library

Solidity tests give Foundry direct access to internal state and low-level cheatcodes.

// Foundry test (Solidity)
function testIncrement() public {
    counter.increment();
    assertEq(counter.number(), 1);
}

Speed

Foundry's Rust implementation and native EVM make it dramatically faster than Hardhat's Node-based runner, often by an order of magnitude on large suites.

Fast feedback loops matter: when tests run in milliseconds, developers run them constantly, catching bugs earlier.

Project Layout

A Foundry project has a conventional structure:

  • src/ — your contracts
  • test/ — Solidity test files (suffix .t.sol)
  • script/ — deployment scripts (suffix .s.sol)
  • lib/ — dependencies installed as git submodules
  • foundry.toml — configuration
myproject/
  src/Counter.sol
  test/Counter.t.sol
  script/Deploy.s.sol
  lib/forge-std/
  foundry.toml

Dependency Management

Foundry installs dependencies as git submodules via forge install, with import remappings instead of an npm registry. Hardhat uses npm packages.

Submodules keep exact source pinned in your repo, while npm offers familiar versioning and a vast package ecosystem.

$ forge install OpenZeppelin/openzeppelin-contracts
# adds to lib/ and updates remappings

Cheatcodes

Foundry's killer feature is cheatcodes: special calls via the vm object that manipulate EVM state in tests. You can warp time, set balances, impersonate addresses, and expect reverts.

Hardhat offers similar capabilities through helper plugins, but Foundry's are built in and accessible directly from Solidity.

vm.warp(block.timestamp + 1 days);
vm.prank(alice);
vm.expectRevert("not owner");

Scripting and Deployment

Foundry deployments are Solidity scripts run with forge script, using vm.startBroadcast() to send real transactions. Hardhat deployments are JS scripts run with hardhat run.

Solidity scripting keeps deployment logic in the same language as the contracts, reducing context switching.

function run() external {
    vm.startBroadcast();
    new Counter();
    vm.stopBroadcast();
}

Choosing Between Them

There is no universal winner:

  • Choose Foundry for speed, fuzzing, and Solidity-native testing
  • Choose Hardhat for rich JS/TS tooling and a large plugin ecosystem

Many teams use both: Foundry for unit and fuzz tests, Hardhat for complex deployment and integration tasks. They can coexist in one repo.

Installing Foundry

Foundry installs via foundryup, a version manager that fetches the latest binaries. Once installed, forge init scaffolds a new project ready to build and test.

$ curl -L https://foundry.paradigm.xyz | bash
$ foundryup
$ forge init my_project

Quick Check

In what language are Foundry tests written?

Recap

You compared the two main toolkits:

  • Foundry is Rust-based with Solidity tests; Hardhat is Node-based with JS/TS tests
  • Foundry tools: forge, cast, anvil, chisel
  • Foundry is faster and has built-in cheatcodes and fuzzing
  • Dependencies via git submodules vs npm

Next we dive into writing tests with forge.

Häufig gestellte Fragen

Ist die Lektion „Foundry vs. Hardhat“ kostenlos?

Ja — der vollständige Text von „Foundry vs. Hardhat“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Web3 & DApp Development Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Web3 & DApp Development Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Foundry vs. Hardhat“?

Rust-basierte Tools Du übst Web3 & DApp Development Fundamentals mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Web3 & DApp Development Fundamentals zu starten?

Keine Vorkenntnisse erforderlich. Web3 & DApp Development Fundamentals auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Foundry vs. Hardhat“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Web3 & DApp Development Fundamentals-Lektion Code schreiben und ausführen?

Ja. Jede Web3 & DApp Development Fundamentals-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Foundry vs. Hardhat
  2. forge-Tests
  3. Fuzzing und Invarianten
  4. cast und anvil
← Zurück zu Web3 & DApp Development Fundamentals