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

Additions: nft_holder to get the holder of token; nft_token_metadata and nft_token_uri to get token metadata #200

Closed
wants to merge 2 commits into from

Conversation

thor314
Copy link
Contributor

@thor314 thor314 commented May 3, 2021

Justification for additions:

The present core and metadata standard are inflexible. They assume that nft_token, which gets all information about a token, will correctly obtain data that may require more complexity than a simple lookup.

Obtaining information about

  1. Who holds the token
  2. What metadata content is related to the token

are likely to be some of the most commonly used operations on NFT contracts, and should be formalized so that they may be built upon reliably in the NFT contract ecosystem.

@mattlockyer
Copy link
Contributor

Can you elaborate where this will be used? Conceptually?

@thor314
Copy link
Contributor Author

thor314 commented May 13, 2021

nft_holder creates room for complexity to be built around not only "owning" tokens, but also "loaning" or "composing" ownership. In essence, the whole value of an NFT is these exact kinds of games around "who owns this token".

the metadata methods are targets for getting information about the metadata of the token, and the location of the decentralized storage platform. Getting metadata info is also pretty central to what an NFT is/does, and inclusion of these methods makes life easier for front ends querying NFT contracts for data.

@mikedotexe mikedotexe added this to Awaiting review in Frontier Tools Project Board Jul 14, 2021
function nft_token_metadata(token_id: string): TokenMetadata {}
// Get the URI (preferably of a decentralized storage platform) where the token metadata
// is stored.
function nft_token_uri(token_id: string): String {}
Copy link
Contributor

Choose a reason for hiding this comment

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

Do I understand correctly that this would essentially return NFTContractMetadata.base_uri + TokenMetadata.reference?

If that's true, this is essentially a shortcut to get reference. Should we call it nft_token_reference instead of nft_token_uri?

Copy link
Contributor

@chadoh chadoh left a comment

Choose a reason for hiding this comment

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

I think we should probably bump the spec to nft-1.1.0, since this is a new backwards-compatible feature

Copy link
Contributor

@chadoh chadoh left a comment

Choose a reason for hiding this comment

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

See my feedback above. Feel free to contest my requests; I could be easily persuaded that this should be merged as-is.

@chadoh chadoh moved this from Awaiting review to Blocked in Frontier Tools Project Board Jul 15, 2021
@volovyks volovyks moved this from Blocked to Standards in Frontier Tools Project Board Dec 15, 2021
@frol frol added help wanted Extra attention is needed WG-contract-standards Contract Standards Work Group should be accountable labels Sep 5, 2022
@frol frol added S-draft/needs-author-revision A NEP in the DRAFT stage that needs an author revision. and removed help wanted Extra attention is needed labels Oct 5, 2022
@frol
Copy link
Collaborator

frol commented Oct 5, 2022

@thor314 We are bringing NEPs up to speed. Are you still up to getting this NEP discussed and potentially merging it?

@thor314
Copy link
Contributor Author

thor314 commented Oct 5, 2022

I think I'm a bit far moved on to push this. If there are outstanding questions, I would be able to hop on a call, but I haven't been looking in this direction for some time now.

@frol
Copy link
Collaborator

frol commented Oct 6, 2022

In order to move forward, we should clearly define:

  • Who will benefit from this NEP? (there are a bunch of NFT contracts, marketplaces, and connecting dApps, and I don't see them here asking for these methods to be standardized)
  • What are the risks of introducing new methods? (will it actually improve things or only make it worse since some contracts will have this support while others won't)
  • Who is up to implementing these methods in the tooling?
  • Who is up to highlighting them in the tutorials/documentation?

If nobody is ready to champion it, we may put it in a box for now until someone needs it and is ready to contribute their time to finish the NEP and implement it in the SDKs.

@near/wg-contract-standards Given that NEP process has two outcomes: Approved or Rejected, I see this NEP going in the direction to be Rejected due to the lack of capacity/interest from the community. We can re-open / fork rejected NEPs once it is the right time. I want to nominate this NEP to be discussed in the upcoming working group call.

@frol frol added S-voting/needs-wg-voting-indication A NEP in the VOTING stage that needs the working group voting indication. and removed S-draft/needs-author-revision A NEP in the DRAFT stage that needs an author revision. labels Oct 6, 2022
@frol frol requested review from a team and frol October 6, 2022 08:56
@thor314
Copy link
Contributor Author

thor314 commented Oct 6, 2022

Who will benefit from this NEP? (there are a bunch of NFT contracts, marketplaces, and connecting dApps, and I don't see them here asking for these methods to be standardized)

At the time, I was working with mintbase. I was under the understanding that these methods would make for a minimal flexible standard in obtaining NFT metadata, which could be composed with other NFT applications.

What are the risks of introducing new methods? (will it actually improve things or only make it worse since some contracts will have this support while others won't)

The risk of introducing these methods this late in the NFT ecosystem, as opposed to when they were submitted likely outweighs the benefits, especially since it appears there has not been community demand for this use-case, as you mentioned.

If nobody is ready to champion it, we may put it in a box for now until someone needs it and is ready to contribute their time to finish the NEP and implement it in the SDKs.

That seems appropriate.

@ori-near ori-near added the A-NEP A NEAR Enhancement Proposal (NEP). label Oct 13, 2022
@ori-near
Copy link
Contributor

ori-near commented Nov 4, 2022

As a moderator, I am closing this NEP given the concerns that @frol mentioned above and confirmation from the author. If anyone is interested in addressing the concerns above, please submit a new NEP.

@ori-near ori-near closed this Nov 4, 2022
@ori-near ori-near added S-rejected A NEP that was rejected by a working group. and removed S-voting/needs-wg-voting-indication A NEP in the VOTING stage that needs the working group voting indication. labels Nov 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-NEP A NEAR Enhancement Proposal (NEP). S-rejected A NEP that was rejected by a working group. WG-contract-standards Contract Standards Work Group should be accountable
Projects
Frontier Tools Project Board
Standards (move to other board when a...
Status: REJECTED
Development

Successfully merging this pull request may close these issues.

None yet

5 participants