BlockTrades Update: New Cryptocurrency Accounting Steem
It’s been a while since my last post, so I thought today would be a good time to share information on one of the projects that’s occupied a lot of our time over the past few months: our new accounting system.
As our US customers will know, we just recently passed the deadline for filing US income taxes. While BlockTrades itself is a Cayman Islands company which doesn’t get taxed, its shareholders do have to pay taxes, including taxes on profits from the company. To compute those profits as efficiently as possible, both now and in the future, we decided to create software capable of automating all the bookkeeping for our company as well as software for catching accounting problems and mistakes by third party vendors.
Unlike most companies, BlockTrades deals exclusively in cryptocurrency, not only with its customers, but also with its external contractors. BlockTrades doesn’t even maintain a bank account. In the cases where it does need to pay someone in a fiat currency, it works with an external payment agent that sells off the cryptocurrency for cash to make the final payment.
As a result, almost all incoming payments and expenses for BlockTrades are recorded in blockchain records that can be analyzed via software (except for deposits/withdrawals and trades on external exchanges, but these records can also be imported as computer records). This means that we don’t have to manually enter things like check payments into an accounting package: any payment we make or receive via any of our blockchain wallet is automatically accessible to our accounting system.
Steps to build a blockchain-based accounting system
In addition to the accounting research involved in developing our new accounting system, it also required a fair amount of software to be written. Here’s some of the software pieces we had to build:
Blockchain Scanners
The most difficult work was to develop the blockchain scanners. We needed a scanner for each blockchain we operate with in order to import transactions from the wallet into our common ledger format. This job was particularly challenging for graphene-based blockchains such as Steem and BitShares because of the large number of operations. For example, Steem not only supports payment transfers, but also author rewards, curation rewards, mining rewards, SBD to Steem conversions, and interest from SBD, just to name a few. The scanners also have to account for blockchain transaction fees. We already had partially-written scanners that are used by our trading system to recognize customer payments, but adding support for the all extra operations and converting the data to a common format was a lot of work.
Exchange record translators
A translator for each exchange we operate on, to import deposits/withdrawals and cryptocurrency trades. Different exchanges have different formats and they don’t always even supply the same data. One of the more difficult aspects of writing a translator for an exchange is to be sure you correctly account for the trading and withdrawal fees they charge.
Exchange cross-checking software
We developed software to cross-check transactions made on blockchains versus the import/deposit records from exchanges (for example, this code detects when an exchange failed to credit us for a deposit or debited us for a withdrawal that never really happened)
Code to compute balances in hot wallets for all coin types
Virtually every blockchain wallet can report the current balance in the wallet. But many blockchain wallets don’t report old balances, especially wallets that support more complex operations (e.g. BitShares, Ethereum, Steem) to name a few. But many financial calculations require the ability to report an account balance at any given time.
Mark-to-Market accounting software
Mark-to-market accounting is useful for computing trading income when you are doing large numbers of small trades like our web site performs daily. With mark-to-market accounting, instead of doing a capital gains calculation for each trade, you just compute the net value of your holdings at the beginning and ending period of time (offseting the result by any funds transferred in or out of the mark-to-market accounts). Our mark-to-market accounting code computes profit over a period by computing the value of each of the hot wallets connected to our trading site at the beginning and ending of the specified period (using the balance computation code described above to get the balance at each time point and historical pricing information for the coins) and subtracts inflows/outflows due to operating income and expenses.
Capital gains calculator
For our long term holdings, instead of doing mark-to-market accounting, we perform more traditional capital-gains based income calculations in order to defer the point at which we need to recognize income to the time at which we realize the gain by selling the asset. We developed a capital gains calculator that performs lot assignment on trades so as to minimize realized gains for trades made in our investment wallets. The capital gains calculator also computes the gains after the lot assignments are made and convert these gains into our “functional currency” for tax reporting purposes (US dollars).
Reports and Graphing code
We developed a web-based front-end to our accounting system that can show things like balances over time in coin amounts and equivalent USD value as well as daily income from different sources such as mining, delegation, etc.
Internal transaction cross-checking system
Finally, we wrote code to check all our trades from our web site versus the records in our blockchain wallets and to compute unrealized gains and cross-check our financial results against a fully mark-to-market based accounting.
Looking Forward
At this point, most of the work above is done, although we do have a few things to finish up when we get some time. It took us a long time to develop this system, but it gives us a tremendous amount of confidence in our financial reporting to have a robust system in place that’s not subject to the amount of human error involved in a standard accounting system. And while it’s not really appropriate for sale at this time since most companies still do most of their transactions via fiat payments, we will be keeping an eye out to see if there’s a point at which we may want to commercialize the software beyond our own internal usage.
I particularly admire the Exchange cross-checking software, this is because many times I've been a victim of being debited for a transaction that never really take place. My bank does this like a normal act. I even changed bank but the situation has not improved. I've had to go to the bank every now and then to submit application letters. WHAT you have done is a very ingenious act. Welldone
We actually found a few hundred thousand USD worth of crypto mistakes in favor of exchanges when we ran our accounting software over the data that we're now working on getting corrected.
The fact that you are working to get it corrected is amazing. I think facts like this build customers confidence in you. No wonder my friends have serially recommended you whenever I mention Crypto exchange.
Sincerely, with this level of transparency, you will continue to remain at the top as far as crypto is concerned , just watch.
So will people end up being refunded? Is that what you mean by working on getting corrected?
I mean our new system found outstanding transactions where we are owed funds by an exchange and we are working to get those funds paid to us.
WHat if by "people" she was asking if YOU were going to get refunded? Hah just kidding man :D you guys guyzsz at @blocktrades are the LARGEST active Steem account that actually TALKS to steem users, did you know that??? Look at the list on mysteemitfriends.online and youll see how small the list of people is and youre in the very top 10 and youre the ONLY one that really talks to people besides @thejohalfiles who is also great and talks to people directly and is even on https://steemspeak.com discord right now the oinly 24/7 steem discord with always someone on the voice chat
Thank you for clarifying! Awesome that you spotted the errors and will hopefully be reimbursed :)
Click the Image Below to see the Video!
Hey folks I executed a trade with you 17 hours ago and it has still not shown up. Any ideas?
@blocktrades I transfered Transfer 211.344 SBD , a1d8270f-e274-4d39-a619-41a9443dbe0b . I got a failed transaction and SBD are still missing .
@penking , most informative. welldone
TRULY
TRULY, I WISH I UNDERSTAND THIS!!
Best Website to Mine free Bitcoin and DOGE|Free Mining | Free GHS & MHS| Dont Wait Signup and get bonus Please up vote post
Great initiative! Your stakeholders including investors and potential auditors will be happy with the transparency in your records since it will be blockchain based. This demonstrates are great use case for blockchain based accounting applications for many other industries as well. Thanks for the information; I would love to know how this progresses as it is definitely an area of interest for me.
That's a great point: our ability to prove our finances from data on public ledgers is really a pretty radical idea in the current world where companies can easily generate opaque and outright deceptive accounting reports.
Ingenious how @blocktrades had managed to take a huge part in the steem economy. As a current SP lender, I'll be looking forward to your software updates :) Keep up the good work guys
Breaking new ground in blockchain accounting. Congrats. These capabilities will become more valuable across industry verticals as blockchains begin to integrate with various systems (finance, logistics, supply tracking, ordering, asset transfer, etc.). Well done. Keep pushing the envelope.
Having previously helped write complex software for international investment banks, I am acutely aware of what it can be like to work on such projects and the amount of variables that need to be monitored and carefully processed. I attempted to use the available online tools to record my own accounts across various exchanges not so long ago and the results were not impressive at all - partially due to the same problems you highlighted in your post. Any software that carefully solves these challenges is a definite boost to the entire industry of cryptocurrency and I strongly suspect you will have a lot of potential buyers if you do offer the code as a product for wider use. :)
This is good news for blocktrades I think. It's good they're taking care of their client's tax issue as well. At least there will be no issues in the future. We know what happens when tax becomes nasty.
I got my steemit from blocktrades today lol it works! :))
Thank you for the update and providing this crucial information. Businesses looking to build with an emphasis on cryptographic assets will benefit tremendously from you blazing the trail ahead.
Wow I'm glad to have used your service with this type of strong accounting system. It's great to have this process automated because I can't calculate it myself. Let us be honest though, is the IRS really good at understanding how much crypto tax you owe? I feel there is such a grey area here.
What about your plans to add more cryptos currency
We're working on adding a new coin right now, I hope it will be available in the next week or two. We don't pre-announce the coin, however.
Not only do you provide such a simple interface and process of conducting transactions. But you are actually implementing what used to be "ideas" of how the blockchain can be used. First few steps involve communicating with and searching a blockchain seamlessly, but to actually be able to write in a process where the actual act of conducting a transaction automatically allocates taxes, dividends, expenses, obligations etc...what a time to profit and be a part of such a powerful industry.