Steem Econometrics, Preliminaries
Unlike a traditional economy, the STEEM economy is almost fully transparent. We can see every transaction and every on-blockchain account balance. However, the STEEM economy is voluntary, so plenty of users are "sitting out" or never became active, and that can cloud the picture. On the other end of the spectrum, large insider and infrastructure accounts also dominate.
(Some parts of the STEEM economy are less visible. Custodial accounts like brokerages maintain ownership information that isn't visible on the STEEM blockchain.)
I'm interested in studying how value is transferred between different classes of users. A conventional way is to segment by wealth, so let's see what that looks like on STEEM.
STEEM wealth by percentile
Percentile (# of accounts) | value of account (% of total value) | average | minimum | asset distribution |
---|---|---|---|---|
Top 0.001% accounts (4) | 15196632 STEEM (5.25%) | 3799157.9 STEEM | 1755126.979 STEEM | 15.6% STEEM, 7.3% SBD, 77.1% VESTS |
Top 0.01% accounts (36) | 45256365 STEEM (15.62%) | 1257121.3 STEEM | 495336.642 STEEM | 14.0% STEEM, 2.9% SBD, 83.1% VESTS |
Top 0.1% accounts (359) | 85615128 STEEM (29.56%) | 238482.3 STEEM | 48877.774 STEEM | 14.1% STEEM, 2.3% SBD, 83.6% VESTS |
Top 1.0% accounts (3589) | 117595160 STEEM (40.60%) | 32765.4 STEEM | 2961.157 STEEM | 14.2% STEEM, 2.5% SBD, 83.4% VESTS |
Top 5.0% accounts (17941) | 130513835 STEEM (45.06%) | 7274.6 STEEM | 288.372 STEEM | 14.4% STEEM, 2.9% SBD, 82.7% VESTS |
Top 10.0% accounts (35881) | 133196780 STEEM (45.99%) | 3712.2 STEEM | 74.929 STEEM | 14.5% STEEM, 3.1% SBD, 82.4% VESTS |
Top 20.0% accounts (71762) | 134900137 STEEM (46.57%) | 1879.8 STEEM | 35.915 STEEM | 14.4% STEEM, 3.2% SBD, 82.4% VESTS |
Insider accounts (8) | 84936467 STEEM (29.32%) | 10617058.4 STEEM | 11.2% STEEM, 0.0% SBD, 88.7% VESTS | |
Exchange accounts (12) | 67678669 STEEM (23.37%) | 5639889.1 STEEM | 72.6% STEEM, 20.4% SBD, 7.0% VESTS |
The percentiles include each preceding group; for example, the top 1% are also included in the top 5%. The insiders and exchange accounts are separate (as explained below in the methodology section.)
STEEM wealth by rank
This ranking partitions the accounts, so there is no overlap. Exchange and insiders are excluded from the top 5% accounts here as well (otherwise they would be > 95%.)
Rank (# of accounts) | value of account (% of total value) | average | minimum | asset distribution |
---|---|---|---|---|
Top 17941 active accounts (5%) | 130513835 STEEM (45.06%) | 7274.6 STEEM | 288.372 STEEM | 14.4% STEEM, 2.9% SBD, 82.7% VESTS |
5-10% | 2683021 STEEM (0.93%) | 149.5 STEEM | 74.927 STEEM | 19.5% STEEM, 13.8% SBD, 66.7% VESTS |
10-15% | 1003993 STEEM (0.35%) | 56.0 STEEM | 42.618 STEEM | 11.1% STEEM, 10.4% SBD, 78.4% VESTS |
15-20% | 699360 STEEM (0.24%) | 39.0 STEEM | 35.915 STEEM | 3.9% STEEM, 3.9% SBD, 92.2% VESTS |
20-25% | 521623 STEEM (0.18%) | 29.1 STEEM | 23.149 STEEM | 9.3% STEEM, 11.0% SBD, 79.7% VESTS |
25-30% | 318424 STEEM (0.11%) | 17.7 STEEM | 14.745 STEEM | 10.2% STEEM, 14.2% SBD, 75.5% VESTS |
30-35% | 236554 STEEM (0.08%) | 13.2 STEEM | 11.493 STEEM | 5.0% STEEM, 8.7% SBD, 86.3% VESTS |
35-40% | 183128 STEEM (0.06%) | 10.2 STEEM | 9.211 STEEM | 5.7% STEEM, 8.1% SBD, 86.2% VESTS |
40-45% | 144697 STEEM (0.05%) | 8.1 STEEM | 6.490 STEEM | 7.6% STEEM, 13.7% SBD, 78.7% VESTS |
45-50% | 109790 STEEM (0.04%) | 6.1 STEEM | 5.858 STEEM | 3.4% STEEM, 4.4% SBD, 92.2% VESTS |
50-55% | 99797 STEEM (0.03%) | 5.6 STEEM | 5.311 STEEM | 3.1% STEEM, 4.2% SBD, 92.6% VESTS |
55-60% | 88503 STEEM (0.03%) | 4.9 STEEM | 4.182 STEEM | 5.8% STEEM, 10.1% SBD, 84.0% VESTS |
60-65% | 60827 STEEM (0.02%) | 3.4 STEEM | 3.001 STEEM | 7.4% STEEM, 16.7% SBD, 75.9% VESTS |
65-70% | 41260 STEEM (0.01%) | 2.3 STEEM | 1.709 STEEM | 8.7% STEEM, 28.0% SBD, 63.2% VESTS |
70-75% | 24278 STEEM (0.01%) | 1.4 STEEM | 1.064 STEEM | 5.7% STEEM, 25.1% SBD, 69.2% VESTS |
75-80% | 17696 STEEM (0.01%) | 1.0 STEEM | 0.869 STEEM | 1.7% STEEM, 9.2% SBD, 89.1% VESTS |
80-85% | 13730 STEEM (0.00%) | 0.8 STEEM | 0.656 STEEM | 1.6% STEEM, 16.1% SBD, 82.3% VESTS |
85-90% | 10574 STEEM (0.00%) | 0.6 STEEM | 0.540 STEEM | 1.0% STEEM, 8.0% SBD, 91.0% VESTS |
90-95% | 9221 STEEM (0.00%) | 0.5 STEEM | 0.403 STEEM | 1.2% STEEM, 4.4% SBD, 94.3% VESTS |
95-100% (17909 accounts) | 2970 STEEM (0.00%) | 0.2 STEEM | 5.0% STEEM, 23.5% SBD, 71.4% VESTS | |
Inactive accounts (722333) | 249270 STEEM (0.09%) | 0.3 STEEM | 0.0% STEEM, 0.0% SBD, 100.0% VESTS |
Totals
Total users: 1081141
"Active" users: 358808
Total value: 289647687.36847353
Total STEEM: 78284919.01610987
Total SBD: 15249732.624009054
Total VESTS: 391394346308.6877
Methodology
I captured all Steem account names as of 7/27/2018. Then I queried for their current account balance; this takes a while so it may lead to some undercounting or double-counting, as transfers (and rewards) are happening while my script is running. The total values shown here are from summing the accounts (active and inactive) rather than using a different source; it ignores both the pending reward pool and any unclaimed rewards.
I omitted both custodial accounts (exchanges) and insider accounts due to their disproportionate sizes. The major accounts I identified in each category:
insiders: @steem, @steemit, @steemit2, @steemitblog, @misterdelegation, @ned, @dan, @dantheman
exchanges @bittrex, @poloniex, @blocktrades, @binance-hot, @upbitsteemhot, @upbit-exchange, @myupbit, @openledger-dex, @huobi-withdrawal, @hitbtc-exchange, @rudex, @tidex
In order to handle the large number of inactive accounts, I imposed a liquidity threshold for inclusion: > 0.1 STEEM, or > 0.1 SBD, or > 1050 VESTS. This was much faster than querying every account history to see if they had any transactions, and I didn't see any information in the get_accounts
response that was a more useful filter.
To convert SBD to the equivalent amount of STEEM, I used today's market price of 1.200000 SBD/STEEM. To convert VESTS to STEEM, I used the currently reported rate of 0.000493270 VEST/STEEM.
Initial observations
There are approximately 5.1 liquid STEEM for every SBD, but many of the wealth classes show ratios much different from that. The 65-70% band has 8.7% of its wealth in STEEM and 28.0% in SBD! Perhaps these are old accounts that reflected an old payout mix; but it's not clear why they should cluster at certain account values.
The "float" of STEEM and SBD actively traded in exchanges is only about 23% of the total value in the Steem blockchain. That 62.9 million STEEM (considering both combined) is 65% of the 96.6 million available in liquid assets (non-vested.) I think the former number is more representative; a low float increases market volatility. It's a similar percentage of float to that you'd see immediately post-IPO, which is relatively low for a public company;.
Almost all wealth is held by the top 5% of accounts, insiders, and custodial accounts. It's not clear what the distribution of custodial accounts is; should we expect it to be similar to the values we see on the blockchain? Or would it be more evenly spread out?
In the future I hope to look at a week or two of transfers and rewards, to see whether wealth moves between "classes" or whether it mainly accrues to those already highly vested. I may also try partitioning the accounts into equal-wealth groups instead of equal-population groups. If the Steem economy is working well, we should expect to see high-wealth accounts selling some of their liquidity to lower-wealth accounts, who then vest it to participate in Steem. If money (including rewards) mainly moves the other direction, that could be a worrying sign.
@penguinpablo runs a regular report of how much STEEM is kept in exchanges: https://steemit.com/steem/@penguinpablo/weekly-report-how-much-steem-is-stored-on-the-exchanges-july-27-2018
(His daily/weekly reports and block explorer are very inspiring!)
Interesting stuff. So it turns out you're already part of the top 10% when you have "only" 75 STEEM. That doesn't seem too much.
Never thought I'd already be in the top 5%...
Yeah, there's a really long tail of accounts with very small values, and the place where I decided to cut it off was sort of arbitrary.
In my data set you're ranked #14000 by wealth which puts you in the top 3.9% of qualified/active accounts, and top 1.3% of all accounts ever created.
Indeed it is difficult to find a good cut between "real" accounts and others.
Great to know, sounds pretty good! I love data analysis so I'll be watching for more of your content.
I love what you've done with the stats!
I wonder if you could produce an alternate table, which discounts the inactive accounts. I think their removal would result in an alternative set of facts (lol) that more accurately ranks people's achievements.
Comparing yourself to an inactive account is like a snail thinking it's fast moving because it overtook a rock. ;)
EDIT: Oh wait, I see the inactive accounts are not included in the 100 percent. Clever you lol.
Superb analysis. Where did you get the raw data from?
I accessed the Steem API, using the steem-python library: http://steem.readthedocs.io/en/latest/
lookup_accounts
, 1000 at a time (this is what theget_all_usernames
call does internally.)get_accounts
to pull in balance information, 100 at a time.Step #1 was fast, step #2 took 30-60 minutes (maybe less? I walked the dog in the middle of it.)
The next step will involve walking the blocks from the blockchain in a time range, to get all transactions and rewards during that period. Or accessing individual account histories, though that is probably less efficient. So that will probably be more expensive.
Thanks!