indexer icon indicating copy to clipboard operation
indexer copied to clipboard

Support for list-based collections (e.g. Open Sea Shared Storefront)

Open ptrwtts opened this issue 2 years ago • 0 comments

We currently have support for range-based collections, like Art Blocks. Now we want to add support for list-based, which basically means there is no deterministic logic for how tokens are grouped into collections within a shared contract. There is no universal format for these, so it needs to be done on a case by case basis, per contract. In some cases, we might be able to use on-chain data, like the minter, for the grouping. In other cases, like Open Sea, it will be based on the results from a centralized API.

General Considerations

  • We will likely need to calculate the set id in advance, and keep it up to date
  • We will need to handle queries that assume either full contract or range
  • Anything else?

Open Sea

The first contract that we want to support is the Open Sea Shared Storefront. I suggest we use collection ids with the following format: contract:slug. Unfortunately, there is no static id given, so slug is the best we have. This means that when the slug is changed, it's equivalent to creating a new collection and moving all token IDs there.

ptrwtts avatar Jul 27 '22 09:07 ptrwtts