Updated README.

This commit is contained in:
scoobybejesus 2020-01-18 11:40:32 -05:00
parent e28fc5b3be
commit cdfec84df4
1 changed files with 15 additions and 11 deletions

View File

@ -2,10 +2,10 @@
### Accounting library for cryptocurrency transaction activity. ### Accounting library for cryptocurrency transaction activity.
###### (The package produces a binary that makes use of the library) ###### (The package produces a binary and accompanying library)
This software calculates income, expenses, realized gains, and realized losses from cryptocurrency activity This software calculates income, expenses, realized gains, and realized losses (and holding period)
and denominates the results in the user's home currency. from cryptocurrency activity and denominates the results in the user's home currency.
The default home currency is USD, but any currency can be substituted. The default home currency is USD, but any currency can be substituted.
This tool is probably most useful for filling out a tax return or making tax planning decisions. This tool is probably most useful for filling out a tax return or making tax planning decisions.
@ -14,25 +14,29 @@ This tool is probably most useful for filling out a tax return or making tax pla
Given a [CSV input file](https://github.com/scoobybejesus/cryptools/blob/master/InputFile_CSV.md) Given a [CSV input file](https://github.com/scoobybejesus/cryptools/blob/master/InputFile_CSV.md)
containing the user's entire cryptocurrency transaction history, the software will: containing the user's entire cryptocurrency transaction history, the software will:
* record every cryptocurrency acquisition and track it until it is disposed * record every cryptocurrency acquisition and track* it until it is disposed
* assign cost basis to every acquisition as of the date of purchase/exchange/receipt * assign cost basis to every acquisition as of the date of purchase/exchange/receipt
* track the original acquisition date and cost basis (making adjustements for like-kind exchange treatment, if elected) * track the original acquisition date and cost basis (making adjustements for like-kind exchange treatment, if elected)
* compute gain or loss from the sale/exchange/disposal (including whether short-term or long-term) * compute gain or loss from the sale/exchange/disposal (including whether short-term or long-term)
* record income for incoming transactions and expenses for outgoing transactions * record income for incoming transactions and expenses for outgoing transactions
* print/export the results as CSV and TXT files * print/export the results as CSV and TXT files
*The tracking isn't pooled by `ticker`. Rather, it's tracked at the wallet level.
--- ---
### Features ### Features
* Two methods each of LIFO or FIFO (with intentions to add more) * Two methods each of LIFO or FIFO (compatible w/ the concept of "specific identification")
* Ability to perform like-kind exchange treatment * Ability to perform like-kind exchange treatment
* Compatible with any home currency * Compatible with any (single) home currency
* Will export all bookkeeping journal entries (w/ `-a` or `-j`) * Will export all bookkeeping journal entries (w/ `-a` or `-j`)
* Print menu (via `-p`) for individually choosing the desired reports
### Constraints ### Constraints
* *All* cryptocurrency-related activity for the user generally must be included in the * *All* cryptocurrency-related activity for the user generally must be included in the
@ -40,7 +44,7 @@ containing the user's entire cryptocurrency transaction history, the software wi
* There can only be either one or two accounts used in a given transaction * There can only be either one or two accounts used in a given transaction
(i.e., if a Counterparty token or Ethereum token transaction must be recorded, (i.e., if a Counterparty token or Ethereum token transaction must be recorded,
the XCP or ETH transaction fee must be reflected in a separate transaction row). the BTC or ETH transaction fee must be reflected in a separate transaction row).
* Manual adjustments may need to be made to the output files in cases, for example, * Manual adjustments may need to be made to the output files in cases, for example,
when appreciated cryptocurrency was used to make a tax-deductible charitable contribution. when appreciated cryptocurrency was used to make a tax-deductible charitable contribution.
@ -67,10 +71,9 @@ or jump directly to the [examples.md](https://github.com/scoobybejesus/cryptools
## Development state ## Development state
As of summer 2019, the code does not *require* additional features in order for it to serve the project's founder. As of summer 2019, the code does not require additional features in order for it to serve the project's founder.
At the same time, there are plenty of bells and whistles, creature comforts, etc. that are desired and may be added. At the same time, there are plenty of bells and whistles, creature comforts, etc. that are desired and may be added.
Additionally, the code could use factoring or general re-working in several areas. Additionally, the code could use factoring or general re-working in several areas.
In fact, it may be nice to use the business logic as a library instead of running a full binary.
The software has been tested on Mac, Linux, and FreeBSD. The software has been tested on Mac, Linux, and FreeBSD.
Additional testers/users are encouraged and welcome. Additional testers/users are encouraged and welcome.
@ -79,7 +82,8 @@ Additional testers/users are encouraged and welcome.
* Contributors welcome. New authors should add themselves to the `AUTHORS` file. * Contributors welcome. New authors should add themselves to the `AUTHORS` file.
* Roadmap and todos: we're working through items in [Issues](https://github.com/scoobybejesus/cryptools/issues); feel free to tackle or add issues. * Roadmap and todos: we're slowly working through items in [Issues](https://github.com/scoobybejesus/cryptools/issues);
feel free to tackle or add issues.
## A few words from the founder ## A few words from the founder
@ -91,7 +95,7 @@ I eventually created this project as a reaction to the inadequate tooling I foun
Sure, other products have more bells and whistles, but at least I know this produces correct results Sure, other products have more bells and whistles, but at least I know this produces correct results
(i.e., this software specifically identifies and track all acquired assets, whereas online solutions seems to pool them together). (i.e., this software specifically identifies and track all acquired assets, whereas online solutions seems to pool them together).
I am not a formally trained programmer, however I have come to enjoy it very much and learn more whenever I can. I am not a formally trained programmer, however I have come to enjoy it very much and I learn more whenever I can.
I originally tried to learn C++ by myself, and that was frustrating. I originally tried to learn C++ by myself, and that was frustrating.
My first real progress was with Python, but I still didn't manage to fully develop a working program. My first real progress was with Python, but I still didn't manage to fully develop a working program.
Luckily, I managed to stumble across a mentor who helped me write 80% of an MVP in strongly-typed Swift. Luckily, I managed to stumble across a mentor who helped me write 80% of an MVP in strongly-typed Swift.