Convertions
I posted yesterday a few STEM Units definitions. Today I will show how to convert them using steemtools' Converter module. I may also reference STEEM source code to describe what happens when the STEEM Units are converted. I encourage you to experiment yourself to understand how this works. The information that I post today will help us to decompose and understand how the reward payment is made. I also discovered again a few interesting facts new to me about STEEM supply and I hope that you will also get a general feeling on how the system works.
STEEM to STEEM Dollar
Definition
STEEM to STEEM Dollar can be converted using median price feed.
Please refer to my previous post for the median price feed definition.
Example
>>> from steemtools.base import Converter
>>> c = Converter()
>>> c.sbd_median_price()
0.643
>>> c.steem_to_sbd(100.0)
64.3
>>> c.steem_to_sbd(1000)
643.0
>>> c.steem_to_sbd(10000)
6430.0
>>> c.steem_to_sbd(1000000)
643000.0
Notes
Converting STEEM to STEEM Dollars when executed in STEEM database context, apart from the convertion itself, does two things:
- Removes STEEM from the account and reduces STEEM supply. STEEM supply is the total number of STEEM available at a given time.
- Adds STEEM Dollar to the account and increases STEEM Dollars supply.
STEEM Dollar to STEEM
Definition
STEEM Dollar to STEEM is a reverse operation to the previous one, therefore it can be achieved with:
Example
>>> c = Converter()
>>> c.sbd_median_price()
0.643
>>> c.sbd_to_steem(100)
155.52099533437013
>>> c.sbd_to_steem(1000)
1555.2099533437013
>>> c.sbd_to_steem(10000)
15552.099533437013
>>> c.sbd_to_steem(1000000)
1555209.9533437013
Notes
Since this is a reverse operation from STEEM to STEEM Dollars convertion, two things happen in STEEM database context:
- STEEM Dollars are removed from the account and STEEM Dollar supply is reduced.
- STEEM is added to the account and total STEEM supply increases.
STEEM Dollar Median price
Definition
I described the high level definition in my previous post. What may be useful to know is that the median price can be retrieved using a RPC (Remote Procedure Call) to STEEM node using rpc.get_feed_history()
call.
Example
>>> c = Converter()
>>> c.sbd_median_price()
0.643
Notes
Due to SBD and STEEM design the median price feed will most likely be close to 1.00 (lower than one as it is a DEBT and not the actual asset).
MVests per STEEM
Definition
As mentioned in my previous post a Vest is the smallest unit of STEEM Power. Vests were actually STEEM Power after they were renamed. The code still references STEEM Power in Vests. 1 MVest is 1 000 000 Vests (one million Vests).
Example
>>> c = Converter()
>>> c.steem_per_mvests()
331.8634670540361
Notes
In order to correctly convert Vests to STEEM and vice versa we need to know how many Vests make one STEEM. Calculating this value is available by accessing STEEM dynamic global state properties: total_vesting_fund_steem and total_vesting_shares divided by 1000000. I was confused what it is even by looking at the source code until I found that it was mentioned in one of the STEEM posts. My findings are not as simple as it seems due to STEEM money/token supply. And this was a real eye opener for me.
Every three seconds STEEM blockchain network produces one block. One block contains 30 STEEM. Due to system design 90%, which is 27 STEEM are added to total_vesting_fund_steem. This is a pool of Vests. 'Steem per mvest' value is the amount of STEEM in the pool divided by total number of MVests that are owned by all accounts. What happens with the remaining 3 STEEM? It is divided between witnesses, curators and content contributors. This is the piece of pie that people are rewarded with. And now it gets interesting. When the STEEM system was initialized, the default MVest per STEEM ratio was equal or close to 1. This means that for every 1 STEEM powered up into STEEM Power, or Vests in other words, the account received 1 MV - One Million Vests.
Currently due to STEEM supply this number sits at around 331.86 MVests per STEEM. And will increase. Yesterday what I last checked it was 331.10 MVests per STEEM.
This means that for someone who invested 100$ in STEEM Power in the very beginning when the system kickstarted and the convertion rate was low, he received around 100 MVests. If my calculations are correct, currently this is worth 331.10 * 100 MVests = 33110 STEEM which is around... 21290 SBD.
>>> c.steem_to_sbd(c.steem_per_mvests() * 100)
21290.181972439295
You can digest this and I let the findings to yourselves. This discovery made my eyes wide open.
At this point I will stop for today as I need to think about this and the consequences. Perhaps also someone could help and do a bit of analysis and even charts are welcomed. What may happen in 1, 2 and 5 years with STEEM and its price taking into account the above information
- there are 1000 new active accounts per month
- or there are 10000 new active accounts per month
- 5 % of active accounts decide to power up $100 a month
- and/or 1 % of active accounts decide to power up $1000 a month
- current powering down that started will last for at least two years.
- STEEM Dollar price is kept between 0.6-0.8 STEEM
- your STEEM Power increases 2-5% per month
DISCLAIMER: THE INFORMATION IS DELIVERED FREE OF CHARGE AND 'AS IS' WITHOUT WARRANTY OF ANY KIND. I HOPE IT IS ACCURATE AND FREE OF ERRORS AND YOU FIND IT USEFUL.