Skip to content
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

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

williamh-zx
Copy link

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:

  • The PR edits only existing draft PRs.
  • The build passes.
  • Your GitHub username or email address is listed in the 'author' header of all affected PRs, inside .
  • If matching on email address, the email address is the one publicly listed on your GitHub profile.

@eip-review-bot
Copy link
Collaborator

eip-review-bot commented Mar 31, 2024

File ERCS/erc-7672.md

Requires 1 more reviewers from @axic, @g11tech, @SamWilsn, @xinbenlv

@github-actions github-actions bot added the w-ci label Mar 31, 2024
@eip-review-bot eip-review-bot changed the title Initial proposal for Event-Driven NFT Utilities Add ERC: Event-Driven NFT Utilities Mar 31, 2024
@@ -0,0 +1,261 @@
---
eip: <to be assigned>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
eip: <to be assigned>
eip: 7672

Assigning next sequential EIP/ERC/RIP number.
Numbering changed to sequential from 7500.

Please also update the filename.

@williamh-zx
Copy link
Author

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?

Copy link

The commit a22d818 (as a parent of e412ef8) contains errors.
Please inspect the Run Summary for details.

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>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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.
Copy link
Contributor

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.

Copy link
Contributor

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:
Copy link
Contributor

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.
Copy link
Contributor

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.
Copy link
Contributor

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.

Comment on lines +136 to +138
### 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.
Copy link
Contributor

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
Copy link
Contributor

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.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Needs discussion.
Needs discussion. <!-- TODO -->

HTML-style comments will get flagged by the linter to make sure you come back.

Copy link

github-actions bot commented Dec 4, 2024

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants