How do I use the Custom Data format?
If you want to include trading data from an exchange we don’t support, you can use the “Custom Data” csv format to upload it into Taxoshi and include it as part of your calculation.
The format is pretty simple, but it’s important you get the the data format correct for each column to make sure everything is processed correctly. Here’s an example of the CSV format correctly filled out;
Date | Market | Type | Rate | Amount | Order Total | Fee | Identifier |
2017-03-20 00:00:00 | BTC-NAV | BUY | 0.00004 | 5000 | 0.2 | 0.2% | AA0001 |
2017-03-21 00:00:00 | BTC-NAV | SELL | 0.00008 | 5000 | 0.4 | 0.2% | AA0002 |
2017-03-22 00:00:00 | NZD-BTC | BUY | 10000 | 1 | 10000 | 0% | AA0003 |
Creating your own Custom Data file
Here’s a copy of the Custom Data csv file you can use as a template to input your own data. You should be able to edit this in any spreadsheet software you have on your computer. Just make sure when you save it, you export it as CSV again instead of the proprietary format of your software and that the dates don’t get reformatted by the software.
The Columns Explained
Let’s take a look at each column and look at what the expected data formats are.
Date
This field expects an ISO formatted date in UTC time, so the expected format is; YYYY-MM-DD HH:MM:SS
For example 2017-03-20 00:00:00 would be Midnight on the 20th of March 2017 in the UTC timezone.
Market
This field expects two tickers separated by a dash with the base pair being on the left and the market ticker on the right like this; BASE-MARKET
For example BTC-NAV is the NavCoin market on a Bitcoin based exchange. Currently the supported base pairs are;
name | symbol |
0x | ZRX |
Aave | AAVE |
Algorand | ALGO |
Ark | ARK |
Australian Dollar | AUD |
Binance Coin | BNB |
Binance USD | BUSD |
Bitcoin | BTC |
Bitcoin Cash | BCH |
Bitcoin SV | BSV |
BitTorrent | BTT |
Canadian Dollar | CAD |
Cardano | ADA |
Chainlink | LINK |
Cosmos | ATOM |
Dai | DAI |
Decentraland | MANA |
DigiByte | DGB |
Dogecoin | DOGE |
EOS | EOS |
Ethereum | ETH |
Euro | EUR |
FTX Token | FTT |
FUNToken | FUN |
Hedera Hashgraph | HBAR |
ICON | ICX |
Japanese Yen | JPY |
Litecoin | LTC |
Monero | XMR |
Nano | NANO |
NavCoin | NAV |
Nem | XEM |
New Zealand Dollar | NZD |
Ontology Gas | ONG |
PancakeSwap | CAKE |
PAX Gold | PAXG |
Polkadot | DOT |
Polygon | MATIC |
Polymath | POLY |
Pound Sterling | GBP |
Ravencoin | RVN |
Ren | REN |
Ripple | XRP |
Solana | SOL |
South African Rand | ZAR |
Stellar | XLM |
SushiSwap | SUSHI |
Swiss Franc | CHF |
Synthetix | SNX |
Tether | USDT |
Tezos | XTZ |
Tron | TRX |
United States Dollar | USD |
USD Coin | USDC |
VeChain | VET |
VeThor Token | VTHO |
Waves | WAVES |
Zcash | ZEC |
Zilliqa | ZIL |
Type
This field only accepts two values, either BUY or SELL and must be uppercase. Depending on whether the order row indicates you are buying or selling cryptocurrency, the type should BUY or SELL respectively.
Rate
This field expects a number that is greater than zero. The Rate is the price per token in the base pair currency that the order was made for.
For example on a row with the market BTC-NAV a Rate of 0.00004 would be referring to the per token price of NAV in BTC at the time the order was placed.
On a row with the market NZD-BTC a Rate of 10000 would be referring to the per token price of BTC in NZD at the time the order was placed.
Amount
This field expects a number that is greater than zero. The Amount is the total number of tokens which were purchased or sold on the order.
For example on a row with the market BTC-NAV an Amount of 5000 is referring to 5000 NAV that were bought or sold in the order.
Order Total
This field expects a number that is greater than zero. The Order Total is usually just the Amount times the Rate but it may include the trading fees if there was any. The Order total should be in the base pair currency.
For example on a row with the market BTC-NAV an Order Total of 0.4 would be indicating 0.4 BTC was paid to purchase the Amount of NAV on that row.
For example on a row with the market NZD-BTC an Order Total of 10000 would be indicating 10,000 NZD was paid to purchase the Amount of BTC on that row.
Fee
This field expects a number that is zero or greater. The Fee is whatever the exchange has charged you for placing the order as a percentage. You can include the percentage sign or leave it off. Usually the fee percentage can be found on the exchanges fee schedule or on the market itself.
For example 0.2% indicates that 0.2% of the Order Total was taken by the exchange as a trading fee.
Identifier
This field accepts any string, it is really for your own records and can be used to uniquely identify the transaction.
Other Resources
IRD Guidance
The Inland Revenue has released more information on their position on cryptocurrency and tax
Employee Schemes
Inland Revenue is extending its guidance on cryptocurrencies to cover their use in employee share schemes
Industry Opinion
Scott Mason from Findex unpacks the Inland Revenue guidance on cryptocurrency taxation