web3 scaffold

Quickly get up and running on web3

This scaffold is set up as a monorepo using the incredibly fast pnpm, with packages for each part of the project. All of these packages use a common Typescript foundation with linting and autoformatting and is best used with VSCode. It assumes you'll be deploying to an EVM-compatible blockchain.

Packages

app

This is the frontend of your project. It's built on Next.js using Tailwind CSS. Data is read from the smart contract via a subgraph (below) using urql and autogenerated Typescript definitions with GraphQL Code Generator.

contracts

This is where your smart contracts live. They're written in Solidity using Foundry (forge & cast) to compile, test, and deploy. Types are generated with TypeChain.

subgraph

This is the read-only backend for your project and where you can offload a lot of the heavy lifting that would traditionally be done through an eth RPC node. It's written in AssemblyScript and deployed to The Graph.

Deploying

Vercel

Vercel supports monorepos and pnpm out-of-the-box, but you'll need to set the "Root Directory" to packages/app either during the Vercel project setup or afterwards in the project settings.