2019-09-21 00:27:13 +00:00
# cryptools
2019-08-25 23:57:07 +00:00
2019-08-26 01:49:22 +00:00
### Accounting library for cryptocurrency transaction activity.
2019-08-25 23:57:07 +00:00
2019-08-30 02:45:48 +00:00
###### (Currently runs as a binary, not a library)
2019-08-28 02:33:06 +00:00
2019-09-01 04:49:00 +00:00
The software measures one's cryptocurrency activity (i.e., denominates one's income/expenses/gains/losses) in their home currency.
2019-08-30 02:45:48 +00:00
The default home currency is USD, but anything can be substituted.
This type of tool may be useful, for example, when preparing to file taxes.
2019-09-21 18:41:11 +00:00
The software has been tested on Mac and Linux.
Testers/users are encouraged and welcome.
---
2019-08-30 02:45:48 +00:00
Given an input CSV file reflecting the user's entire cryptocurrency transaction history, the software will:
* assign cost basis as of the date of purchase/exchange/receipt
* track the original acquisition date and cost basis until the time of disposal
* 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
2019-09-21 18:45:37 +00:00
Read up on the [CSV input file ](https://github.com/scoobybejesus/cryptools/blob/master/InputFile_CSV.md ).
2019-09-05 02:42:19 +00:00
Reports may be exported (as CSV files) that reflect income/expenses/gains/losses or amount and cost basis of existing holdings.
2019-08-30 02:45:48 +00:00
2019-08-30 02:51:33 +00:00
---
2019-08-25 23:57:07 +00:00
2019-08-30 02:45:48 +00:00
#### Features
* Two methods each of LIFO or FIFO (with intentions to add more)
* Ability to perform like-kind exchange treatment
2019-09-01 04:49:00 +00:00
* Compatible with any home currency
2019-08-25 23:57:07 +00:00
#### Constraints
* *All* cryptocurrency-related activity for the user generally must be included in the input CSV file.
2019-09-21 18:56:43 +00:00
* 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,
the XCP or ETH transaction fee must be reflected in a separate transaction row).
2019-08-25 23:57:07 +00:00
2019-09-21 18:56:43 +00:00
* Manual adjustments may need to be made to the output files in cases, for example,
when the user used aprpeciated cryptocurrency to make a tax-deductible charitable contribution.
2019-08-25 23:57:07 +00:00
## Installation
1. `cargo build` (or include `--release` for a non-debug build)
2019-09-21 00:27:13 +00:00
This will build `./target/debug/cryptools` (or `./target/rls/cryptools` for a non-debug build).
2019-08-25 23:57:07 +00:00
## Usage
2019-09-21 00:27:13 +00:00
Run `./target/debug/cryptools` with no arguments (or `--help` , or `-h` ) to see usage.
Alternatively, run `cargo run` , in which case command-line arguments for `cryptools` may be entered following `--` , e.g., `cargo run -- -h` .
2019-08-25 23:57:07 +00:00
2019-08-30 02:45:48 +00:00
Running with no arguments will lead the user through a wizard, or all required arguments can be passed as command-line flags/options/args.
2019-09-05 02:42:19 +00:00
See `/examples/` directory for further guidance,
2019-09-21 00:27:13 +00:00
or jump directly to the [examples.md ](https://github.com/scoobybejesus/cryptools/blob/master/examples/examples.md ) file.
2019-08-30 02:45:48 +00:00
2019-08-28 02:33:06 +00:00
## Development state
2019-08-30 02:45:48 +00:00
As of summer 2019, the code is "feature complete" in the sense that it does not require additional features in order for it to serve the needs of the original author.
2019-08-28 02:33:06 +00:00
At the same time, there are plenty of bells and whistles, creature comforts, etc. that may be added at any time.
Additionally, the code could use factoring or general re-working in several areas.
2019-08-30 02:45:48 +00:00
In fact, it may be nice to use the business logic as a library instead of running a full binary.
2019-08-28 02:33:06 +00:00
2019-08-25 23:57:07 +00:00
## Contributing
* Contributors welcome. New authors should add themselves to the `AUTHORS` file.
2019-09-21 00:27:13 +00:00
* Roadmap and todos: we're working through items in [Issues ](https://github.com/scoobybejesus/cryptools/issues ); feel free to tackle or add issues.
2019-08-25 23:57:07 +00:00
## Legal
See LEGAL.txt