Learn how to build on Ethereum; the superpowers and the gotchas.

Start Building on Ethereum
Challenge #0

Tokenization

๐ŸŽซ Create a unique token to learn the basics of ๐Ÿ—๏ธ Scaffold-ETH 2. You'll use ๐Ÿ‘ทโ€โ™€๏ธ HardHat to compile and deploy smart contracts. Then, you'll use a template React app full of important Ethereum components and hooks. Finally, you'll deploy an NFT to a public network to share with friends! ๐Ÿš€
Tokenization
Challenge #1

Decentralized Staking App

๐Ÿฆธ A superpower of Ethereum is allowing you, the builder, to create a simple set of rules that an adversarial group of players can use to work together. In this challenge, you create a decentralized application where users can coordinate a group funding effort. The users only have to trust the code.
Decentralized Staking App
Challenge #2

Token Vendor

๐Ÿค– Smart contracts are kind of like "always on" vending machines that anyone can access. Let's make a decentralized, digital currency (an ERC20 token). Then, let's build an unstoppable vending machine that will buy and sell the currency. We'll learn about the "approve" pattern for ERC20s and how contract to contract interactions work.
Token Vendor
/assets/key_icon.svg
Challenge #3

Dice Game

๐ŸŽฐ Randomness is tricky on a public deterministic blockchain. The block hash is the result proof-of-work (for now) and some builders use this as a weak form of randomness. In this challenge you will take advantage of a Dice Game contract by predicting the randomness in order to only roll winning dice!
Dice Game
Challenge #4

Build a DEX

๐Ÿ’ต Build an exchange that swaps ETH to tokens and tokens to ETH. ๐Ÿ’ฐ This is possible because the smart contract holds reserves of both assets and has a price function based on the ratio of the reserves. Liquidity providers are issued a token that represents their share of the reserves and fees...
Build a DEX
bgBanner_joinBatchClouds
bgBanner_OnboardingBatches
Dive into end-to-end dApp development, receive mentorship from BG members, and learn how to collaborate with fellow developers in openโ€‘source projects.
/assets/vault_icon.svg
Challenge #5

๐ŸŒฝ Over-Collateralized Lending

๐Ÿ’ณ Build your own lending and borrowing platform. Let's write a contract that takes collateral and lets you borrow other assets against the value of the collateral. What happens when the collateral changes in value? We will be able to borrow more if it is higher, or if it is lower, we will also build a system for liquidating the debt position.
๐ŸŒฝ Over-Collateralized Lending
Challenge #6

๐Ÿ’ฐ Stablecoins

๐Ÿช™ Build your own decentralized stablecoin. Let's write a contract that takes collateral and issues MyUSD tokens based on the value of the collateral. What happens when the collateral changes in value? If it is higher, we will be able to borrow more tokens. If it is lower, we will also build a system for liquidating the MyUSD.
๐Ÿ’ฐ Stablecoins
Challenge #7

๐Ÿ“ˆ Prediction Markets

๐Ÿ”ฎ Build a prediction market where users can create questions about future outcomes for others to bet on. Users can also participate in existing markets to speculate on event results. ๐Ÿ“Š Outcome shares can be traded, with prices adjusting dynamically based on market belief. This is possible because the smart contract acts as an automated market maker (like in the DEX challenge) and adjusts odds based on supply and demand.
๐Ÿ“ˆ Prediction Markets
Challenge #8

๐Ÿ”’ ZK Voting

๐Ÿ”’ Build your own decentralized voting system using zero-knowledge proofs. Let's write a contract that allows users to vote on a topic and the results will be computed off-chain using zero-knowledge proofs.
๐Ÿ”’ ZK Voting
Challenge #9

Oracles

๐Ÿ”ฎ Build three powerful oracle systems bringing real-world data on-chain! Level up from simple whitelist oracles to staking-based systems, and finally to optimistic oracles with challenge periods. ๐Ÿ›ก๏ธ Learn crucial security trade-offs while implementing dispute resolution and economic incentives.
Oracles
Build Idea

Multisig Wallet

๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง Using a smart contract as a wallet we can secure assets by requiring multiple accounts to "vote" on transactions. The contract will keep track of transactions in an array of structs and owners will confirm or reject each one. Any transaction with enough confirmations can "execute".
Multisig Wallet
Build Idea

SVG NFT

๐ŸŽจ Create a dynamic SVG NFT using a smart contract. Your contract will generate on-chain SVG images and allow users to mint their unique NFTs. โœจ Customize your SVG graphics and metadata directly within the smart contract. ๐Ÿš€ Share the minting URL once your project is live!
SVG NFT

ETH Tech Tree

Check this advanced Solidity challenges to test your Ethereum dev skills.

Join
ETH Tech Tree image

Capture the Flag

Join our CTF game and hack your way through 12 Smart Contract challenges.

Start
Capture the Flag image