Interactive Users
Problem
Blockchain (on-chain) data offers a unique opportunity to track users' behaviour on chains and platforms.
Particularly, transaction data provides enormous information about the actions and actors involved in transactions. Using transaction data, blockchain projects can keep track of the type and number of actions, the volume of flow of capital, etc.
However, when it comes to the number of users or behaviour of users, data for only 'active' users can be retrieved. By active users we mean who initiate transactions and execute actively an action.
We have the same issue in investigating users' behaviour, for instance, on social media. The post published by users, their likes, retweets, and any activities of active users can be retrieved and used for analysis. However, the attitudes and behviours of users who consume passively the product of other users are difficult to grasp.
The issue is how can we keep track of passive actors of blockchains: specifically Terra.
This dashboard attempts to provide a method for identifying passive actors through available on-chain data.
Solution
The assumption of this method is that all wallets involved in a transaction are mentioned in event logs. Extracting all Terra wallet addresses from the log can lead us to the passive and active wallets.
To extract all wallets involved in transactions EVENT_ATTRIBUTES field of terra.msg_events has been used.
Using combination of Flatten and REGEXP terra wallet addresses have been identified: > p.value regexp 'terra[[:alnum:]]+'
To make distinction between terra wallets and validators only terra addresses with the length of 44 characters have been included.
To understand the category of wallet addresses their tags (using path parameter while flattening) also have been extracted.
Evaluation
To evaluate the solution, first, the daily number of extracted wallets using the proposed method is compared to the daily number of wallets extracted by conventional method through terra.transactions data.
The graph below shows the daily number of all wallets (calculated by proposed method) and active wallets.
The difference between the two is the number of passive actors.
Now we zoom in on a date: 2022-05-04.
The graph below shows the number of active wallets vs. all wallets.
The number of wallets calculated by the proposed method is 14K. This number is 3K more than what the Terra station shows 111k daily active users on 5/4.
My speculation is that the difference is more related to contract and token addresses.
Now I just focus on wallets that are included in all_wallets but NOT IN active_wallets.
The graph below shows the frequency of addresses categorized by their tags in the logs.
Through the tags we can find some examples of transactions included passive wallet addresses.
This log documented a 'fee grant' transaction.
We cannot find these passive wallets in transfers or even transaction tables.