Upgrade of NFTStorefrontV2 contract coming on testnet and mainnet

We want to let you know that there will be an upgrade to the NFTStorefrontV2 smart contract.

This upgrade adds a new method to clean up the ghost listings of a seller and this upgrade also introduces a method in the ListingPublic interface called hasListingBecomeGhosted that tells whether the listing becomes ghosted or not.

Expected dates to get the changes in effect is as follows:

  • CanaryNet: Thursday, March 30th
  • Testnet: Thursday, March 30th

And assuming that the upgrades on the canary and testnet go well,

  • Mainnet: Friday, March 31 (This date may be delayed)

The NFTStorefrontV2 code that will be used for the upgrade can be found in this PR.

Note - We are open to changing the timeline if the community provides feedback on the suggested change.

Why This Change is Happening

  • Adding the cleanupGhostListings() function proves advantageous for sellers, as it facilitates the removal of listings that no longer possess the corresponding NFT. Marketplaces, too, can harness this function to routinely purge ghost listings, thereby ensuring the accuracy and validity of displayed offerings on their dashboards.
  • The addition of the hasListingBecomeGhosted() function provides invaluable insights to marketplaces and other decentralized applications (dApps) that seek to feature listings on their platforms. This function effectively discerns whether a given listing is ghosted, thereby promoting transparency and

Action Required

If you have any questions regarding these changes, please ask in the PR comments, on Discord in the #developers channel, or reply here.


This functionality will also be very useful for marketplaces by checking that the listing still exists and preventing the cadence script from panicing when it is unable to borrow the NFT reference from the listing.
This would have to be used as there is no guarantee that ghost listings would be cleaned up.

1 Like

Address of the NFTStorefrontV2 for sandboxnet = 0x848853b371a72163

NFTStoreforntV2 (0x2d55b98eb200daef) Address get updated on testnet

1 Like

NFTStoreforntV2 (0x4eb8a10cb9f87357) Address get updated on Mainnet

1 Like

Another thing I noticed while using the hasListingBecomeGhosted function is that the naming is a bit unintuitive because it seems to return ‘false’ if the listing has become ghosted, whereas the name suggests it should return ‘true’.