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: Privileged Non-Fungible Tokens Tied To RWA #624

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

Conversation

frankmint2024
Copy link

@frankmint2024 frankmint2024 commented Sep 9, 2024

This EIP defines an interface to carry a real world asset with some privileges that can be exercised by the holder of the corresponding NFT. The EIP standardizes the interface for non-fungible tokens representing real world assets with privileges to be exercised, such as products sold onchain which can be redeemed in the real world.

@eip-review-bot
Copy link
Collaborator

eip-review-bot commented Sep 9, 2024

File ERCS/erc-7765.md

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

@eip-review-bot eip-review-bot changed the title Add files via upload Add ERC: Privileged Non-Fungible Tokens Tied To RWA Sep 9, 2024
ERCS/erc-7766.md Outdated Show resolved Hide resolved
Comment on lines +3 to +4
title: Privileged Non-Fungible Tokens Tied To RWA
description: An interface extending ERC-721 representing real world assets that users can exercise privileges with NFTs.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I don't think anything in your proposal is specific to RWAs, so you can drop that from your title and description. It's also possible that I just missed something, so feel free to disagree 🤣

Suggested change
title: Privileged Non-Fungible Tokens Tied To RWA
description: An interface extending ERC-721 representing real world assets that users can exercise privileges with NFTs.
title: Non-Fungible Tokens with Privileges (NFTP)
description: Extending ERC-721 with privileges exercisable by the token owner.

Copy link
Author

Choose a reason for hiding this comment

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

This standard is designed specifically for RWA NFT. We are going to keep no change for the title. Thanks for your suggestion. You can look at rare.shop to meet the first use case for ERC-7765.


## Abstract

This EIP defines an interface to carry a real world asset with some privileges that can be exercised by the holder of the corresponding NFT. The EIP standardizes the interface for non-fungible tokens representing real world assets with privileges to be exercised, such as products sold onchain which can be redeemed in the real world.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I'd like to see a succinct definition of a "privilege" in your abstract. You already have an example, which is good, but I think adding that definition would make your abstract great.

Copy link
Author

Choose a reason for hiding this comment

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

I have added the specific definition of the "privilege" in the newest commit.

ERCS/erc-7765.md Outdated

## Rationale

1. The function `exercisePrivilege` performs the exercise action to a specific privilege of a token. If succeeds, it is expected to emit a PrivilegeExercised event. With this event emitted onchain, we can determine that the user has confirmed the exercise of this privilege, so as to implement the privilege in the real world.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
1. The function `exercisePrivilege` performs the exercise action to a specific privilege of a token. If succeeds, it is expected to emit a PrivilegeExercised event. With this event emitted onchain, we can determine that the user has confirmed the exercise of this privilege, so as to implement the privilege in the real world.
1. The function `exercisePrivilege` performs the exercise action to a specific privilege of a token. If succeeds, it is expected to emit a `PrivilegeExercised` event. With this event emitted onchain, we can determine that the user has confirmed the exercise of this privilege, so as to implement the privilege in the real world.

Copy link
Author

Choose a reason for hiding this comment

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

Updated in the newest commit.

ERCS/erc-7765.md Outdated

## Rationale

1. The function `exercisePrivilege` performs the exercise action to a specific privilege of a token. If succeeds, it is expected to emit a PrivilegeExercised event. With this event emitted onchain, we can determine that the user has confirmed the exercise of this privilege, so as to implement the privilege in the real world.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The function exercisePrivilege performs the exercise action to a specific privilege of a token. If succeeds, it is expected to emit a PrivilegeExercised event.

This text is describing the behaviour of the exercisePrivilege function, and so belongs in the Specification section.

The latter half of this point is perfect to keep in the Rationale.

Copy link
Author

Choose a reason for hiding this comment

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

Updated in the newest commit.

ERCS/erc-7765.md Outdated
Comment on lines 146 to 148
5. The function `getPrivilegeIds` provides a way to manage the binding relationship between NFTs and privilegeIds.

6. EIP-7765Metadata provides specifications for obtaining metadata information of privileges. A contract that implements EIP-7765Metadata **SHALL** also implement EIP-7765.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Similarly, these points are describing behaviour. They should be in the Specification section.

Copy link
Author

Choose a reason for hiding this comment

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

Updated in the newest commit.

ERCS/erc-7765.md Outdated
Comment on lines 146 to 148
5. The function `getPrivilegeIds` provides a way to manage the binding relationship between NFTs and privilegeIds.

6. EIP-7765Metadata provides specifications for obtaining metadata information of privileges. A contract that implements EIP-7765Metadata **SHALL** also implement EIP-7765.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
5. The function `getPrivilegeIds` provides a way to manage the binding relationship between NFTs and privilegeIds.
6. EIP-7765Metadata provides specifications for obtaining metadata information of privileges. A contract that implements EIP-7765Metadata **SHALL** also implement EIP-7765.
6. `IERC7765Metadata` provides specifications for obtaining metadata information of privileges. A contract that implements `IERC7765Metadata` **SHALL** also implement `IERC7765`.

Is this perhaps what you mean?

Copy link
Author

Choose a reason for hiding this comment

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

Updated in the newest commit.

ERCS/erc-7765.md Outdated

## Backwards Compatibility

This standard is an extension of ERC-721. It is fully compatible with both of the commonly used optional extensions (ERC-721Metadata and ERC-721Enumerable) mentioned in the ERC-721 standard.
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
This standard is an extension of ERC-721. It is fully compatible with both of the commonly used optional extensions (ERC-721Metadata and ERC-721Enumerable) mentioned in the ERC-721 standard.
This standard is an extension of ERC-721. It is fully compatible with both of the commonly used optional extensions (`IERC721Metadata` and `IERC721Enumerable`) mentioned in the ERC-721 standard.

Copy link
Author

Choose a reason for hiding this comment

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

Updated in the newest commit.

ERCS/erc-7765.md Outdated

## Reference Implementation

The reference implementation of Privileged NFTs can be found at the repository named EIP-7765-example under the organization of Mint-Blockchain on github.
Copy link
Collaborator

Choose a reason for hiding this comment

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

This is still an external link even though you don't use a URL. Please either put a copy of your reference implementation in the assets/ directory or remove this section. We accept most open source non-copyleft licenses.

Copy link
Author

Choose a reason for hiding this comment

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

I have added the reference implementation contracts in the assets/ directory and link to it in the proposal.
But the HTMLProofer check shows this strange error, and i can't find the eip-7765.html. what should i do here ?

screenshot-20241017-174522

@eip-review-bot eip-review-bot changed the title Add ERC: Privileged Non-Fungible Tokens Tied To RWA Website: Privileged Non-Fungible Tokens Tied To RWA Oct 17, 2024
@github-actions github-actions bot added the w-ci label Oct 17, 2024
@eip-review-bot eip-review-bot changed the title Website: Privileged Non-Fungible Tokens Tied To RWA Add ERC: Privileged Non-Fungible Tokens Tied To RWA Oct 17, 2024
@github-actions github-actions bot added w-ci and removed w-ci labels Oct 17, 2024
@github-actions github-actions bot added w-ci and removed w-ci labels Oct 31, 2024
Copy link

The commit f0d4a82 (as a parent of 7d756f1) contains errors.
Please inspect the Run Summary for details.

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