Ethereum Development Tutorials
Welcome to our curated list of community tutorials.
Server components and agents for web3 apps
BeginnerOri Pomerantz •July 15, 2024 •8 min
After reading this tutorial, you will be able to write TypeScript servers that listen to events on a blockchain and respond accordingly with their own transactions. This will enable you to write centralized applications (because the server is a point of failure), but can interact with web3 entities. The same techniques can also be used to write an agent that responds to on-chain events without a human in the loop.
IPFS for decentralized user interfaces
BeginnerOri Pomerantz •June 29, 2024 •4 min
This tutorial teaches the reader how to use IPFS to store the user interface for a dapp. Although the application's data and business logic are decentralized, without a censorship resistant user interface users might lose access to it anyway.
What is EIP-4844? Proto-Danksharding and blob transactions explained
IntermediatePatrick Collins •May 29, 2024 •11 min •External
What is the EIP-4844? Learn what proto-danksharding and blobs are, how they work, and how to send your first blob transaction using the new Ethereum improvement proposal
What is EIP-4844? | Blobs & Proto-danksharding
IntermediatePatrick Collins •May 29, 2024 •10 min •External
What is EIP-4844? What are blob-carrying transactions?
Simple NFT Example
BeginnerAustin Griffith •April 24, 2024 •10 min •External
Build, mint, and transfer your own ERC721
Decentralized Staking App
BeginnerAustin Griffith •April 24, 2024 •30 min •External
Build, test, and deploy your own decentralized staking app
Token Vendor
BeginnerAustin Griffith •April 24, 2024 •30 min •External
Build a vending machine to buy and sell your own ERC20
Dice Game
BeginnerAustin Griffith •April 24, 2024 •25 min •External
Deploy a contract to attack a DiceGame contract and predict the randomness so you only roll winners
Build a DEX
IntermediateAustin Griffith •April 24, 2024 •60 min •External
Deploy a decentralized exchange to swap an ERC20 and ETH
State Channel Application
IntermediateAustin Griffith •April 24, 2024 •60 min •External
Create an app to lock collateral onchain, transact offchain, then finalize onchain.
Multisig wallet
IntermediateAustin Griffith •April 24, 2024 •90 min •External
Deploy a multi-signature wallet where enough signatures are required to execute a transaction
Learn Smart Contract Auditing, Security, and DeFi
AdvancedCyfrin Updraft •December 13, 2023 •1320 min •External
The ultimate web3 security course for all those looking to be top smart contract developer or security researchers. We teach you all the cutting edge skills needed to make web3 safer and start a successful career in web3 security.
Building a user interface for your contract
BeginnerOri Pomerantz •November 1, 2023 •15 min
Using modern components such as TypeScript, React, Vite, and Wagmi, we will go over a modern, but minimal, user interface and learn how to connect a wallet to the user interface, call a smart contract to read information, send a transaction to a smart contract, and monitor events from a smart contract to identify changes.
Some tricks used by scam tokens and how to detect them
IntermediateOri Pomerantz •September 15, 2023 •15 min
In this tutorial we dissect a scam token to see some of the tricks that scammers play, how they implement them, and how we can detect them.
How to Get Transaction History for an Address on Ethereum
BeginnerAlchemy •July 1, 2023 •10 min •External
Learn how to get the full transaction history for a smart contract or a user address including external, internal, token, ERC-20, ERC-721 and ERC-1155 token transfers in a single request.
Learn Solidity, Blockchain Development, & Smart Contracts using Foundry
BeginnerPatrick Collins •June 7, 2023 •504 min •External
This course will give you a full introduction to all of the core concepts related to blockchain, smart contracts, Solidity, ERC20s, Foundry, DeFi, Chainlink, Ethereum, upgradable smart contracts, DAOs, IPFS, and more. Follow along with the videos and you'll be a blockchain wizard in no time!
Formal Verification & Symbolic Execution
IntermediatePatrick Collins •April 25, 2023 •10 min •External
We look at formal verification & symbolic execution with two Trail of Bits Web3 security team members. Additionally, we review the value these techniques bring and compare them to other tools.
Fuzzing & Invariant Testing Introduction
BeginnerPatrick Collins •April 13, 2023 •9 min •External
What is fuzz testing? What are invariant tests? We introduce how to use these tools in Web3 & Solidity and explain why they are essential, especially for security.
How to develop and test a dApp on a local, multi-client testnet
IntermediateTedi Mitiku •April 11, 2023 •11 min
This guide will first walk you through how to instantiate and configure a multi-client local Ethereum testnet before using the testnet to deploy & test a dApp.
What is a Smart Contract Audit
BeginnerPatrick Collins •April 6, 2023 •5 min •External
Smart Contract Auditing | What it is, what to expect, and where to look for one. Everything you need to know!
Build an escrow contract with Solidity and Replit
Beginnerreplit •March 24, 2023 •20 min •External
Learn how to build a simple escrow smart contract, which will include deploying your own non-fungible token (NFT) and learning more about Solidity on Ethereum.
Build a robot NFT with Solidity and Replit (part 1)
Beginnerreplit •March 24, 2023 •20 min •External
Learn how to create a simple generative art NFT, ReplBots, with part 1 focusing on the smart contract deployment.
Build a robot NFT with Solidity and Replit (part 2)
Beginnerreplit •March 24, 2023 •15 min •External
Continues from part 1 where you can learn how to create a frontend interface for your NFT application.
Build a smart contract oracle with Solidity, Node.js, and Replit
Beginnerreplit •March 24, 2023 •30 min •External
Learn how to use oracles in smart contracts and how oracles work internally, and gain experience with hybrid on-and-off chain systems.
devpill.me
Beginnerdcbuilder •March 22, 2023NaN •External
devpill.me is a public good blockchain development guide aimed at becoming the go-to learning resource aggregator for building on Ethereum and its wider ecosystem of scaling solutions and applications.
Learn EVM Opcodes Series
BeginnerEngin YILMAZ @veridelisi •March 8, 2023NaN •External
Welcome to the comprehensive series on understanding Ethereum Virtual Machine (EVM) Opcodes
EIP-1271: Signing and Verifying Smart Contract Signatures
IntermediateNathan H. Leung •January 12, 2023 •6 min
An overview of smart contract signature generation and verification with EIP-1271. We also walk through the EIP-1271 implementation used in Safe (previously Gnosis Safe) to provide a concrete example for smart contract developers to build on.
Issuing And Verifying Ethereum DIDs with Metamask
IntermediateAw Kai Shin •November 10, 2022 •9 min •External
An initial explainer on how decentralized identity works
All you can cache
IntermediateOri Pomerantz •September 15, 2022 •23 min
Learn how to create and use a caching contract for cheaper rollup transactions
ERC-20 with Safety Rails
BeginnerOri Pomerantz •August 15, 2022 •8 min
How to help people avoid silly mistakes
How to turn your Raspberry Pi 4 into a node just by flashing the MicroSD card
IntermediateEthereumOnArm •June 10, 2022 •8 min
Flash your Raspberry Pi 4, plug in an ethernet cable, connect the SSD disk and power up the device to turn the Raspberry Pi 4 into a full Ethereum node + validator
Learn Blockchain, Solidity, and Full Stack Web3 Development with JavaScript
BeginnerPatrick Collins •May 26, 2022 •1920 min •External
This course will give you a full introduction to all of the core concepts related to blockchain, smart contracts, Solidity, ERC20s, full-stack Web3 dapps, DeFi, JavaScript, TypeScript, Chainlink, Ethereum, upgradable smart contracts, DAOs, the graph, Moralis, Aave, IPFS, and more. Follow along with the videos and you'll be a blockchain wizard in no time!
Understanding the Yellow Paper's EVM Specifications
Intermediateqbzzt •May 15, 2022 •19 min
Understanding the part of the Yellow Paper, the formal specifications for Ethereum, that explains the Ethereum virtual machine (EVM).
How to develop an NFT Smart Contract (ERC721) with Alchemy
BeginnerVitto Rivabella •May 1, 2022 •48 min •External
A tutorial showing how to develop your first NFT smart contract quickly using OpenZeppelin, Remix, Alchemy, and Opensea. The first lesson of Road to Web3, a series of community-focused weekly Web3 development projects!
Short ABIs for Calldata Optimization
IntermediateOri Pomerantz •April 1, 2022 •14 min
Optimizing smart contracts for Optimistic Rollups
Optimism standard bridge contract walkthrough
IntermediateOri Pomerantz •March 30, 2022 •33 min
How does the standard bridge for Optimism work? Why does it work this way?
Introduction to Foundry
BeginnerPatrick Collins •March 28, 2022 •19 min •External
We build a minimal Foundry project using a staking application to show you how to work with Foundry.
How to build an on-chain DAO
BeginnerPatrick Collins •March 4, 2022 •86 min •External
Using Compound and Openzeppelin as a basis, we build a 100% on-chain DAO using an ERC20 governance token for votes.
How to build an on-chain DAO
BeginnerPatrick Collins •February 24, 2022 •6 min •External
Using Compound and Openzeppelin as a basis, we build a 100% on-chain DAO using an ERC20 governance token for votes.
How to Connect your Smart Contracts to Metamask
BeginnerPatrick Collins •February 11, 2022 •70 min •External
We learn exactly how web3 / blockchain / smart contract applications work in the front end using HTML and Javascript. We then go through 6 different ways you can connect your Metamask, Phantom, or other blockchain wallet address to your front end. We’ll look at popular Nextjs / React packages to make your development lifecycle 100 times easier.
Full Stack Web3 — Everything You Need to Know
BeginnerPatrick Collins •February 7, 2022 •14 min •External
We learn exactly how web3 / blockchain / smart contract applications work in the front end using HTML and Javascript. We then go through 6 different ways you can connect your Metamask, Phantom, or other blockchain wallet address to your front end. We’ll look at popular Nextjs / React packages to make your development lifecycle 100 times easier.
Merkle proofs for offline data integrity
AdvancedOri Pomerantz •December 30, 2021 •10 min
Ensuring data integrity on chain for data that is stored, mostly, off chain
Reverse Engineering a Contract
AdvancedOri Pomerantz •December 30, 2021 •32 min
How to understand a contract when you don't have the source code
Events and Logging in Solidity
BeginnerPatrick Collins •November 25, 2021 •5 min •External
Learn all about solidity events and logging, with hardhat and brownie examples! With video example: https://www.youtube.com/watch?v=KDYJC85eS5M
How to become a blockchain engineer
BeginnerPatrick Collins •November 8, 2021 •12 min •External
We explore the steps one needs to take to enter the world as a blockchain developer and engineer. We talk about how to get there.
Hello World Smart Contract for Beginners - Fullstack
Beginnernstrike2 •October 25, 2021 •45 min
Introductory tutorial on writing and deploying a simple smart contract on Ethereum.
What is Multicall?
IntermediatePatrick Collins •October 14, 2021 •15 min •External
Learn how to make multiple API calls to a blockchain node with a single API call to a multicall contract.
NFT Minter Tutorial
Intermediatesmudgil •October 6, 2021 •28 min
In this tutorial, you’ll build an NFT minter and learn how to create a full stack dapp by connecting your smart contract to a React frontend using MetaMask and Web3 tools.
Solidity, Blockchain, and Smart Contract Course
BeginnerPatrick Collins •September 9, 2021 •960 min •External
This course will give you a full introduction into all of the core concepts in blockchain, smart contracts, solidity, NFTs/ERC721s, ERC20s, Coding Decentralized Finance (DeFi), python and solidity, Chainlink, Ethereum, upgradable smart contracts, and full stack blockchain development.
How to make NFT Art with On-Chain Metadata
BeginnerPatrick Collins •September 3, 2021 •180 min •External
Explore the world of using SVGs to generate random NFT ImageURIs and Metadata 100% on-chain.
The Complete Guide to Full Stack Ethereum Development
BeginnerNader Dabit •August 25, 2021 •18 min •External
Building Full Stack dapps with React, Ethers.js, Solidity, and Hardhat
Leveraged Trading in DeFi
BeginnerPatrick Collins •June 29, 2021 •34 min •External
Leveraged trading is a common strategy in traditional finance, and leveraged trades are even easier to do in DeFi
How to Set Up Tellor as your Oracle
BeginnerTellor •June 29, 2021 •2 min
A guide to get started with integrating the Tellor oracle into your protocol
Hardhat's tutorial for beginners
BeginnerHardhat •June 22, 2021NaN •External
Hardhat's beginners guide to Ethereum contracts and dapp development
Aave Flash Loan Tutorial
IntermediatePatrick Collins •May 24, 2021 •30 min •External
All about upgradable smart contracts, proxies, and using delegatecall in your solidity.
Create your own Blockchain ERC20 Token
BeginnerPatrick Collins •May 24, 2021 •30 min •External
Deploy your smart contract to Opensea, end-to-end.
Learn Foundational Ethereum Topics with SQL
BeginnerPaul Apivat •May 11, 2021 •8 min
This tutorial helps readers understand fundamental Ethereum concepts including transactions, blocks and gas by querying on-chain data with Structured Query Language (SQL).
NFT/ERC-721/Collectible END-TO-END TUTORIAL | Deploy, List on Opensea, Host Metadata on IPFS
BeginnerPatrick Collins •May 9, 2021 •17 min •External
Build your own ERC20 token using Brownie, Python, and Solidity.
Uniswap-v2 Contract Walk-Through
IntermediateOri Pomerantz •May 1, 2021 •60 min
How does the Uniswap-v2 contract work? Why is it written that way?
Upgrading your Smart Contracts | A Tutorial & Introduction
IntermediatePatrick Collins •April 25, 2021 •17 min •External
Learn how to make contracts that use flash loans. Using Brownie, Solidity, Aave.
How to Mint an NFT (Part 2/3 of NFT Tutorial Series)
BeginnerSumi Mudgil •April 22, 2021 •9 min
This tutorial describes how to mint an NFT on the Ethereum blockchain using our smart contract and Web3.
How to View Your NFT in Your Wallet (Part 3/3 of NFT Tutorial Series)
BeginnerSumi Mudgil •April 22, 2021 •2 min
This tutorial describes how to view an existing NFT on MetaMask!
How to Write & Deploy an NFT (Part 1/3 of NFT Tutorial Series)
BeginnerSumi Mudgil •April 22, 2021 •13 min
This tutorial is Part 1 of a series on NFTs that will take you step by step on how to write and deploy a Non Fungible Token (ERC-721 token) smart contract using Ethereum and Inter Planetary File System (IPFS).
Sending Tokens Using ethers.js
BeginnerKim YongJun •April 6, 2021 •2 min
Beginner friendly guide to sending tokens using ethers.js.
Vyper ERC-721 Contract Walkthrough
BeginnerOri Pomerantz •April 1, 2021 •20 min
Ryuya Nakamura's ERC-721 contract and how it works
Hello World Smart Contract for Beginners
Beginnerelanh •March 31, 2021 •12 min
Introductory tutorial on writing and deploying a simple smart contract on Ethereum.
ERC-20 Contract Walk-Through
BeginnerOri Pomerantz •March 9, 2021 •27 min
What is in the OpenZeppelin ERC-20 contract and why is it there?
Testing simple smart contract with Waffle library
BeginnerEwa Kowalska •February 26, 2021 •6 min
Tutorial for beginners
Monitoring Geth with InfluxDB and Grafana
IntermediateMario Havel •January 13, 2021 •4 min
How to Fetch the Current Price of Ethereum in Solidity
BeginnerHarry Papacharissiou •January 5, 2021NaN •External
Learn how to fetch the current price of Bitcoin, Ethereum and other cryptocurrencies in your Solidity smart contracts.
Using WebSockets
BeginnerElan Halpern •December 1, 2020 •6 min
Guide to using WebSockets and Alchemy to make JSON-RPC requests and subscribe to events.
Waffle: Dynamic mocking and testing contract calls
IntermediateDaniel Izdebski •November 14, 2020 •7 min
Advanced Waffle tutorial for using dynamic mocking and testing contract calls
Sending Transactions Using Web3
BeginnerElan Halpern •November 4, 2020 •10 min
This is a beginner friendly guide to sending Ethereum transactions using Web3. There are three main steps in order to send a transaction to the Ethereum blockchain: create, sign, and broadcast. We’ll go through all three.
Getting Started with Ethereum Development
BeginnerElan Halpern •October 30, 2020 •4 min
This is a beginner's guide to getting started with Ethereum development. We’ll take you from spinning up an API endpoint, to making a command line request, to writing your first web3 script! No blockchain development experience necessary!
Testing ERC-20 tokens with Waffle
IntermediateVladislav Starostenko •October 16, 2020 •42 min
Learn how test Solidity smart contracts and use smart contract matchers with Waffle.
Waffle say hello world tutorial with hardhat and ethers
BeginnerMiZiet •October 16, 2020 •4 min
Make your first Waffle project with hardhat and ethers.js
A Python developer's introduction to Ethereum, part 1
BeginnerMarc Garreau •September 8, 2020 •12 min
An introduction to Ethereum development, especially useful for those with knowledge of the Python programming language
A guide to smart contract security tools
IntermediateTrailofbits •September 7, 2020 •6 min
An overview of three different testing and program analysis techniques
Smart contract security checklist
IntermediateTrailofbits •September 7, 2020 •2 min
A suggested workflow for writing secure smart contracts
Smart contract security guidelines
IntermediateTrailofbits •September 6, 2020 •4 min
A checklist of security guidelines to consider when building your dapp
The Graph: Fixing Web3 data querying
IntermediateMarkus Waas •September 6, 2020 •8 min
Blockchain is like a database but without SQL. All the data is there, but no way to access it. Let me show you how to fix this with The Graph and GraphQL.
Token integration checklist
IntermediateTrailofbits •August 13, 2020 •4 min
A checklist of things to consider when interacting with tokens
Downsizing contracts to fight the contract size limit
IntermediateMarkus Waas •June 26, 2020 •6 min
What can you do to prevent your smart contracts from getting too large?
How to use Slither to find smart contract bugs
AdvancedTrailofbits •June 9, 2020 •7 min
How to use Slither to automatically find bugs in smart contracts
How to mock Solidity smart contracts for testing
IntermediateMarkus Waas •May 2, 2020 •4 min
Why you should make fun of your contracts when testing
Kickstart your dapp frontend development with create-eth-app
BeginnerMarkus Waas •April 27, 2020 •6 min
An overview of how to use create-eth-app and its features
Calling a smart contract from JavaScript
Beginnerjdourlens •April 19, 2020 •3 min
How to call a smart contract function from JavaScript using a Dai token example
Set up web3.js to use the Ethereum blockchain in JavaScript
Beginnerjdourlens •April 11, 2020 •3 min
How to use a smart contract to interact with a token using the Solidity language
How to use Echidna to test smart contracts
AdvancedTrailofbits •April 10, 2020 •13 min
How to use Echidna to automatically test smart contracts
Transfers and approval of ERC-20 tokens from a solidity smart contract
Intermediatejdourlens •April 7, 2020 •7 min
How to use a smart contract to interact with a token using the Solidity language
Interact with other contracts from Solidity
Advancedjdourlens •April 5, 2020 •4 min
How to deploy a smart contract from an existing contract and interact with it
Understand the ERC-20 token smart contract
Beginnerjdourlens •April 5, 2020 •5 min
An introduction to deploying your first smart contract on an Ethereum test network
Deploying your first smart contract
Beginnerjdourlens •April 3, 2020 •4 min
An introduction to deploying your first smart contract on an Ethereum test network
Logging data from smart contracts with events
Intermediatejdourlens •April 3, 2020 •2 min
An introduction to smart contract events and how you can use them to log data
How to implement an ERC-721 market
IntermediateAlberto Cuesta Cañada •March 19, 2020 •6 min
How to put tokenized items for sale on a decentralized classifieds board
How to use Manticore to find bugs in smart contracts
AdvancedTrailofbits •January 13, 2020 •11 min
How to use Manticore to automatically find bugs in smart contracts