-
Notifications
You must be signed in to change notification settings - Fork 591
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ERC: Event-Driven NFT Utilities #353
base: master
Are you sure you want to change the base?
Conversation
ERCS/erc-draft-event-driven.md
Outdated
@@ -0,0 +1,261 @@ | |||
--- | |||
eip: <to be assigned> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
eip: <to be assigned> | |
eip: 7672 |
Assigning next sequential EIP/ERC/RIP number.
Numbering changed to sequential from 7500.
Please also update the filename.
update ERC number and discussion link
Hi @abcoathup, there seems to be some issues at HTML Proofer when checking internal links like the diagram plus the reference to an existing ERC like 721 or 1155. Could you advise on this please? |
The commit a22d818 (as a parent of e412ef8) contains errors. |
eip: 7672 | ||
title: Event-Driven NFT Utilities | ||
description: The event-driven mechanism to facilitate distinct utilities of an NFT across multiple applications. | ||
author: William Hong (@williamh-zx), William Hong <william@zeroxtech.com>, Martin Yan <martin@zeroxtech.com>, Saeid Yazdinejad <saeid@zeroxtech.com>, David Wang <david@zeroxtech.com> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
author: William Hong (@williamh-zx), William Hong <william@zeroxtech.com>, Martin Yan <martin@zeroxtech.com>, Saeid Yazdinejad <saeid@zeroxtech.com>, David Wang <david@zeroxtech.com> | |
author: William Hong (@williamh-zx) <william@zeroxtech.com>, Martin Yan <martin@zeroxtech.com>, Saeid Yazdinejad <saeid@zeroxtech.com>, David Wang <david@zeroxtech.com> |
I am assuming that you don't have two people named William Hong on your team.
--- | ||
eip: 7672 | ||
title: Event-Driven NFT Utilities | ||
description: The event-driven mechanism to facilitate distinct utilities of an NFT across multiple applications. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
description: The event-driven mechanism to facilitate distinct utilities of an NFT across multiple applications. | |
description: Event-driven mechanism to facilitate distinct utilities of an NFT across multiple applications. |
|
||
Several key challenges motivate this proposal: | ||
|
||
1. **Static Nature of NFTs:** Once minted, the metadata of most NFTs, including their attributes and utilities, remains unchanged. This rigidity prevents NFTs from evolving over time or interacting dynamically with various dApps. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this true? I feel like many dapps use off-chain URLs for their metadata, but I'm far from an expert.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have a slight preference for SVG images, but PNG is fine if you cannot provide one.
|
||
### Sample JSON Schema | ||
|
||
To illustrate the kind of content `updateModuleUrl` MAY point to, below is a sample JSON schema. This schema specifies the update mechanism, known as the update module, showcasing a potential implementation: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"JSON Schema" is a specific format. I'd recommend using different text here unless you intend this to be JSON Schema.
|
||
The introduction of the Update Module within the Event-Driven NFT Utilities Standard is a strategic choice aimed at maximizing flexibility and specificity in how NFT statuses are updated across applications. This modular approach allows each application to define its own unique set of rules and mechanisms for status updates, encapsulated within a URL pointing to decentralized storage. This design decision was made to ensure that updates are both transparent and verifiable by the community, adhering to the decentralized ethos of the blockchain space. Choosing decentralized storage for hosting the Update Module ensures that the instructions for status changes are immutable and accessible, fostering trust in the update mechanism. It also provides a scalable solution that can accommodate the diverse needs of different applications without congesting the blockchain with extensive data. This method avoids the limitations of a one-size-fits-all approach, enabling applications to tailor the update logic to their specific requirements and dynamics. The Update Module thereby plays a critical role in the standard, ensuring that NFT status updates are conducted in a consistent, secure, and application-specific manner. | ||
|
||
Additionally, for those seeking a more formalized method to implement the update module, `ERC-5185` offers a structured strategy that enables controlled NFT status updates through specific formulas. This method ensures deterministic and limited updates, which are verifiable through on-chain events, thereby making it suitable for applications that desire a methodical approach to NFT status changes. While `ERC-5185` provides an option for scenarios that demand a defined and deterministic update process, this EIP fosters dynamic and application-specific updates for NFTs. Application owners are RECOMMENDED to consider `ERC-5185` for implementing a structured update module. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't put EIPs in backticks. Just link them.
|
||
### Storage Module | ||
|
||
The Event-Driven NFT Utilities Standard is designed to be agnostic regarding the choice of decentralized storage platforms, thereby granting developers the autonomy to select the one that best suits their application's requirements. Supported platforms include, but are not limited to, Filecoin, Arweave, ETH Storage, BNB Greenfield, and others that might offer similar decentralized storage solutions. This flexibility ensures that the storage of update modules and related data can be tailored to the specific security, redundancy, and accessibility needs of each application. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You shouldn't mention specific products.
### Synergies with Other EIPs | ||
|
||
This EIP is strategically crafted to complement and enhance existing EIPs, thereby boosting its utility and fostering greater interoperability across the Ethereum ecosystem. With a focus on a generalized approach, we promote the integration with and adaptation to a wide range of applications: games, social media, event platforms, and beyond. We intend for this EIP to serve as a versatile foundational layer, enabling seamless interaction with other EIPs, such as `EIP-6551`. By highlighting the potential for cooperation and mutual enhancement among EIPs, we demonstrate our dedication to nurturing a unified and expansive ecosystem that capitalizes on the collective progress and innovation within Ethereum. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This paragraph has no actual content. What decision is it justifying?
A fundamental implementation of the EventDrivenUtilities Standard: | ||
|
||
```solidity | ||
// SPDX-License-Identifier: MIT |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code in the proposal itself must be licensed under CC0-1.0. You may move this to the assets directory instead.
|
||
## Security Considerations | ||
|
||
Needs discussion. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Needs discussion. | |
Needs discussion. <!-- TODO --> |
HTML-style comments will get flagged by the linter to make sure you come back.
There has been no activity on this issue for six months. It will be closed in 7 days if there is no new activity. If you would like to move this PR forward, please respond to any outstanding feedback or add a comment indicating that you have addressed all required feedback and are ready for a review. |
When opening a pull request to submit a new EIP, please use the suggested template: https://github.com/ethereum/EIPs/blob/master/eip-template.md
We have a GitHub bot that automatically merges some PRs. It will merge yours immediately if certain criteria are met: