Transient Labs Developer Docs
  • 👋Welcome!
  • 📑TL Creator Contracts
    • Creator Contracts Overview
    • Implementation Contracts
      • v3.x.x
      • v2.x.x
      • v1.x.x
    • Smart Contract Documentation
    • Common Features
      • Access Control
      • Royalties
      • Story Inscriptions
      • NFT Delegation
      • BlockList
    • ERC721TL
    • ERC1155TL
    • Shatter
    • ERC7160TL
    • Doppelganger
    • Collector's Choice
  • ⛔BlockList
    • BlockList Overview
    • Implementation Contracts
    • Deployments
    • Smart Contract Documentation
  • 🔖Story Inscriptions
    • Story Inscriptions Overview
    • Story Inscription Format
    • Smart Contract Documentation
  • 🖼️T.R.A.C.E.
    • T.R.A.C.E. Overview
    • Record Schema
    • Implementation
    • Smart Contract Documentation
      • TRACE
      • TRACERSRegistry
  • 🥞Stacks
    • Stacks Overview
    • Deployments
    • Smart Contract Documentation
  • 🎨Dynamic Art
    • Dynamic Art Overview
    • How to Create
    • How to Display
  • 🔗Integrations
    • Deploying TL Contracts
    • NFT Delegation
    • Integrating with Marketplaces
    • Metadata Structure
    • Inheriting TL Contracts
    • Onchain Art
    • Embeddable Components
  • ❔Miscellaneous
    • Supported Blockchains
    • tl-sol-tools
    • Licensing
    • Batch Upload Secret JSON
Powered by GitBook
On this page
  • Background
  • Solution
  • Compatibility with Marketplaces
  • Source Code
  1. BlockList

BlockList Overview

BlockList helps creators ensure royalties and a reinforces a fundamental part of the value proposition of Web3.

PreviousCollector's ChoiceNextImplementation Contracts

Last updated 1 year ago

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 .

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 repository.

Source Code

here
operator-filter-registry
https://github.com/Transient-Labs/tl-blocklist
⛔
Page cover image