#12 NFT analysis

Background Information

ERC721 is one of the most used NFT(Non-Fungable Token) standards. compared to follow ERC20 standard in terms of fungable tokens, Traditionally, the most typical characteristics of NFT are that each token is indivisible, irreplaceable, and unique. The common uses of NFT are:

  • Digital art/collections

  • In-game items

  • Domain names

  • Tickets or coupons that allow you to attend an event

  • Digital identity

  • Articles

For example, in digital art, different NFTS have different styles; for instance, in the ENS domain name, each domain name is unique and cannot be repeated. As for tickets, each ticket has a fixed seat, and different seats are also different numbers.

With the development of NFT, other standard NFT have been derived:

  • ERC-1155: Non-fungible tokens, each token is different, but can do quantity transfer

  • SBT: Non-transferable Token

  • ERC-3235: Semi-fungible token, each token is different, and supports settlement

ERC20
ERC721
ERC1155
ERC3535

features

fungible tokens(each single token is same as others)

non-fungible tokens(each single token is unique, no one is same as others)

representing fungible, semi-fungible, and non-fungible tokens.

Semi-Fungible Token

esamples

address A transfer 100ETH to address B

address A transfer an laser eye BAYC to address.(not glassed or others)

address A transfer 5 bottles of potion in a game. Not other equipment. each of the 5 bottles of potion is same. but we can +/- 5 bottles.

A DeFi protocol gives user A a $100 1-year bond, numbered 001. The bond can be split into 2 $50 bonds, numbered 002 and 003, which user A then transfers to holders B and C. The bond can be split into 2 $50 bonds, numbered 002 and 003. The 003 bond can in turn be split into another $20 for the 003 bond, at which point 002 is worth $30 and 003 is worth $70.

scenario

cryptocurrency

Digital Collections

In-Game Assets

Financial Assets/Contracts

Contract description

The contracts related to NFT are usually divided into two categories: one is the contract of the project party and the other is the contract of the third-party exchange platform used to trade NFT.

ERC721 contract

We use ERC721 NFT as an example to show the characteristics of an NFT contract, the other can according to demand to understand, we in the market of NFT Opensea to azuki on the NFT, for example, that contract contain what events:

For data analysis, the most important function is the Transfer event, which is triggered on every transaction and recorded on the chain. In addition to Transfer, there is also the Mint event, which is usually used to mint a new NFT at the time of sale. Dune's spells table provides ERC721, ERC1155 Transfer tables such as erc721_ethereum.evt_Transfer , erc1155_ethereum.evt_Transfer, etc. (different names under different blockchains), so we can query NFT transfer events for a contract or an EOA address.

In the Transfer event, there are three main parameters: the sender address from, the receiver address to and the number of the NFT tokenId. In the case of transaction, both from and to are a normal address. If mint, the from address is all 0, and if burn, the address of to is all 0. The nft.mint and nft.burn tables on Dune also decode this event to get the final transaction information.

marketplace contracts

Some common marketplace contracts are Opensea, X2Y2, Blur, etc. Let's take Opensea Seaport1.1 contract as an example. All functions related to a transaction will trigger the OrderFulfilled event to record the data on the chain. Dune's nft.trades parses this event to get the final trades. The seaport contract writable functions are as follows:

For example, Alice made an order for an Azuki NFT with the number 3638at 10ETH, then it triggers the 'fulfillBasicOrder' function, and when the transaction succeeds, it triggers the 'OrderFulfilled' event to be logged to the chain.Etherscan link anddune link.

Common table Description

  • Original base table: located in Raw-->transactions and logs tables;

  • Specific project table: located in Decoded Projects->Search, enter the name of the specific project table and the name of the trading platform;

  • Aggregate table:

    • Spells-->erc721: record all transfers of erc721

    • Spells-->nft: this contains information about trades, mints, transfers, fees, and burns; the most important of these is the trades table, which aggregates all of the trade data from the major exchanges.

The important details of nft.trades table are as follows:

Field
Description

blockchain

Most of chain of data gathered in this table

project

Trading platform name

version

Trading platform version

block_time

Block time

token_id

NFT Token ID

collection

NFT collection name

amount_usd

The dollar value when trading

token_standard

The standards of the Token

trade_type

Transaction type, it is single NFT deal or multiple NFTs trade

number_of_items

Number of the NFT traded

trade_category

Transaction type (Direct buy, auction, etc...)

evt_type

Evt type (Trade, Mint, Burn)

seller

Seller wallet address

buyer

Buyer wallet address

amount_original

The original amount of transactions (under the original units of tokens token)

amount_raw

The raw transaction amount without being numeric

currency_symbol

The token symbol of the transaction (what token is used as the unit of payment)

currency_contract

The token contract address of the original transaction, use WETH on ETH contract address

nft_contract_address

NFT contract address

project_contract_address

Trading platform contract address

aggregator_name

Aggregation platform name, if the transaction is initiated from the aggregation platform, such as gem

aggregator_address

Aggregate platform contract address

tx_hash

Transaction hash

block_number

Block of transaction

tx_from

The address from which the transaction is initiated, usually the buyer

tx_to

The address to which the transaction is to be received, usually the trading platform

unique_trade_id

Transaction id

Key metrics

In general, an NFT project will focus on the following basic metrics:

Transaction price movement

It is necessary to query the transaction amount of all the trading markets and express all the transactions with a scatter plot. At the same time, different ranges can be selected through the time range, such as the last 24h, the last 7 days, the last 1 month, and so on. It should be noted that for some transactions, the transaction price is too high, you need to filter out these, otherwise you will not be able to clearly show most of the transaction price movement.

Reference Links: https://dune.com/queries/1660237

Floor price

Because we can only obtain the data of completed transactions on the chain and cannot obtain the data of pending orders in the trading market, we generally use the minimum transaction amount among the last 10 transactions as the floor price, which is not much different from the pending order price, unless the project is particularly unpopular

Reference Links: https://dune.com/queries/1660139

Transaction volume, total transaction quota, total number of transactions, etc., 24 hours /7 days /1 month transaction quota

Reference Links: https://dune.com/queries/1660292

Daily/monthly/weekly volume

Reference Links: https://dune.com/queries/1664420

Current number of holders, total number of tokens, distribution of holders, etc

Reference Links: https://dune.com/queries/1300500/2228120

NFT Comprehensive dashboard example

We made a dashboard where you can enter the address of an NFT contract and see all kinds of information about the project. You can learn more about queries using the query on the dashboard:

https://dune.com/sixdegree/nft-collections-metrics-custom-dashboard

Reference

  • https://mirror.xyz/0x07599B7E947A4F6240F826F41768F76149F490D5/CHcwsp_d0AINEalFq_0FcqkLeEyeeGpYDDtw82TyMes

  • https://github.com/cryptochou/seaport-analysis

  • https://dune.com/sixdegree/soulda-nft-soulda16club

  • https://dune.com/sixdegree/digidaigaku-nft-by-limit-break

About Us

Sixdegree is a professional onchain data analysis team Our mission is to provide users with accurate onchain data charts, analysis, and insights. We are committed to popularizing onchain data analysis. By building a community and writing tutorials, among other initiatives, we train onchain data analysts, output valuable analysis content, promote the community to build the data layer of the blockchain, and cultivate talents for the broad future of blockchain data applications. Welcome to the community exchange!

Last updated

Was this helpful?