BlockList Overview
BlockList helps creators ensure royalties and a reinforces a fundamental part of the value proposition of Web3.
Background
It's a race to zero in terms of marketplace fees, but in an effort to keep cash flow, some marketplaces have decided forego creator royalties. This hurts creators an incredible amount and we believe that creators should have the option to block having their art listed on these platforms.
This is why we created BlockList.
Solution
The BlockList.sol
contract can be inherited by NFT contracts and the modifier notBlocked(address)
can be used on setApprovalForAll
and approve
functions in ERC-721 and/or ERC-1155 contracts. We have included a sample implementation of both in the source code.
Theoretically, this modifier could be applied to other functions, but we HIGHLY advise against this. Applying this logic to transfer functions introduces slight vulnerabilties that should be avoided. Any contract created by Transient Labs avoids this implementation.
Compatibility with Marketplaces
As of 2/16/2023, Blur and OpenSea both enforce royalties if non-royalty-paying marketplaces are blocked on contracts... with some expectations.
Blur will enforce royalties if a contract blocks OpenSea and OpenSea will enforce royalties if a contract blocks Blur. If a contract blocks Blur, Blur can use Seaport (OpenSea's marketplace engine) and enforces a minimum of 0.5% royalty. You can read more about this fight here.
Transient Labs provides different BlockList Registries for creators out of the box (see next page) for these two marketplaces, but encourages creators to have sovereignty over their own BlockList Registries.
As of 1/31/2023, this method has been verified to work on OpenSea, X2Y2, and Blur. It passes all verification tests in the operator-filter-registry repository.
Source Code
Last updated