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

NEP 171 (NFT) links to ft_* methods, has no minting/burning info #250

Closed
telezhnaya opened this issue Aug 27, 2021 · 6 comments
Closed

NEP 171 (NFT) links to ft_* methods, has no minting/burning info #250

telezhnaya opened this issue Aug 27, 2021 · 6 comments

Comments

@telezhnaya
Copy link
Contributor

Try to ctrl + F ft_ in NFT interface section
https://github.com/near/NEPs/blob/master/specs/Standards/NonFungibleToken/Core.md#nft-interface
You could see 6 places where we require ft_* methods inside NFT implementation. That sounds weird. I thought FT and NFT are separate standards.

@mikedotexe @chadoh @evgenykuzyakov is it a typo?

Another question: I didn't find a place where we document the process of minting NFTs. I see that some implementations have the following methods

"nft_mint"
"nft_mint_for"
"nft_bulk_mint_for"
"nft_drop_mint_for"

But I see nothing about it in NEP. Maybe we should add something about it?

And, finally. What should we do if we want to burn NFT?

chadoh added a commit that referenced this issue Aug 27, 2021
Partially addresses #250

NFT was initially copy-pasted from FT and we failed to update
references to `ft_*` methods in some of the comments.
@chadoh
Copy link
Contributor

chadoh commented Aug 27, 2021

You could see 6 places where we require ft_* methods inside NFT implementation. That sounds weird. I thought FT and NFT are separate standards... is it a typo?

Yes, it's a typo, thanks for reporting this! Fixed in #252

Maybe we should add something about [minting]?

Minting is intentionally not part of the standard, just as it is not part of the ERC20 or ERC721 standards.

This does cause challenges for 3rd parties to track which NFTs a given account owns, as @encody just found in his work on https://stats.gallery/

Ethereum's ERC1155 solves this by requiring a TransferSingle or TransferBatch event to be emitted even on mint/burn, setting sender to null for mint and receiver to null for burn. I wonder if @zcstarr envisions similar behavior for our upcoming Multi Token Standard.

In the meantime, I expect de facto standards/approaches to arise from community experimentation.

What should we do if we want to burn NFT?

I do not have a good answer for this either, and again expect de facto standards to arise.

chadoh added a commit that referenced this issue Aug 30, 2021
Partially addresses #250

NFT was initially copy-pasted from FT and we failed to update
references to `ft_*` methods in some of the comments.
@chadoh
Copy link
Contributor

chadoh commented Aug 30, 2021

@mattlockyer @willemneal I know you've both been working with NFT projects lately. Do either of you have a sense of a de facto approach for minting/burning NFTs? Or a suggestion for @telezhnaya about how you think it should be done?

@willemneal
Copy link
Contributor

Minting should documented. I discovered through trial and error that the current nft_mint provided by the standard only allows the owner of the NFT contract to mint, however, I'm my application and others this won't be the case. So we should at least have different options about what to expect with a nft_*mint*.

@zcstarr
Copy link
Contributor

zcstarr commented Aug 31, 2021

@chadoh yep we discussed events as well, we think events would be the right way to handle this, but the timeline for events seemed perhaps a ways off. The stop gap for the multi token standard is to do things like have methods for determining supply in the standard and follow the function naming convention. I think if events we'd look to have similar events to those listed with tracking the transfers.

Binary events I think really is the long term solution to tracking things like minting and transfers. I think @MaximusHaximus
mentioned that events would also solve some ordering issues that wallet has with regards to transfers.

With regards to minting, I'm all for not having minting in the standard as well.

@telezhnaya
Copy link
Contributor Author

I don't have a solid opinion on how it should be implemented.
But, I want to have a clear understanding, who owns the tokens, how much, when, why.
With our NEPs, I can track all transfers, but I can't track minting/burning in any way.
So it's impossible to make any assumptions about FT/NFT.

It means that we can't fully support FT/NFT in Explorer, Wallet, and other (including 3rd-party) tools.

@telezhnaya
Copy link
Contributor Author

Close this issue since docs are fixed, will reopen separate issue about minting/burning

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

No branches or pull requests

4 participants