Awesome Upgradeability •
A curated list of awesome resources, tutorials, tools and libraries related to smartcontract upgradeability. Inspired by awesome-foundry.
Please check the contribution guidelines for information on formatting and writing pull requests.
Articles:
- Contract upgrade anti-patterns
- Deep dive into the Minimal Proxy contract
- How to create a Beacon Proxy
- Perma-brick UUPS proxies with this one trick
- State of Smartcontract Upgrades
- Storage for Upgradable Ethereum Smart Contracts
- Upgradeable Proxy Contract Security Best Practices by Certik
- Upgradeable Smartcontracts with OZ
- Using the UUPS Proxy pattern
- Using Foundry to Explore Upgradeable Contracts
- Using upgradable proxies safely in Solidity.
- Using UUPS proxy in foundry
- Writing Upgradeable Contracts
Discussions:
- Beware of the proxy: learn how to exploit function clashing
- How to test upgradeable smart contracts - Foundry
- OZ Forum UUPS Proxies: Tutorial (Solidity + JavaScript)
- Standard Proxy Storage Slots
Misc Repos:
- Awesome Diamonds
- Implementation of the various upgradeable proxy pattern [WIP] - Brownie
- Moralis Tutorial - Hardhat
- OpenZeppelin Upgradeable Contracts With Foundry
- Solidity Proxy Playground by yAcademyDAO - Foundry
- Hardhat + Foundry template for managing contract upgrades
- Upgradeability Checks - Slither
- Upgradeable Contracts using the Diamond Storage pattern - Foundry
- Upgradeability test for UUPS-type proxies using Foundry toolkit
Projects:
Publications/Research:
- A Comprehensive Survey of Upgradeable Smart Contract Patterns
- Ethereum Upgradeable Smart Contract R&D - Part 1
- Ethereum Upgradeable Smart Contract R&D - Part 2
- yAcademyDAO Proxies Research
Security (Disclosures/Postmortems):
- Audius Governance Takeover Post-Mortem
- Breaking Aave Upgradeability - ToB
- Harvest Finance Uninitialized Proxies Bugfix Review
- Nomad Bridge incident analysis
- UUPSUpgradeable Vulnerability Post-mortem
- Wormhole Uninitialized Proxy Bugfix Review
Tools:
- ChungSplash - A declarative and deterministic framework for deploying and upgrading smart contracts. Available for both Hardhat and Foundry.
- Foundry Multichain - Multichain Solidity Deployment/Upgradability script pattern
- Foundry Upgrades - Helper smart contracts to deploy and manage upgradeable contracts
- OpenZeppelin Defender Admin for Upgrades - To manage upgrades in production and automate operations.
- OpenZeppelin Hardhat Upgrades - Hardhat plugin for deploying and managing upgradeable contracts.
- Slitherin - Slither Detectors by Pessimistic.io