multimodal-nft

A Multi-Modal Framework for Universal NFT Price Prediction

https://github.com/markhershey/multimodal-nft

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

A Multi-Modal Framework for Universal NFT Price Prediction

Basic Info
  • Host: GitHub
  • Owner: MarkHershey
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 5.41 MB
Statistics
  • Stars: 1
  • Watchers: 2
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created over 4 years ago · Last pushed over 4 years ago
Metadata Files
Readme License Citation

README.md

Multi-modal NFT Price Prediction

SUTD 50.038 Computational Data Science (Fall 2021) - Team Numpie

Abstract

The recent rise in cryptocurrency and blockchain technologies has led to a surge in interest in Non-Fungible Tokens (NFTs), which are uniquely identified digital assets that represent virtual objects such as art, music, and in-game characters. Public interest in NFT has exploded due to skyrocketing NFT prices, however, the overall structure and value of an NFT is still a mystery, largely because the diversity of virtual assets makes it difficult to model its price across different mediums and domains.

To understand NFT prices better across domains, we introduce a new dataset that consists of 10454 diverse multi-media NFTs across different NFT categories, consisting of music-, image-, text-, video-based NFT media files and labeled with its transactional data, all collected from OpenSea. This is done in order to conduct price estimation across different forms of NFTs. We also propose a multi-modal deep learning-based network that is capable of predicting prices universally regardless of the forms of the NFT assets.

NFT Dataset

  • Dataset consists of 10454 NFTs, each of which has a corresponding JSON file and one or more media files in the format of .jpg, .gif, .mp4, and/or .mp3.
  • All JSON files is contained here data/NFT-JSON.zip, please extract it to data/json directory.
  • All media files can be downloaded [here]. Please download it and extract the files to data/media directory.

Example JSON Label:

json { "id": 1234, "name": "CryptoPunk #1284", "description": "", "collection_name": "CryptoPunks", "collection_description": "CryptoPunks launched as a fixed set of 10,000 items in mid-2017 and became one of the inspirations for the ERC-721 standard. They have been featured in places like The New York Times, Christies of London, Art|Basel Miami, and The PBS NewsHour.", "transaction_time": "2017-07-04T12:07:31", "eth_price": "250000000000000000", "eth_price_decimal": 18, "usd_price": 273.303009, "usd_volume": 687691008.0, "usd_marketcap": 25425860777.0, "media_filenames": ["01234.jpg"], "has_audio_in_video": false, "price_class": 0, "price_bin_3_class": 0, "price_bin_20_class": 1, "price_bin_100_class": 7 }

Model Training

Dependencies

  1. Create a virtual environment

bash python3 -m venv venv && source venv/bin/activate

  1. Install dependencies from requirements.txt first

bash pip install -r requirements.txt

  1. Install the PyTorch version that suits your machine, use GPU version whenever possible.

bash pip3 install torch torchvision torchaudio

Preprocessing

To extract the features from the NFT media files, we use the following preprocessing pipeline:

Example command to extract features from audio files:

bash python preprocess/process_audio.py --json_dir data/json --media_dir data/media --features_dim 3600

Save all extracted features binary artifacts to data/ directory.

Training

Default training parameters are defined in the config.py file. You can define your own experiment by either directly modify the config.py file or use a config file like this cfgs/template.json. Any parameters defined in the config file will overwrite the default parameters.

To run the training code with default configs:

bash python train.py

To run the training code with your own configs:

bash python train.py --cfg cfgs/template.json

  • Training logs, model weights for the best-performing model, and the best testing predictions outputs will be saved in the results directory by default.
  • run_exps.py helps you run a list of experiments in serial based on given a list of config files.

Citation

If you use this code or dataset, please cite as follows:

bibtex @misc{Huang_MMNFT_2021, author = {Huang, He and Chan, Cawin and Poh, Princeton}, month = {12}, title = {{Multi-Modal NFT Price Prediction}}, url = {https://github.com/MarkHershey/Multimodal-NFT}, version = {0.0.1}, year = {2021} }

Disclaimers

  • MIT License Copyright (c) 2021
  • This project is developed to fulfill the undergraduate course requirement of SUTD 50.038 Computational Data Science (Fall 2021).

Contributors

Owner

  • Name: Mark Huang
  • Login: MarkHershey
  • Kind: user
  • Location: Singapore

ML Research | PhD Student at SUTD

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this repository, please cite it as below."
authors:
    - family-names: "Huang"
      given-names: "He"
      orcid: "https://orcid.org/0000-0002-9217-4977"
      affiliation: "Singapore University of Technology and Design"
    - family-names: "Chan"
      given-names: "Cawin"
      affiliation: "Singapore University of Technology and Design"
    - family-names: "Poh"
      given-names: "Princeton"
      affiliation: "Singapore University of Technology and Design"
title: "Multi-Modal NFT Price Prediction"
version: 0.0.1
date-released: 2021-12-02
url: "https://github.com/MarkHershey/Multimodal-NFT"

GitHub Events

Total
  • Issues event: 2
  • Watch event: 1
  • Issue comment event: 2
Last Year
  • Issues event: 2
  • Watch event: 1
  • Issue comment event: 2

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: about 22 hours
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 2.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: about 22 hours
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 2.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • michaelmowry (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • beautifulsoup4 *
  • h5py *
  • librosa *
  • matplotlib *
  • numpy *
  • puts ==0.0.7
  • scikit-image *
  • sk-video ==1.1.10
  • spacy *
  • termcolor *
  • torchtext *