Solidity Developer

Quiz 14

Questions: 7

Solidity Developer

Advanced Foundry

1. Introduction to NFTs
A practical walkthrough to the Foundry NFT Project - Build both standard IPFS-hosted NFTs and dynamic on-chain SVG NFTs using Foundry. Deploy your creations, view them in wallets, and understand advanced Solidity concepts like ABI encoding and low-level `call`. Duration: 3min
2. What is an NFT
A foundational introduction to What Are Non-Fungible Tokens (NFTs)? - Define unique digital assets (NFTs) using the ERC-721 standard, contrasting them with fungible ERC-20 tokens. Explore key characteristics like provenance and uniqueness, the role of metadata via `tokenURI`, and on-chain vs. off-chain storage trade-offs including IPFS. Duration: 7min
3. Foundry setup
A foundational introduction to the InterPlanetary File System (IPFS) - Explore IPFS as a decentralized storage protocol using content addressing (CIDs) distinct from blockchains, understanding data persistence via pinning. Learn basic file operations using IPFS Desktop and gateways. Duration: 11min
4. Quiz 12 Quiz
Questions: 9
5. Introduction to IPFS
An essential guide to Storing NFT Data with IPFS - Explore why NFTs use IPFS for storing metadata and assets off-chain due to high blockchain costs, understanding the `tokenURI` mechanism, native vs. gateway links, and implement unique token URIs in Solidity. Duration: 8min
6. Upload and use IPFS data (token URI)
A practical tutorial for Creating Your First NFT Deployment Script with Foundry - Build a basic Foundry deployment script to automate deploying your NFT contract. Learn the essential structure, imports, `run` function logic, and key cheatcodes (`vm.startBroadcast`, `vm.stopBroadcast`) for on-chain execution. Duration: 7min
7. Writing the deployment script
A foundational guide to Testing Your BasicNft Contract with Foundry - Discover how to set up a Foundry test environment, write basic tests for deployment parameters (name, symbol), and verify core minting logic including balance updates and token URI checks. Duration: 2min
8. Test the NFTs smart contract
A hands-on tutorial to Scripting NFT Interactions with Foundry - Build a Foundry script step-by-step to find your latest NFT contract deployment via `DevOpsTools` and automatically mint a new token using `vm.broadcast`. Duration: 11min
9. Interact with a smart contract
A hands-on walkthrough to Deploying and Minting Your First NFT on a Testnet with Foundry - Bridge the gap from local development to testnet by deploying an ERC721 contract to Sepolia using Foundry scripts, Makefiles, and FFI. Mint your first NFT, understand token URIs/IPFS metadata, and view it in MetaMask. Duration: 3min
10. Deploy your NFTs on the testnet
A comparative analysis to Understanding NFT Metadata Storage: HTTPS, IPFS, and On-Chain SVGs - Analyze the pros and cons of storing NFT metadata and assets via HTTPS, IPFS, and directly on-chain using SVGs, focusing on decentralization, persistence, and cost. Understand the critical role of IPFS pinning services for ensuring long-term data availability. Duration: 7min
11. IPFS and Pinata vs HTTP vs on chain SVGs
A foundational introduction to SVG Fundamentals for On-Chain NFTs - Explore Scalable Vector Graphics (SVGs), understanding their XML-based format and inherent scalability compared to raster images. See how SVGs can be Base64 encoded into Data URIs for on-chain NFT metadata, paving the way for dynamic, contract-controlled visuals. Duration: 4min
12. What is an SVG?
A hands-on guide to Dynamic, On-Chain SVG NFTs - Explore building fully on-chain NFTs where SVG visuals are stored directly in the contract. Code a dynamic 'Mood NFT' using Solidity/Foundry that changes its appearance based on its state via `tokenURI`. Duration: 8min
13. Quiz 12 Quiz
Questions: 9
14. Create a dynamic NFTs collection
A detailed guide to Building Fully On-Chain NFTs: Encoding SVG Images and Metadata - Explore creating truly decentralized ERC721 NFTs by storing both SVG images and JSON metadata directly on-chain. Learn to use Base64 encoding techniques and implement a dynamic `tokenURI` function returning fully on-chain data URIs. Duration: 5min
15. Encoding SVGs to be stored onchain
A step-by-step walkthrough to Implementing the flipMood Function in Your Mood NFT Contract - Learn how to add a function allowing NFT owners to change their token's mood state. Implement crucial access control using `_isApprovedOrOwner` and handle reverts efficiently with custom errors. Duration: 17min
16. Modify the NFT image onchain
A step-by-step walkthrough to Deploying SVG NFTs with Foundry: Dynamic On-Chain Metadata Script - Master Foundry scripting to deploy NFTs with on-chain SVGs by reading local files, encoding data URIs dynamically within the script, and verifying the entire process with unit and integration tests. Duration: 3min
17. Create the deployment script
A practical guide to Debugging Failing Foundry Tests - Diagnose a common NFT `tokenURI` test failure using Foundry's debugging tools like verbosity, `assertEq`, and `console.log`. Learn systematic steps to pinpoint root causes, such as data mismatches, and implement effective fixes in your Solidity tests. Duration: 18min
18. Debug your smart contract
A hands-on demonstration of Deploying Your First On-Chain SVG NFT with Foundry - Experience deploying, minting, and dynamically updating a fully on-chain SVG NFT using Anvil, Forge, and Cast. Visualize the results directly in MetaMask and understand the core concepts of on-chain data URIs. Duration: 6min
19. Deploy and interact using Anvil
A practical exploration of NFT Metadata Storage Solutions - Compare the pros and cons of storing NFT metadata and assets on-chain versus off-chain. Discover decentralized storage networks like Arweave and Filecoin/IPFS, and tools like `nft.storage`, for ensuring data persistence. Duration: 6min
20. Quiz 19 Quiz
Questions: 11
21. Introduction to Filecoin and Arweave
A detailed examination to Understanding the Building Blocks: EVM, Opcodes, and Bytecode - Delve into EVM fundamentals like bytecode and opcodes, and differentiate between standard (`abi.encode`) and non-standard (`abi.encodePacked`) ABI encoding methods for data transmission and function calls. Duration: 1min
22. Advanced EVM - Opcodes, calling, etc
A technical examination to Introduction to Encoding Function Calls Directly - Explore the conversion of Solidity function calls into binary transaction data via ABI encoding and function selectors. Master the use of low-level `.call` and `.staticcall` for manual contract invocation. Duration: 24min
23. Advanced EVM - Encoding
A practical refresher on Recap: Solidity Encoding, EVM Basics, and Low-Level Calls - Contrast `abi.encode` with `abi.encodePacked`, grasp EVM compilation outputs (bytecode/ABI), and see how transaction data enables contract interaction, preparing for low-level `.call()` usage. Duration: 6min
24. Advanced EVM - Recap
A technical breakdown to Manually Encoding Function Calldata for Low-Level Calls - Examine the process of deriving function selectors and ABI-encoding arguments to create EVM `calldata`. Master Solidity's helper functions like `abi.encodeWithSignature` for low-level contract interactions via `.call()`. Duration: 2min
25. EVM signatures selectors
A security-focused tutorial to How to Securely Verify Metamask Transactions Using Call Data - Move beyond basic Metamask checks by learning to inspect raw call data before signing. Use tools like Foundry (`cast`) and signature databases to decode function calls/parameters, preventing malicious transaction approvals and enhancing your web3 safety. Duration: 15min
26. Verifying a transaction in Metamask
An essential guide to NFTs: Consolidating Key Concepts - Consolidate your understanding of ERC721 NFTs, metadata handling (on-chain/off-chain), Solidity encoding nuances, and low-level call mechanics vital for wallet security. Duration: 8min
27. Section recap
A foundational guide to Setting Up Your Foundry Project for ERC-721 NFTs - Initialize a new Foundry project, integrate OpenZeppelin's ERC-721 contract implementation, and understand the crucial role of token IDs and metadata URIs in NFT creation. Duration: 4min
28. Quiz 27 Quiz
Questions: 11

