Crypto Transaction Collection System for Tax Purposes in US



This is a great idea, I am just getting into mining. I invest in real estate on a small level and my taxes are messy enough with 15 houses. Crypto is going to be messy tax wise for a few years, this is something that could definitely help us!


A tool like this would definitely be useful for miners and node operators in order to more easily remain tax compliant.

I recently wrote a small python script to track my mining operation. Mostly I wanted to track and graph my hashrate, coin prices, network hashrate, network difficulty, cumulative zencash balance etc and store it in my own database. It does about 90% of what you’re proposal asks.

So the proposal you’ve suggested sounds like a fun project to tinker around with. I’ll see what I can put together over the weekend. My front end development skills are not the prettiest, but I could probably put together a minimum viable product which can output a csv file in the format you specified.

I’m going to scope out all outbound transactions, and assume all inbound transactions are mining/node earnings. I’ll open source it so the Zen team can take it over if needed.

I’m also curious if a tool like this already exists out there. I’ll do some research before hand and see whats available.


Thank you for your interest in this proposed project. Here is a repo for a BTC address scraper. Haven’t tried it, but someone could see if the code was useful.


Fortunately, a lot of the data is already available in existing public APIs. Its just a matter of building the tools to combine them in an end user friendly manner.

The site actually has an API available. There isn’t documentation on the zencashofficial github for it, but being a fork of the original insight-api by Bitpay, it appears all the APIs references are intact. For example, if you paste your zencash address in the below link, you will get a JSON response of all the transactions for that address. Using the transaction address with the next api call, we can get the value and time of the transaction. So in summary, explorer.zensystem can get us a list of input transactions, date of the transaction, amount of the transaction.

I’m planning to integrate this with either D3.js or recline.js for some data visualization and exportable csv files.

The below link is a list of historical ZenCash/USD prices by Day. I’ll essentially be joining the data returned from the above API call, to the corresponding closing day USD value in the below API call. Ideally I would use hourly data, but given this is just going to be a minimum viable product i’ll leave it to closing day value. This should probably be enough for the IRS / most tax agencies.

On a side note, we should really look into fleshing out the documentation for the insight api for zencash.




How should we pursue this? We have demonstrated that this is a do-able thing.

I think that it should be a ZenCash Foundation project if only to jibe with plans that we are not privy to.

I am hoping to get the attention of ZenCash Foundation to see if there is interest to do that.

In the mean time, perhaps we could go ahead with a rough and ready desktop tool that can accomplish what miners and Secure Node holders need for gathering those records.

I would be glad to help you test such a tool. Can we get started?


The US market is important for ZenCash however we are a global project with global priorities so I don’t think that diverting development resources to work on a US specific tax calculator makes much sense at this point in time. Particularly as we’re currently going through a phase of rapid growth and already have many concurrent projects to push through development.

Personally, I think taxation is a problem best left to people in the accounting space - luckily, there are already a few solutions out there. From my 10 minutes of online research, this seems to be one of the better offerings:

Hopefully it helps you guys out!


I agree with @Rowan in that a project like this is likely outside the scope of the ZenCash team. While it is definitely important for them to allow adoption to be as easy as possible, its a higher priority for them to focus on delivering the white paper objectives.

These types of projects for other cryptos are often developed and maintained by the community or start ups like cointracking.

I’m currently looking into deploying a python flask app on heroku that should be as simple as input your zenaddress and it will output a csv with a basic level of information you would need for taxes.

I’ll post a link here when its available for some beta testing as well as the github.


Thanks for the clarity! I think that Persona and I can carry this ball.


Persona, I will help in any way I can.


Okay give this a go. I put it together this weekend and its giving me the data exactly as expected. I’m not sure how well the script will work if there are hundreds of transactions, but it might just take longer.

In the next update, i’ll look into adding features to input multiple addresses before submitting, to get everything in one file. And I’ll look into getting the price data down the nearest hour. Currently it provides the closing value for the day of the transaction.

It’s on github, so if there are any technical issues or bugs please submit them there.


Looking good, Persona. A couple of things and will address future on GitHub.

I notice that Chrome wants to download file and Safari wants to display file. Might just be browser behavior. Not arguing for one versus other.

All outbound transactions are >ingored.<

Thanks for the CC license. I intend to put this up on my website, when I ever get around to building it!



Didn’t test in safari! I’ll look into seeing why thats the case. I’ll updated the text saying please use Chrome for now.

looking forward to feedback on github!


Hey Persona, I have been looking for something exactly like what you are building. I have been hunting around for the last couple weeks figuring out how to generate a report for all the mining income over the past year. I was able to pull down historical price data for the past year but can’t figure out how to get only incoming transactions from the block explorer. I heard the API might be an option.

Why I am posting is the link is giving me an error.

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

I will continue playing with the API but it looks like your already ahead of me.


Signed up on but they don’t have zen as an import option and don’t take requests for new coins.


Thanks for letting us know, I’ll add them to my list of companies to reach out to and will keep you posted with any progress.



I sent a (small) tip to your ZEN address to see if you are still looking at this. I have been away for some time and wanted to revisit this project. I am having the same issue as engineerking.


Getting the same error:

Internal Server Error
The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

Whether in Chrome or Safari on Mac.


Hey, I’ll take a look shortly and see what I can do.

Approx how many transactions would have been in your request? 1-50? 50-200? Or 200+?

I might need to add more resources to the virtual machine.