project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5

DeFi Builder

A marketplace of smart contract plugins represented as rentable NFTs for the Safe{CORE} Protocol.

DeFi Builder

Created At

ETHGlobal Istanbul

Winner of

Scroll - Deploy on Scroll

Prize Pool

Safe - SAFE{CORE} PROTOCOL 1st Place

Gnosis Chain - Innovate on Gnosis Chain

Prize Pool

Project Description

The DeFi Builder provides a plugin marketplace platform for Safe{CORE} Protocol that is set to reshape the landscape of developer monetization within the DeFi sector. In our marketplace, each plugin is represented as a unique NFT, available for purchase or rental. This innovative approach introduces Software as a Service (SaaS)-like distribution mechanics to the Safe{CORE} Protocol and other modular architectures.

Our marketplace opens up exciting new opportunities for developers to showcase their work within the context of current NFT marketplaces and royalty standards. Meanwhile, users gain the power to transfer modules and integrate them into various DeFi protocols, enhancing the versatility of their projects. Besides this feature, we have the introduction of an on-chain audit representation system within the NFT metadata. This system is intricately linked to the value of each plugin, providing users with unparalleled transparency and security.

How it's Made

At the core of the architecture is the SafeProtocolRegistry, which is extended with ERC1155 functionality, alongside a renting component (ERC5006), and the NFT royalty standard (ERC2981). Within the collection, each plugin is assigned an associated tokenId upon registration. This tokenId is then used to authenticate that only subscribed users can access the functionality. Before use, each plugin must be minted, where the amount specifies a usage instance of the plugin (one plugin per safe).

More specifically, the plugin must check the balance of its tokenId in executeFromPlugin or any other function chosen by the developer for token gating. Owned and rented NFTs are tracked separately and queried as such (balanceOf vs. usableBalanceOf). Consequently, the developer can introduce specific functionality that is available only when owned, only when rented, or both. If a user owns any module NFTs, they can be rented using the createUserRecord function. This function also freezes the used module instances while being rented to prevent double spending.

However, the settlement layer between buyers/sellers and loaners/renters is handled separately in a Marketplace contract. In this contract, users can list module NFTs for sale or loan, and other individuals can match their order by paying the specified price. For renting, the pricing is calculated on a daily basis, and the renter can select the duration of the loan.

background image mobile

Join the mailing list

Get the latest news and updates