Blockchains provide an excellent data for various kinds of analytics. Hereby is a review of the tokens (an assets) generated on the Waves platform by some of their characteristics.The results are presented graphically with following explanations.
Text information about Waves tokens can be found here and formed by the Waves itself.
The logic behind processing and data analytics:
- Data for analytics are generated by parsing of the Waves blockchain addressing public node nodes.wavesplatform.com . Data is recorded to .json.
- Pulling data out of .json and making necessary conversions.
- Plotting the charts and commenting base on the generated data.
- programming language: Python.
- development environment: Jupyter.
- charts plotting: Matplotlib.
- Waves Full Node API.
- code from PyWaves(MIT license) repository for blockchain parsing.
- Jupyter notebook contains only the code that is preparing and showing the data. Code for blockchain parsing rendered to the separate .py files.
- If you want an up-to-date data analytics you need to re-parse blockchain and restart the Jupyter notebook cells.
- You can find the project on GitHub.
- This article is not the answer to the questions like “When Waves moon?”
- Here you can find only analytics of the data. Conclusions are at your discretion.
Few words about Waves tokens:
- Every member of the main network can issue a token (an asset).
- Waves tokens issuing (emulation) costs the current value of 1 Waves
- Tokens issuing (emulation) is rather simple. All you need is to enter the necessary data through the GUI wallet and issue your token.
The first chart shows the increase in the number of the tokens from the issuing of the first one until the moment when parsing was performed.
Ok, we issued a token (an asset). How much tokens did you consider necessary to issue ? The results are presented on the charts below.
As we can observe, the founders wanted a lot of tokens.
- Some issuers probably wanted a lot of tokens or was just testing Waves blockchain and so they got 9223372036854775807 tokens. This is the maximum value of datatype-Long64 used in Scala (Waves Node written in Scala).
For example: :http://dev.pywaves.org/assets/E1mrEVjwmBL9RbhvjwjWzr3cT2gcBNckSFpygZbZ1vNZ
1.Count assets have one token: 159
2.Count assets have max amount tokens: 6
The next interesting characteristic of token is an opportunity to reissue it. Two options are possible:
- Reissuable = True: the owner can change the number of tokens later
- Reissuable = False: the owner can not change the number of tokens later
The choice was distributed almost equally:
For each token, there is an option of text description where the links and URLs can be added.
The chart below shows us if this option has been used by the issuers of analyzed tokens:
Just for fun\out of curiosity:
1.The word 'Bitcoin' occurs in descriptions: 532
2.The word 'Ethereum' word occurs in descriptions: 95
3.The word 'Moon' word occurs in descriptions: 65
Lets proceed to Issuers (those who issued a token). One issuer can issue an unlimited number of tokens. The chart below presents the number of tokens a single address issued, checking the data it looks like most phishing attempts (tokens with a URL that leads to a phishing website), were created by one or a few addresses.
The next interesting metrics is how much issued tokens are on the account of the issuer in percentage from the all amount of tokens. In Waves terminology, this metrics called Circulating.
However we also should consider the fact that the number of the tokens here are primary. And as we know tokens are “reissuable” and some token’s ratio of primary issued tokens to token’s holders at the moment are greater than 100%. It means that holders can change the amount of tokens through the time of their exploitation. Lets see how it looks graphically:
Percent is loss: 1.626 - is losing by convert and accuracy numbers in python.
We examined most interesting characteristics of tokens except one. Any economy is viable due to its circulation. Despite the fact that there is Circulating (look up the token on http://dev.pywaves.org/assets/) it doesn’t display the number of transactions for each token and present us only the status of token at the moment. To calculate the number of transactions for each token, we need to parse all the blockchain transactions from the moment of token’s issue.
Particularly, it is the number of transactions one token have been processed through that is the most revealing indicator of tokens economy. And it’s important to pay attention to the fact, that it is a transactions not only from the issuer of a token.
However calculation and analytics of that data require more of my time, efforts and most probably the raise of my own node.
P.S. Thanks are welcomed at Waves wallet — 3PLG1KdKy7BGT5Y4JP65HJh7xd1ZVz3F4Qp
If it collects 100 Waves, I would be able to continue my work on the Waves blockchain analytics (I have a couple of more ideas), 25% is going to a translator (RUS to ENG), and from 15% I am willing to thank the authors of the most useful and interesting comments. In case it won’t raise 100 Waves, I take it as a lack of demand on such analytics from the Waves community and most probably will do something else interesting.
Your comments and feedback about next topics are welcome:
- code improvement
- charts plotting improvement
- ideas/suggestions for analytics of Waves or other blockchain platforms
keep in touch at — email@example.com