Overview of the EIP-1967

An advanced examination of Understanding Minimal Proxy Contracts (Advanced) - Explore how minimal proxies separate state and logic using `delegatecall` and EIP-1967 to enable upgrades. Follow a Remix example and understand the critical implications of storage layout and centralization risks.

Solidity Developer

Advanced Foundry

1. Introduction
A comprehensive overview to Understanding Upgradable Smart Contracts and Proxies - Delve into smart contract upgradability, contrasting immutability with the need for fixes/features. Analyze proxy patterns (TPP, UUPS, Diamond), the crucial `delegatecall` function, and the inherent trade-offs involving security and decentralization. Duration: 16min
2. Overview of the EIP-1967
An advanced examination of Understanding Minimal Proxy Contracts (Advanced) - Explore how minimal proxies separate state and logic using `delegatecall` and EIP-1967 to enable upgrades. Follow a Remix example and understand the critical implications of storage layout and centralization risks. Duration: 12min
3. Quiz 18 Quiz
Questions: 7
4. Using Delegatecall
A critical analysis of Solidity's `delegatecall` Function - Analyze the low-level `delegatecall` function, contrasting it with `call` and explaining its role in proxy upgradeability, while understanding the crucial importance and severe risks associated with storage layout compatibility. Duration: 9min
5. OpenZeppelin UUPS Proxies
A practical guide to UUPS Proxy Upgrades with Foundry - Learn the UUPS proxy pattern, its benefits over other methods, and follow a step-by-step Foundry walkthrough to implement and upgrade your own smart contracts securely. Duration: 22min
6. Deploy Upgradeable Smart Contracts
A hands-on lesson for Deploying Your First UUPS Upgradeable Contract with Foundry - Create a Foundry script step-by-step to deploy both the initial logic implementation and the `ERC1967Proxy`, configuring the UUPS pattern for your first upgradeable contract. Duration: 5min
7. Upgrade UUPS proxy smart contracts
A technical walkthrough to UUPS Proxy Upgrades with Foundry - Understand how UUPS enables contract upgrades via proxies and build a Foundry script step-by-step to automate deploying a new implementation and executing the upgrade process. Duration: 6min
8. Testing UUPS proxies
A detailed guide to Testing UUPS Upgradeable Smart Contracts with Foundry - Explore how to leverage Foundry's testing capabilities (`forge test`) to deploy and thoroughly test UUPS upgradeable contracts. Cover deploying V1 via proxy, performing the upgrade to V2, and verifying interactions and state through the proxy pre- and post-upgrade. Duration: 6min
9. Testnet Demo
A step-by-step guide to Deploying and Upgrading UUPS Contracts with Foundry - Deploy an initial UUPS contract system to Sepolia using Foundry scripts, understanding associated centralization risks. Execute the upgrade process, troubleshoot common artifact/FFI issues, and interact with the final contract state via the proxy address. Duration: 7min
10. Quiz 19 Quiz
Questions: 6

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.

Ciara Nightingale

Ciara Nightingale

Developer relations at Cyfrin

Guest lecturers:

Juliette Chevalier

Juliette Chevalier

Lead Developer relations at Aragon

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 20, 2025