SeaFarer - Beta
AI-driven NFT price prediction & insights tool.
(CURRENTLY DISCONTINUED)
Overview.
SeaFarer is an NFT utility/analysis tool which incorporates various AI techniques in order to assist users in finding suitable NFT trades depending on their needs.
Dataset.
The dataset that we are using to train the model on is data that we have collected ourselves with specific attention given to:
Total NFT Volume
Floor price changes over time (time series)
Volume changes over time (time series) During the initial build of the model,, we referred to various datasets from public repositories. This was to determine what metrics may be useful for finding the best NFTs on the market.
The initial headers of the training data are indexed by the following values:
transactionHash
transactionIndex
tokenIds
sellerAddress
buyerAddress
tokenAddress
marketplaceAddress
priceTokenAddress
price
blockTimestamp
blockNumber
blockHash
Sorting as applied in this fashion:
What collections does it work on?
The dataset initially works on the top 50 collections on OpenSea by volume and has the capacity to determine which ones are performing best based on the data that has been collected over a given time-frame, for the beta implementation, the maximum transaction window size will be at 7 days prior to the call date.
# Load and preprocess the data
df = pd.read_csv('nft_trades.csv')
df['blockTimestamp'] = pd.to_datetime(df['blockTimestamp'])
df.sort_values('blockTimestamp', inplace=True)
df.set_index('blockTimestamp', inplace=True)
# Convert price to numeric and drop NaN values
df['price'] = pd.to_numeric(df['price'], errors='coerce')
df.dropna(subset=['price'], inplace=True)
# Generate time-based features
df['hour_of_day'] = df.index.hour
df['day_of_week'] = df.index.dayofweek
# Reset index for easier manipulation
df.reset_index(drop=True, inplace=True)
# Calculate price direction
df['price_direction'] = df['price'].diff().apply(lambda x: 'Positive' if x > 0 else
'Negative')
df.dropna(subset=['price_direction'], inplace=True)
# Encode the 'price_direction' column
label_encoder = LabelEncoder()
df['price_direction_encoded'] = label_encoder.fit_transform(df['price_direction'])
The addition of the price_direction column is highly important as it is the label value for each row in the dataset - the 'y' value.
Amalgamating Data from different collections.
Even though the metrics listed above are completely different, they are not mutually exclusive. The solution we have come up with to amalgamate the values of each of the metrics and compact them into one usable coefficient goes as such: First we conduct a dot product operation on the time series matrices, which is equal to the sum of the product of the horizontal components and the product of the vertical components. This is achievable simply because the time series data is stored in numpy arrays that resemble matrices in their own right.
Omitted Data.
Holder specific data has been omitted from the calculation because it is not a currency value, holder statistics and sentiment analysis for SeaFarer AI will eventually be incorporated to increase the accuracy of the model, but for now it is not necessary
Additional Notes.
Among the highly anticipated utility features of our previous dApp - Novablox, was the AI tool SeaFarer, designed to navigate the NFT market, fetch insights and predict NFT prices. Subsequently, we decided to shift SeaFarer from Fantom to Ethereum and transform Seafarer into an independent project, supported by its own token. This token originated as the 'Captain Cuck' memecoin, the ticker being $SEAGEN. From this, Seagen itself was born, with SeaFarer as its flagship product.
Last updated