CIP - Tracking NFT sales across marketplaces

Hi everyone!

In this proposal I’d like to propose and discuss standard for structring transaction metadata for NFT sales.

Motivation

While working on Cardano NFT Marketplace we’ve come to idea to track history of the NFT (token sales, etc.). Currently we have no way of tracking sales for token accross markets.

By standardising metadata for token sales we could show users history of that token, on what marketplaces it has been listed and sold before.

Proposal

In order to track token sales across markets we’d need to include metadata about the token sale. By having standardised metadata structure we can ensure that we can always parse transaction metadata.

{
  "765": {
    "<asset id>": {
      "marketplace": {
        "url": "<marketplace-url>",
        "name": "<marketplace-name>",
		"logo": "ipfs://<ipfs-hash>"
      },
	  "amount": "<amount-number>",
      "purchaseType": "<sale | auction>"
    }
  }
}
  • asset id - ID of Aseet that has been sold (could be possibly asset fingerprint or something similar)
  • marketplace.url - URL of marketplace that token has been listed/sold on
  • marketplace.name - Name of marketplace that token has been listed/sold on
  • marketplace.logo - Logo of marketplace that token has been listed/sold on
  • amount - Amount of tokens sold (This is possibly redudant data)
  • price - Total amount of lovelace that token(s) have been sold for (This is also possibly reduntant data)
  • purchaseType - Provides info about the way token has been purchased, weither it’s auction or sale

Conclusion

I’d like to see your opinion and ideas about my proposal. I think this might be useful for everyone who’s building nft marketplaces or some kinda explorers. I think there is more room for improvement in this CIP so I’m open for any possible suggestions.

1 Like

Great Idea - this is something we will definitely look to implement at Artifct.app - I would suggest a few changes to the metadata format though:

  • I think it’s a waste of blockchain bytes to put the marketplace logo URL in there - easy to derive that from the marketplace URL - same thing with name. Only need one field to identify the marketplace, not three.
  • Additional optional fields: buyer profile URL, seller profile URL, number of bids, starting price, reserve, auction start date,
  • Perhaps a TxHash/Output Index to identify a royalty payment, in the case of sales with CIP-0027 royalties attached?
1 Like

This is a good CIP and should be pursued. It would help the content community a great deal!

1 Like

Yeah I agree, maybe marketplace could stay only one field and in that field we could include just URL.

Great suggestions! We could also include fee percentage for marketplace, txIn hash that has been considered as buy transaction (that way we can always refer for what amount token has been sold in case some marketplace uses their own currency instead of ada).

I love the idea of including royalty info!

Thank you!