๐Specification
Overview
The Event-Driven Utilities Standard streamlines the integration and update process of NFTs within diverse applications on the Ethereum blockchain. The process flow is as follows:

Application Registration: Application owners initiate the process by registering their application with the Event-Driven Utilities Smart Contract. Post-registration, each application is associated with an "Update Module". The application owner specifies this module by providing a URL pointing to the content of the "Update Module" stored on decentralized storage (e.g.,
https://ipfs.io/ipfs/QmeSjS...). This module sets out the global attributes for the NFTs and the update mechanisms within the application.NFT Collection Registration: Upon successful application registration, a unique identifier is assigned to the application. The application owner can then proceed to register multiple NFT collections under this application across different blockchains by providing the respective
chain IDandsmart contract address. This registration is performed via a function call to the smart contract, ensuring the NFT collections are recognized for use and updates within the application environment.Status Updates Through Events: Once the application and NFT collections are registered, the application owner can initiate status updates. This is done by emitting events that signal status changes within the application for the updated tokens. The bottom of the diagram illustrates the independent update processes for different applications, allowing them to update their respective statuses through events. This design ensures efficiency and that while applications MAY share NFT collections, the status of these NFTs is managed separately within each application environment, maintaining autonomy and non-interference across applications.
Smart Contract Interface
The interface for our Event-Driven NFT Utilities Standard, which establishes the foundational structure for implementing the proposed standard, is provided below:
Sample JSON Schema
To illustrate the kind of content updateModuleUrl MAY points to, below is a sample JSON schema. This schema specifies the update mechanism, known as the update module, showcasing a potential implementation:
The schema illustrates key components such as applicationId, applicationName, and a list of global_attributes that an application might want to update (e.g., HP, MP, EXP, etc.). It also demonstrates how NFT collections, identified by their chain ID and contract address, can have specific attributes selected.
For example, the key-value pair
specifies the attributes that an NFT collection utilizes based on the global attributes array. The 8453 segment denotes the chain ID of the blockchain network where the NFT collection's smart contract is deployed, with 8453 representing Base Mainnet. The hexadecimal sequence 0x0c1AfA2d6D05da2BE8E73CBA2398cf09a530e2B4 is the smart contract address for the NFT collection on that specific chain. The array [2,4,5] indicates the indices of the global_attributes array that are relevant to this NFT collection, signifying that the NFTs within this collection utilize the attributes EXP, DEF, and SPEED for their dynamic updates.
This schema is critical for clarifying the expected update mechanism, promoting consistent and flexible NFT attribute management, and ensuring interoperability across different blockchain networks within the multi-chain Ethereum ecosystem.
Reference Implementation
A fundamental implementation of the EventDrivenUtilities Standard:
Last updated
Was this helpful?