Course Overview

About the course

What you'll learn

Advanced smart contract development

How to develop a stablecoin

How to develop a DeFi protocol

How to develop a DAO

Advanced smart contracts testing

Fuzz testing

Manual verification

Course Description

Who is this course for?

  • Engineers
  • Smart Contract Security researchers

Potential Careers

Web3 Developer Relations

$85,000 - $125,000 (avg. salary)

Web3 developer

$60,000 - $150,000 (avg. salary)

Smart Contract Engineer

$100,000 - $150,000 (avg. salary)

Smart Contract Auditor

$100,000 - $200,000 (avg. salary)

Security researcher

$49,999 - $120,000 (avg. salary)

Meet your instructors

Patrick Collins

Patrick Collins

Founder at Cyfrin

Web3 engineer, educator, and Cyfrin co-founder. Patrick's smart contract development and security courses have helped hundreds of thousands of engineers kickstarting their careers into web3.

Guest lecturers:

Juliette Chevalier

Juliette Chevalier

Lead Developer relations at Aragon

Ciara Nightingale

Ciara Nightingale

Developer relations at Cyfrin

Vasiliy Gualoto

Vasiliy Gualoto

Developer relations at ThirdWeb

Nader Dabit

Nader Dabit

Director of developer relations at EigenLayer

Ally Haire

Ally Haire

Developer relations at Protocol Labs

Harrison

Harrison

Founder at GasliteGG

Vitto Rivabella

Vitto Rivabella

CPO at Cyfrin

Last updated on May 12, 2025