#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
andlogs
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 erc721Spells-->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!
Website: sixdegree.xyz
Email: contact@sixdegree.xyz
Twitter: twitter.com/SixdegreeLab
Dune: dune.com/sixdegree
Github: https://github.com/SixdegreeLab
Last updated