Diamond Resources
Official
- EIP2535 Diamonds - Standard.
- EIP2535 Diamonds discussion thread - Github issue created to discuss Diamonds.
- Twitter @eip2535 - Twitter handle.
- EIP2535 Blog - Technical articles about diamonds.
- EIP2535 Discord Server - Discord server for discussing EIP2535 Diamonds and related things.
- Diamond reference implementation comparisons - Compares Diamond reference implementations.
- diamond-1-hardhat - Simple Diamond reference implementation.
- diamond-2-hardhat - Gas-optimized Diamond reference implementation.
- diamond-3-hardhat - Simple loupe (introspecting functions) Diamond reference implementation.
Diamonds
- Introduction to EIP-2535 Diamonds
- EIP-2535: A standard for organizing modular smart contract system.
- Diamond Loupe Functions
- How to Share Functions Between Facets of a Diamond
- A Beginner’s Guide to The Diamond Standard Proxy
- Idiots Guide to Using an EIP-2535 Diamond Proxy
- EIP 2535: Diamond standard explained — Part 1: Why diamonds?
- EIP 2535: Diamond standard explained – Part 2: What are diamonds and how they work
- EIP 2535: Diamond standard explained – Part 3: Understanding storage patterns in diamonds
- Understanding delegatecall And How to Use It Safely
Diamond Storage
- How Diamond Storage Works
- New Storage Layout For Proxy Contracts and Diamonds
- AppStorage Pattern for State Variables in Solidity
- Upgradeable smart contracts using the Diamond Standard
Diamond Upgrades
Diamonds in Projects
- The Diamond Standard: A new paradigm for upgradeability - DerivaDEX
- Smart Contracts as Apps - 0xhabitat
- Dark Forest & the Diamond Standard - Dark Forest
- We like the (EIP-2535) Diamonds - Premia Finance
- Why Gotchivault is upgrading to the Diamond standard
- Handling multiple tokens, with a modern solidity architecture via Diamonds & ERC1155
- Smart contract packages — upgradeability for normal people
Libraries
Tools
- Louper - The Ethereum Diamond Inspector
- hardhat-diamond-abi
- hardhat-deploy
- Inspector Facet
- Zem
- Foundry-Hardhat-Diamonds
- 0xpm
- diamond-etherscan
- Diamantair
- diamond-diff
Audits
Omniscia
Smart Contract Audit - Omniscia published a smart contract audit of the diamond implementing AllianceBlock’s token bridge, which uses the diamond-3 implementation.
Smart Contract Audit - Omniscia published a smart contract audit of the Seen.Haus Marketplace Diamond, which uses the diamond-3 implementation, modified for role-based access rather than single-owner.
Quantstamp
Smart Contract Audit - Quantstamp published a smart contract audit of Aavegotchi’s staking diamond which used the diamond-2 implementation.
Smart Contract Audit - Quantstamp published a smart contract audit of BarnBridge’s Barn diamond, which uses BarnBridge’s own implementation of EIP-2535 Diamonds based on diamond-1.
Smart Contract Audit - Quantstamp published a smart contract audit of DerivaDEX’s governance diamond, which uses the diamond-3 implementation.
MixBytes
- Smart Contract Audit - MixBytes published a smart contract audit of PieDAO’s ExperiPie diamond, which uses the diamond-2 implementation.
Haechi Audit
- Smart Contract Audit - Haechi Audit published a smart contract audit of BarnBridge’s Barn diamond, which uses BarnBridge’s own implementation of EIP-2535 Diamonds based on diamond-1.