About NFT Sales

The NFT Sales dataset by CryptoSlam! provides Non-Fungible Tokens (NFT) sales volume data in various blockchain marketplaces. This dataset covers 11 blockchains that have their own native Cryptocurrencies. The data starts in June 2017 and is delivered on a daily frequency. This dataset fetches the number of transactions, unique buyers, unique sellers, and the dollar volume of NFT transactions on all secondary marketplaces tracked by CryptoSlam, which includes owner-to-owner sales only (not initial sales from the product directly to the owners).


About CryptoSlam!

CryptoSlam! is an NFT industry data aggregator backed by Mark Cuban. Features project analytics, NFT values, rarity, scarcity, most popular collections, activity history & more.


About QuantConnect

QuantConnect was founded in 2012 to serve quants everywhere with the best possible algorithmic trading technology. Seeking to disrupt a notoriously closed-source industry, QuantConnect takes a radically open-source approach to algorithmic trading. Through the QuantConnect web platform, more than 50,000 quants are served every month.


Algorithm Example

from AlgorithmImports import *
from QuantConnect.DataSource import *

class CryptoSlamNFTSalesAlgorithm(QCAlgorithm):
    
    def initialize(self) -> None:
        self.set_start_date(2019, 1, 1)   # Set Start Date
        self.set_end_date(2020, 12, 31)    # Set End Date
        self.set_cash(100000)

        # NFT usually trades in the Ether blockchain, so the supply-demand of NFT will affect the price of ETH. We use ETHUSD as proxy of overall NFT hype
        self.ethusd = self.add_crypto("ETHUSD", Resolution.MINUTE).symbol
        # Requesting NFT Sales data for trade signal generation
        self.eth_nft_sales_symbol = self.add_data(CryptoSlamNFTSales, "ETH").symbol

        ### Historical data
        history = self.history(self.eth_nft_sales_symbol, 60, Resolution.DAILY)
        self.debug(f"We got {len(history)} items from our history request for ETH CryptoSlam NFT Sales data")

        # Cache the last average sales for comparison in NFT trade popularity
        self.last_avg_sales = None

    def on_data(self, slice: Slice) -> None:
        # Trade based on the updated NFT Sales data
        data = slice.Get(CryptoSlamNFTSales)
        
        if self.eth_nft_sales_symbol in data and data[self.eth_nft_sales_symbol] != None:
            # Calculate the average sales price to determine if NFT price is rising or dropping, which suggest the direction of ETH due to NFT factor
            current_avg_sales = data[self.eth_nft_sales_symbol].total_price_usd / data[self.eth_nft_sales_symbol].total_transactions

            # Comparing the average sales changes, we will buy ethereum if NFT sales is increasing, driving up the demand of ETH
            if self.last_avg_sales != None and current_avg_sales > self.last_avg_sales:
                self.set_holdings(self.ethusd, 1)
            # Else if NFT sales is dropping, we estimate ETH price will drop as well due to lower demand
            else:
                self.set_holdings(self.ethusd, 0)

            self.last_avg_sales = current_avg_sales

Example Applications

The NFT Sales dataset enables you to incorporate NFT sales information into your strategies. Examples include the following strategies: