Transforming Web3 through a Diamond Management System

Alexe Spataru
4 min readMar 15, 2023

--

Let’s face it, smart contract programming is hard. Not everybody has the audacity to learn the Ethereum Virtual Machine and EIP standards, as well as the most important security practices and cryptographic mechanisms. But a lot of people want to create something in web3. Be that from a monetary incentive or simply just out of curiosity.

The same was happening with the early stages of the internet too. Businesses faced the need to invest in digitization because everybody was using the internet, so they either hired a web development agency or used a Content Management System, such as WordPress, Wix, Squarespace, etc., to create their website.

Imagine there would exist something like that for web3!

Imagine you wouldn’t have to write a token or NFT collection contract, worry about compatibility with marketplaces and blockchain explorers, create claiming methods for your users, and on top of that pay exorbitant amounts of money to get your smart contracts audited, just to be sure.

Imagine there was all of that already implemented on the network and you could simply append it to your smart contract embedded into your web3 application.

The way to make it possible is through the ERC-2535: Diamonds, Multi-Facet Proxy standard, whose review finished in October 2022 and is beautifully outlined here by Nick Mudge.

Basically, it describes a modular smart contract system that lives at a single address and can be extended after deployment in an isolated manner. It can be seen as a facade over multiple functionality components to whom it delegates its execution. The components, called Facets, do not actually store any data, but they tell the calling proxy how and where to store it. A handsome feature of these Facets is that they can be Diamonds themselves, meaning you can organize functionality and essentially create an on-chain library that can be used by anyone.

But for more non-tech-savvy readers, better imagine a true diamond composed of multiple parts and the parts themselves composed of their own parts, and after intense time under the pressure, a structured pattern emerges. The one that makes us be fascinated from the colorful rays shining from this magnificent artifact, so fascinated that we put an incredible price for it.

But wait, something is missing, right?

The value of a diamond is usually determined by its clarity, uniqueness, and solidity (pun intended). How these properties can be identified in a smart contract? Let’s break it out in the following way:

  • A clear smart contract has enough view methods that provide either introspective or general data.
  • A unique smart contract has neither more nor less complexity required for its purpose, and it is provided in a special way.
  • A solid smart contract is battle-tested, heavily audited, and considered secure to a significant degree.

Currently, there is a multitude of phenomenal projects using Diamond proxies, some of them outlined below (and more can be found at awesome-diamonds), which emphasize themselves by supporting a wide range of complexity or as an aggregation tool of other protocols. You can’t be more excited about its future and what it means for web3!

  • Aavegotchi — a pixelated universe of ghosts, where you collect items and participate in various activities, i.e. games, events, raffles, lending, governance, staking, and many more.
  • LI.FI — a cross-chain DeFi protocol for swapping and bridging assets that brings us one step closer to interoperability and widespread adoption.
  • Geo Web — a network that connects the physical world to the decentralized space, meaning you have the virtual representation of your house which you can own for example.

So, how to build useful projects that solve real problems, without any knowledge of smart contract development?

We are working on a protocol that allows you to bypass any limits and basically create any smart contract you want, from the available library of templates, delivered and reviewed by a community of developers. The protocol provides incentives for smart contract creators and auditors to earn while providing secure upgrades and functionality to non-technical users. In the end, the ultimate goal is to improve the ease of use and accessibility of smart contracts, meaning creating your token, NFT collection, DAO, and web3 community. And the most beautiful part about it is that you can do basically anything, even transfer it to other people or turn your smart contract immutable.

All of that using Diamonds and Facets.

Possible customization opportunities.

If you have any cool ideas and you want to collaborate, reach out at Telegram, or you can simply follow me on Twitter.

Follow my medium channel to know the latest updates.

Any feedback is appreciated!

Happy forging,
urataps

--

--