One challenge for NFT Aggregation platforms is the most gas-efficient method to fill an order is directly through the exchange contract (Seaport, LooksRare, etc). However when doing so, the transaction is indistinguishable from an order that was filled on the marketplace where the order was created (e.g. OpenSea). This leads to significant misreporting of where NFT volume is happening, when looking at on-chain analytics. As an example, around 50% of all Gem transactions are filled directly via Seaport, without a novel attribution mechanic, it wouldn't be possible to tell that this volume is happening on Gem.
To solve this problem, we are worked with the NFT community to develop a standard method for attributing sales to the appropriate order source and fill source that is:
- compatible with any exchange
Call data attribution works by having sources pass their domain name in the calldata of each transaction they fill, so that on-chain analytics tools can parse it and determine who filled the order.
Domain names are used because:
- They are easy to read
- They can be visited to learn more
- Additional metadata (icon, etc) can be pulled from html tags
The way it works is that we use 4 bytes of the domain hash:
This is already live in production on Gem and used throughout Reservoir:
We will be rolling this out across Reservoir soon, along with tooling for reverse lookups on domain hashes.
Updated about 1 month ago