flow-nft
flow-nft copied to clipboard
Create a generic transaction to burn NFTs
Issue To Be Solved
Users need an easy way to burn NFTs from anywhere that doesn't require the specific app to implement burning functionality. A burner address like in Ethereum would be easiest, but that isn't really possible since you can't transfer to an uninitialized account.
Suggest A Solution
- Maybe use a transaction that sends it to BlackHole
- Maybe use a transaction that just sends it to
Burner. - Either way, it will likely be expected to just be a part of a web front end that anyone can sign in to with an FCL wallet.
- Provide a contract name, address, and NFT ID as arguments.
You should be sending an nft to the Burner contract in case it has any callback functionality defined
Contract address and name isn't really enough, either. You'd need resource name as NFTs do not need to be called NFT. I would suggest taking in the resource type and id as inputs.
Of course, the Burner contract would always be the final destination no matter what. Some projects want an intermediate place for NFTs to go before being burnt though in order to have tracking for which NFTs are burnt and in which groups, etc. Still figuring out what that might look like
@btspoony Do you know if this is something that a lot of people are still asking for? I think something that is a generic receiver is probably a bit too much work for us to maintain, so I believe that our best bet is to just have a transaction like this that can transfer any NFT to the burner contract which destroys it. A user of any NFT project would simply just run that transaction and it could burn any NFT.
We could add it as an option on flow port for now so a user of Top Shot for example could transfer their NFT to flow wallet, then log in to flow port and choose the burn NFT option to burn it.
Do you think that sounds reasonable?
That makes sense to me. The main demand primarily comes from the Topshot Community. But for the transaction, ideally it can accept multiple NFTs.
Good point, I'll update it to accept multiple NFTs