Terra — [Galactic Punks] Traders & Collectors Analysis
Galactic Punks, what is that? I never heard of it, did you? Let’s do a Google and find out what does it mean, OK, interesting, it is under Terra and it is a NFT, OK, let’s do it. In this article, I am going to do a quick introduction to Galactic Punks and then do a quick analysis for their basic ecosystem about Traders and Collectors. All the data come from Flipside Crypto.
Introduction
Galactic Punks are 10,921 randomly generated NFTs on the Terra blockchain. That’s it, it is the first sentence, most concise explanation I heard from their official documents. It is a NFTs platform, equipped with the backend story about galactic, people, characters etc. in Terra. More details can be found here: https://galacticpunks.io/.
The contract address for Galactic Punks is terra103z9cnqm8psy0nyxqtugg6m7xnwvlkqdzm4s4k. We can do a very quick dive into that to see what is happening behind the scene.
Search this contract address in Terra finder and the following chart is the contract executed message:
Clicking one of them, we can have this view. So good Terra, it wrapped up all the information inside the execute_msg field, which means, with the awesome Flipside data, we should be able to find all the activities related to Galactic Punks.
In the following text, I am going to analyze the basic behavior of the Galactic Punks and how they look like for the different things.
Analysis
The data preparation logic here is to start with the msg table in Terra and extract the needed information for Terra and Galactic Punks, then I will answer the following questions to analyze the Traders & Collectors behaviors.
To do this analysis, we can start from the beginning and trace back to the latest GP holder address, be attention, there is one trick here is that many users put their GPs to the Marketplace for sales, so if that is the case, we need to take a look at the marketplace and look at it differently.
Overall, there are 3 behaviors for the GP holders:
- Mint
- Transfer privately
- Listed on marketplace for transfer
To get all these information, we can have a clear view about the current unique GP holder and the corresponding information. So, firstly, let focus on the Flipside’s terra data and query about all the potential action types, there are 4 action types in total:
- revoke. Revoke the actions.
- approve. Approve the actions.
- send_nft. Here the send_nft action is always go to contract terra12v8vrgntasf37xpj282szqpdyad7dgmkgnq60j, which is an auction contract, so, follow this
- transfer_nft. Transfer_nft is the essential action type we need to focus on, as it lists all the paths for the nft and where they lead to.
Next, we can go to next section to analyze more about the GP holders.
How many unique GP holders are there, currently?
Based on the above information, to get the unique GP holders there currently, the first thing we need to do is to get the latest GP holders linking to the token_id for the GP NFTs. The tradition logic is to trace from beginning and then follow each steps to get the final answers, it is feasible, but the queries would be really complex.
To solve this question in a more innovative way, I came up with an idea: Only the current token holder has the power to do action to that, so we can query the latest sender information for the token and then we can get it.
The query is here (Normally I don’t show SQL code in Medium article, but I really want to show my query here is because after the whole day thinking and I finally thought of this way to quick trick the problem, I felt really exciting!)
SELECT
block_timestamp,
sender,
token_id
FROM (
SELECT
block_timestamp,
MAX(block_timestamp) OVER (PARTITION BY token_id) AS max_block_timestamp,
sender,
token_id
FROM (
SELECT
block_timestamp,
msg_value:sender::string AS sender,
COALESCE(msg_value:execute_msg:approve:token_id::string,
msg_value:execute_msg:revoke:token_id::string,
msg_value:execute_msg:send_nft:token_id::string,
msg_value:execute_msg:transfer_nft:token_id::string) AS token_id
FROM terra.msgs
WHERE msg_value:contract = 'terra103z9cnqm8psy0nyxqtugg6m7xnwvlkqdzm4s4k'
)
)
WHERE block_timestamp = max_block_timestamp
After running the query and calculate the distinct number of the sender, the answer is based on the latest date in the database, there are 3,508 unique GP holder addresses!
What is the breakdown on the number of punks they have?
Let’s count the distinct token each addresses holder, we can get the basic statistics as the following: The average GP they hold is 2.158 and maximal GPs the address hold is 31. If we plot it as the following distribution plot, it looks like:
It is a right-skewed plot, but with the linear decrease trend.
Who are frequent traders?
Here, to analyze the frequent traders, let’s focus on the daily transactions number and see how it looks like. The following table shows the top 20 traders per transaction.
So, we have a sense that the maximal transaction for all the action type is 381, but if we excluded that part, the maximal is 45. So, why not define the frequent traders that daily trade at least 2 times (only the transfer and send events). Based on that, we have the frequent trader list with a total amount of 404 addresses trade at least 2 times per day. Query is as following:
If we plot it in a chart and take the average of transaction amount, it looks like this:
Rarities
In the end, I want to define the rarities in this way: trade at least 5 times within a day, There are 28 addresses have at least 5 times trading transactions since GP has launched, the list is shown as following:
Take it and plot that in a time series chart, let’s see what is the average trading amount per day:
Conclusion
Here, I want to share one quick conclusion and also my question to the NFT ecosystem, is NFT project really popular or it is just a false prosperity? Here, based on the above transactions analysis, I cannot jump to a solid conclusion, but my initial feeling is that it seems a false prosperity, considering since 10/2 launch, the top transactions time is 45 in Terra, such a low gas fee system. But I will write more articles to prove or overturn it.
Thanks Flipside Crypto for providing the data.