One of the most challenging things about building in the crypto space is that we’re constantly learning about novel and unexpected edge cases for which there are not clear, established product solutions. One such issue has garnered a lot of attention from the community over the past several weeks: when a user transfers an NFT out of a wallet (“Wallet 0xABC123”) while a listing is active, that listing is not automatically canceled–and if the user transfers the NFT back into Wallet 0xABC123, that listing will still be active. In some cases, that listing may now be for an amount below the current floor price for NFTs in that collection.
This issue has been discussed as an “exploit” or a “bug,” but the reality is that it’s a fundamental feature of blockchain marketplaces: only the person who lists an item for sale can cancel that listing (i.e. OpenSea cannot cancel a listing on behalf of any user). This is, in many instances, a very good thing and an important aspect of what makes web3 special: your NFTs are completely in your control.
There is a shared responsibility in the NFT community to educate newcomers to the benefits — and unique pitfalls — that come with interacting with blockchains. But as early members of the NFT space, we have a disproportionate share of that responsibility, and hold our product to a higher standard than most. We wish we had been clearer and more proactive in educating users on the risks of leaving orders uncancelled before transferring an NFT.
As soon as we became aware of this issue earlier this month, our product team identified and began building a number of improvements to help users avoid it. Over the past two weeks we have:
1. Changed the default listing duration on our site from 6 months to 1 month to limit the number of listings that remain active long after they’re relevant.
2. Built a dashboard into the user profile where a user can see all of their listings and cancel any that are no longer relevant.
3. Created an alert to flag when a user transfers an NFT out of their wallet that has an active listing associated with it, so they are made aware and can cancel the listing upon transferring the item.
Our support team has also been working tirelessly to reach out to affected users and reimburse them until our product experience can make this risk clearer. We understand the community’s frustration that we haven’t been more public in our communication on this topic. Simply put, we were concerned that the more attention we drew to this mechanism, the more it could be abused by bad actors. As a result we focused our efforts on reaching out 1:1 with affected users rather than announcing this news more broadly.
It is a huge responsibility to help create standards for a new space, and it’s one we take very seriously. We’ll continue to work to live up to the high bar our community sets for us, and to find ways to make it right when we fall short.