When creating or fulfilling Seaport orders via the OpenSea SDK, you can now pass in an optional string domain
parameter that will attribute the order to a particular aggregator or marketplace. The SDK will hash the domain and extract the first four bytes of the hash — these four bytes represent the domain’s “tag.”
Tags are on-chain labels that, when provided, indicate either the marketplace where an order was created or where it was fulfilled:
If the domain is passed in at order creation, the tag is added to the first four bytes of the order salt.
If the domain is passed in at order fulfillment, the tag is added to the last four bytes of fulfillment calldata.
For instance, OpenSea’s domain (”opensea.io”) produces a tag of 360c6ebe
; all orders created on OpenSea store this tag in the first four bytes of their salt, and all orders fulfilled on OpenSea store this tag in the last four bytes of their calldata.
seaport-js
or opensea-js
)Adding tags to order salts:
createOrder()
in seaport-js
createBuyOrder()
or createSellOrder
in opensea-js
Adding tags to fulfillment calldata:
fulfillOrder()
, fulfillOrders()
, fulfillAvailableOrders(),
or matchOrders()
in seaport-js
fulfillOrder()
or fulfillPrivateOrder()
in opensea-js
Adding tags to miscellaneous transactions: