I worked on this yesterday and wanted to share it with the community: https://github.com/lukestokes/steem-exchange-transfers
From the README:
Steem Exchange Transfers
Purpose:
To bring perspective and transparency to the exchange transfer activity of accounts on the Steem blockchain. Some people see the Steem blockchain as a mechanism to extract value. Others see it as a long-term investment in a decentralized, censorship-resistant, immutable blockchain-based communication and data storage platform. The intention of this data is to help inform our perspectives of various accounts on the Steem blockchain.
Description:
steem_exchange_transfers.php is a script which uses data from SteemSQL and historical USD value for SBD and STEEM to calculate how much USD value various accounts have transferred from their accounts to an exchange (a withdrawal from the Steem blockchain represented by a negative number) or transferred from an exchange to their accounts (a deposit into the Steem blockchain represented by a positive number).
Methodology and Process Explanation:
Historical prices for SBD and STEEM were obtained by taking the average of the open and close for a given day based on CMC data. You can find this data in
historical_sbd_price.csvandhistorical_steem_price.csvSTEEM and SBD exchange transfers were obtained using the following query:
SELECT [from], [to], sum(amount) as total_amount, DAY(timestamp) as day, MONTH(timestamp) as month, YEAR(timestamp) as year FROM TxTransfers WITH (NOLOCK) where amount_symbol = 'SBD' and [type] = 'transfer' and ([from] in ('poloniex', 'bittrex', 'blocktrades', 'openledger', 'openledger-dex','hitbtc-exchange', 'hitbtc-payout', 'changelly', 'freewallet.org', 'freewallet', 'coinpayments.net', 'rudex', 'binance-hot', 'deepcrypto8', 'steemexchanger', 'upbit-exchange', 'myupbit', 'upbitsteemhot', 'upbituserwallet', 'gopax', 'gopax-deposit', 'huobi-pro', 'huobi-withdrawal', 'bithumb.hot') or [to] in ('poloniex', 'bittrex', 'blocktrades', 'openledger', 'openledger-dex','hitbtc-exchange', 'hitbtc-payout', 'changelly', 'freewallet.org', 'freewallet', 'coinpayments.net', 'rudex', 'binance-hot', 'deepcrypto8', 'steemexchanger', 'upbit-exchange', 'myupbit', 'upbitsteemhot', 'upbituserwallet', 'gopax', 'gopax-deposit', 'huobi-pro', 'huobi-withdrawal', 'bithumb.hot')) AND YEAR(timestamp) = 2018 GROUP BY [from], [to], DAY(timestamp), MONTH(timestamp), YEAR(timestamp) order by YEAR(timestamp), MONTH(timestamp), DAY(timestamp) ascWith values for amount_symbol changing between "SBD" and "STEEM" for each YEAR(timestamp) change (2018 is displayed in this example).
The output of these queries are stored in the
<year>_<currency>_exchange_transfers.csvfiles such as2018_steem_exchange_transfers.csvThe query looks at all transfers where either the from or to involves a known exchange wallet and sums those amounts per day, per account. For example, if you transfer 100 STEEM to an exchange and then transfer 90 STEEM back from an exchange on the same day, what will be recorded is a 10 STEEM withdrawal.
The
steem_exchange_transfers.phpscript parses each day and keeps a running total of withdrawals and deposits for each account using USD values for STEEM or SBD on that day.
Why:
You might ask why I bothered to do this. For years now, I've been running the weekly exchange transfer report. Here's an example. I view the value of the Steem blockchain as a sort of shared collaborative commons. Though we each have our own stake and property on the blockchain, our actions impact the value of everyone else's stake. Unlike most blockchains, the inflation here is being distributed via a rewards pool which we share a bit of responsibility in protecting using "proof of brain" as described in the Steem white paper.
When value from the rewards pool is distributed to Steem accounts, what they do with that Steem impacts everyone. If they regularly dump it on the market, that creates sell pressure for the STEEM and SBD tokens which could lower the value of everyone else's investment. If, on the other hand, they hold their tokens and buy more, it creates buy pressure which could increase the value of everyone else's investment. Without the actual data, it's not easy to determine who is extracting value and who is adding value. It's also important to keep in mind that transferring value to an exchange does not automatically mean the account sold on that exchange.
Results:
To view the results, check out the following files:
Negative numbers mean the account withdrew more value from their account to an exchange than they deposited from an exchange in a given year. Positive numbers mean the account deposited more value to their account from an exchange they withdrew from their account.
I CAN NOT GUARANTEE THE ACCURACY OF THIS DATA
Please, assume this information is not accurate until you've gone through the code and verified it yourself. If you see a bug or a problem with how this data is collected, please let me know by opening an issue ticket or submitted a pull request to fix it.
Edit: I fixed a bug where the SBD prices weren't being used properly which you can see here.
I also removed the example images from the dataset here to ensure people don't confuse them with the same rankings I've done previously in my exchange transfer reports. There are no rankings in this data. It's just data.
Also, it's worth pointing out that the blocktrades account is a special case because it's not just an exchange like all the others. It also acts as a service account for things like buying Steem Power with SBD and is a personal account for a user here.
If you find any errors in this data, please let me know so I can improve the code.
Here are some relevant posts of mine related to why I find this information interesting and useful:
- An Argument for Long-Term Rational Self-Interest Versus Short-Term Irrational Value Extraction
- Psychological Egoism: Selfishly Improving the World Around You
- The Steemit $$$ Challenge: Prove To Yourself Why You Are Here
- The Currency of Steemit Isn't Steem Power, STEEM, or SBD
- Privacy, Identity, and Human Flourishing
Let me know what you think of this data. Should this level of transparency be used to help clarify real intentions based on actions, not just words or opinions? Should the reputations of people be impacted by the value added or extracted from the blockchain financially? Is the rewards pool a shared collaborative commons and if so, what responsibility (if any) should we take as individuals knowing how our actions impact others?
Luke Stokes is a father, husband, programmer, STEEM witness, DAC launcher, and voluntaryist who wants to help create a world we all want to live in. Learn about cryptocurrency at UnderstandingBlockchainFreedom.com

