blockchain.lucas.zip

Prerequisites

What to know, what to install, and what to sign up for before Day 1. · Updated 15 October 2026

Day 1 is on site and hands-on, and the first hour is worth far more if your machine is ready when you walk in. Everything below takes about an hour if your laptop is in good shape. Do it the week before, not the night before: some of the sign-ups involve an email loop.

What you should already know

Hardware

A laptop you can install software on, running macOS, Linux, or Windows. On Windows, use WSL 2 for everything in this module; the native toolchain works but every example, error message, and piece of help you get assumes a Unix shell. 8 GB of RAM is enough; 16 GB is comfortable. You will run a local blockchain node, a compiler, a test runner, and a dev server at the same time.

Software to install

ToolVersionWhy
Node.js22 or later (LTS)Runs Hardhat, the tests, and the frontend. 22, 24 and 26 all work; the checklist below tells you if yours does not
npmComes with NodePackage management
GitAny recentYou know why
A code editor with Solidity supportAny recentAny editor is fine. In VS Code, install the Solidity extension by Nomic Foundation: syntax, errors, go-to-definition. Other editors have an equivalent
Google Chrome or FirefoxAny recentThe wallet is a browser extension
MetaMaskLatestThe wallet. Install the extension from metamask.io, nowhere else
FoundryLatest, optional until Day 4forge, cast and anvil. Day 4’s fork test and the project’s fuzzing axis use them. Install with curl -L https://foundry.paradigm.xyz | bash, then foundryup; on Windows, inside WSL 2

A suggestion rather than a rule: installing Node through a version manager (nvm, fnm, or volta) makes it painless to switch versions later, which tends to come up sooner than expected.

Accounts to create

Getting access to these services is part of a blockchain developer’s job, and the module treats it that way: you create your own. All of them have a free tier that covers this module several times over. Do not pay for anything.

ServiceWhat it gives youNeeded by
The school’s GitHubYour project repositoryDay 2
An RPC provider (Alchemy)A URL your code uses to talk to Base Sepolia. Infura or QuickNode work just as well if you already have an accountDay 2
EtherscanAn API key, to verify your contract source on Basescan, one Etherscan key covers Base and every other chain in the Etherscan familyDay 2
WalletConnect (Reown) CloudA project id, if you want your frontend to connect to mobile wallets. Optional for the sessionsProject

On Alchemy, create an app, enable Base Sepolia on it, and note the HTTPS URL. Its free tier is generous, it supports Base Sepolia out of the box, and its dashboard shows you every request your code makes, which is useful when learning. The public endpoint, https://sepolia.base.org, works too but is rate-limited. One limit to know from the start: Alchemy’s free tier answers eth_getLogs over at most a 10-block range, so a page that reads history from events has to page through it or use the public endpoint, which allows 10,000 blocks per request. Day 4 shows how; for everything else the free tier is more than enough.

For Etherscan, the API key is under your account settings once signed in; there is no separate Basescan key any more.

Before Day 1: the checklist

Run these and check the output. If anything fails, do not spend the evening on it: send the output on Teams, or bring it on Day 1 and it will be sorted in the first hour. The setup is not the point of the module, and nobody should lose time on it alone.

node --version      # v22 or later
npm --version
git --version

Then make a throwaway Hardhat project somewhere, to prove the toolchain works and to warm the package cache, the on-site Wi-Fi will be shared with the whole room:

mkdir hardhat-check && cd hardhat-check
npx hardhat --init

When asked for the project type, choose node-test-runner-viem: a TypeScript project whose tests use Node’s built-in test runner and viem. That is the template every example in the sessions assumes. The prompt is a search box: it shows No matching choices until you type something, and node-test-runner-viem is the default, so pressing Enter is enough. Accept the other defaults, and let it install the dependencies. With npm 11 the install may end with a warning about install-scripts and esbuild: npm now declines to run a package’s install scripts until you allow them. That is expected; if a frontend later fails to build with an esbuild error, run the npm install-scripts approve esbuild the warning suggests, in that project. When it finishes:

npx hardhat test

You should see a handful of passing tests from the example project. Three of them are written in Solidity, in contracts/Counter.t.sol, and run by a fuzzer: the template ships Foundry-style tests next to the TypeScript ones. Ignore them until Day 4. You can delete the directory afterwards.

If something fails, the three usual reasons look like this. A Node version error from npx hardhat --init, or an engine warning about node, means an old Node: install 22 or later, with nvm if you have it. An install that hangs at “installing dependencies” means a proxy or a captive portal between you and npm. A test run that cannot find a compiler means you were offline the first time it ran, and the compiler download failed: run it again connected.

Finally, open the MetaMask extension and create a new wallet.

Write the recovery phrase down somewhere sensible. If you lose it, you lose the wallet, and the testnet ETH in it; nobody can recover it for you.

Optional reading

Nothing is required before Day 1, and the module assumes none of it. If you want a head start, these four are where to spend it. Skip anything about buying tokens.