EIP-2535: The Diamond Standard

What is EIP-2535?
Firstly, what does EIP standard for? It stands for Ethereum Improvement Proposals. These proposals are used to describe standards for the Ethereum platform in an attempt to standardise and provide high-quality guidance and documentation, as well as specifying new features and processes for the Ethereum network. For example, if a network upgrade was proposed, it would be discussed and developed through the use of an EIP for all the Ethereum community and stakeholders to see, debate and reach consensus. It therefore acts as a governance to decide the implementation of new network upgrades or standardisation. The EIPs are split into 6 main categories as listed below.
- Core
- Networking
- Interface
- ERC
- Meta
- Informational
So now we know what an EIP is, what exactly is EIP-2535 – The Diamond Standard?
Firstly, let’s imagine a diamond. When diamonds are cut, they create facets, and each diamond possesses multiple facets. In the diamond standard, each facet should be considered a function that we can add, replace or remove. Let’s dig deeper.
A diamond is a modular smart contract system in which a contract can interact with multiple external contracts called facets. A facets is a separate contract which stores additional functions, libraries, and storage. There is no limit on how many facets the diamond can interact with.

Here’s the interesting part though, many crypto projects build their Solidity contracts and they become immutable, meaning they can no longer be changed. So, what happens if they want to make a change? They can’t, not to that contract at least and many projects opt to bring out a new revision of their token contract with the updated code, but this creates all kinds of complications with token migrating, lost funds, additional expenditure etc and this is often unfavoured by investors.
Which leads me to why should developers use EIP-2535 instead? As we mentioned above, there is no limit on how many facets the diamond contract can interact with which in theory means no max contract size, not to mention that these facets can be added or upgraded at any given time. This means that if a developer wants to make a change to their contract, they simply add/replace/remove the facet that handles the data for that particular update instead of having to create and implement a whole new contract. Facets can be directed to multiple diamond contracts too. Of course, there are other benefits which we will briefly cover below but the ability to upgrade an already deployed contract is the main advantage.

There is plenty more benefits to utilising the diamond standard. For example, it provides a way to organise contract code and has the added ability to isolate or share different functionality as needed in a gas-efficient way.
A single contract address can be used while utilising multiple contracts.
A diamond can be made immutable if necessary and when necessary, this is an important feature as many communities require contracts to be immutable to become trustless, and therefore ensure confidence.
Finally, a diamond can reuse already deployed contracts, developers can take what’s been deployed on the blockchain and create a custom diamond from the deployed contract, essentially enabling on-chain libraries.
The information above has been simplified to allow a wider audience to learn about EIP-2535. If you want to know more about EIP-2535 you can find the details below.
Which Projects Are Using EIP-2535 Diamonds?
There are several projects already using the EIP-2535 Diamonds. Below are two projects I have personally come across utilising Diamonds to create innovative on-chain projects.
CroSwap: An exclusive Automated Market Maker (AMM) based Decentralized Exchange (DEX) designed to work seamlessly on the fast-growing Cronos Network. Founder Hank Wyatt is leading an experienced team of developers who have recently began building an innovative package of products under the CroSwap. For more information visit CroSwap.com or join their Discord server.
Aavegotchi: A DeFi-enabled crypto collectibles game developed by Pixelcraft Studios. Players can stake NFT avatars and interface with the Aavegotchi metaverse by participating in a variety of activities including mini-games, governance, and meetups. For more information visit Aavegotchi.com.