Here is the case: I got this platform that will let users send specific NFT from other collections. My platform should burn it, and in exchange process some other stuff (unrelated to this).

The issue is that this NFT from another collection has no externally exposed burn function, thus I can't make an interface out of it to call in my code.

If this was an ERC20, I would just simply send it to a dead address, but what I understood from the ERC721 internal _burn function it's not that straightforward.

Well burning tokens this way (sending to 0x0) is still valid, but I'm not entirely sure if opensea will process this as a burn transaction and remove destroyed items from the collection page, and the same goes for etherscan total supply indicator.

Question is, will this trick work?

1 Answer 1


ERC20 and ERC721 have the same concepts for burning. There are two options:

  1. Explicit burn by calling some sort of burn functionality. This has to be included in the code before deployment.

  2. Sending to a dead address, such as 0x0.

The first is always better, since it explicitly reduces the total supply of the asset and it's almost literally burned - it simply doesn't exist anymore after that.

There is nothing strange or special in the ERC721's _burn functionality, it basically does the same thing as ERC20.

From the contract's point of view, you can use either way. Whether external services (such as Opensea) treat it 'correctly' after the second type of burning is up to their implementation (I have no idea).

  • 1
    All correct. And OpenSea will treat it correctly if sent to 0x0. Note that some ERC-721 implementations specifically disallow sending to 0x0 so you may need to send to 0x1. That will cause some problems for OpenSea and other things, but we would discuss that in a separate question. Jan 24, 2022 at 14:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.