For unsupported exchanges, you can still upload trade history by preparing for a custom file.
Please read the following instructions and create an Excel(.xlsx) or CSV (.csv) file, and upload it in "Custom" box at the upload screen of Cryptact.
Table of contents
- The format of a custom file
- Custom file examples - case by case
- Trades at unsupported exchanges, dealing with hard forks, send crypto to the third party for free
- Joined ICO
- Purchase goods or service by cryptocurrencies
- Mining
- Transaction fee
- Unsupported coins
- Missing prices
- Received coins by bonus, campaign, or AirDrop
- Lend coin, Interests from coin lending, and retrieve the coin
- Staking reward
- Derivative Transactions Focusing on Increase or Decrease in Margin
- Borrowing/Returning between individuals
- LOSS
- Give a tip / Decrease the position
- Expense paid in Fiat currency
- SWAP
- Fees resulting from DeFi
- NFT
- Redenomination
- Liquidity
- Derivatives
- Sample Custom Files
1. The format of a custom file
You don't have to upload cryptocurrency transfers in general.
You don't have to upload transfers between your accounts or addresses to calculate positions in Cryptact. If you want to reduce your position by transaction fee, however, please follow Transaction fee
Name | Description | Example |
---|---|---|
Timestamp |
Trade datetime in YYYY/MM/DD HH:mm:ss
Timezone can be specified in the upload screen later.
|
2016/12/23 12:23:34 |
Action |
BUY/SELL/PAY/MINING/SENDFEE/REDUCE/BONUS/LENDING/STAKING/CASH BORROW/RETURN/LOSS |
BUY |
Source | data source name (exchange or shop name) | Exchange A |
Base |
Base currency
Please choose from Supported Coins
|
ICN |
Volume | Amount of change of base currency (in absolute value) | 150 |
Price |
Base currency price in Counter currency If this field is empty, cryptact uses its own price |
550 |
Counter |
Counter currency
Please choose from the supported coins list
|
JPY |
Fee | Fee for the trade | 0 |
FeeCcy |
Fee currency
Please choose from the supported coins list
|
JPY |
Comment |
Optional. Please use this field for your own purpose as Cryptact doesn't use this.
|
2. Custom file examples - case by case
Please check the following files which contains all samples
2.1.Trades at unsuported exchanges, dealing with hard forks, send crypto to the third party for free
Example 1: Buy 2BTC and pay total of 5 million JPY. The commission was 0 yen.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
Trade datetime | BUY | any | BTC | 2 | 2500000 | JPY | 0 | JPY |
Example 2: Buy 2BTC at the market price. The commission was 0 yen.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
Trade datetime | BUY | any | BTC | 2 | Blank *1 | JPY | 0 | JPY |
(*1)If you blank the price column, crypact will look up the price instead if we have the one.
Example 3: Buy ETHBTC ( i.e. pay BTC to get ETH) at an unsupported exchange
You bought 2 ETH and paid BTC when the price of ETH was 0.5 BTC. The fee was 0.01 ETH.Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
Trade datetime | BUY | your exchange name here | ETH | 2 | 0.5 | BTC | 0.01 | ETH |
Example 4: Got coins by hard fork
You got 10 BCH by hard forkTimestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
Trade datetime | BUY | any | BCH | 10 | 0 (*1) | USD | 0 | USD |
(*1) Please specify $0 if it is hard fork.
Example 5: Gave coins away for free to a thirdparty
Example 6: Currency exchange
I exchanged 149.0964 USDT for 413.75 XRP, and the fee was 0 JPY.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
exchange datetime | BUY | any | XRP | 413.75 |
0.360353836858006 (149.0964/413.75) |
USDT | 0 |
JPY |
2.2.Joined ICO
Example: You joined ICO of XP by sending ETH. You sent 10ETH and got 500XP.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
The time when you sent ETH | BUY | any | XP | 500 | 0.02
=10ETH/500XP
|
ETH | 0 | JPY |
2.3.Purchase goods or services by cryptocurrencies
Example 1: You paid 0.01 BTC to get a product worth 5,000 JPY. Given the price of the product and the amount of BTC paid, the rate of BTC is 1BTC=500,000JPY.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime when you bought the product | PAY | any | BTC | 0.01 | 500000
5,000/0.01 = 500,000
|
JPY | 0 | JPY
Should be the same as Counter
|
Example 2: You paid 0.01BTC for a service whose price is quoted only in BTC.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime when you bought the product | PAY | any | BTC | 0.01 |
Blank
|
JPY | 0 | JPY (*1)
|
(*1)Should be the same as Counter
Example 3: Cryptocurrency XYZ was not in the supported coin list. You paid 5 XYZ for a product. You know 1 XYZ was 300 JPY at that time.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime when you bought the product | PAY | Any | USER-XYZ (*1) | 5 | 300 (*2) | JPY | 0 | JPY (*3)
|
(*1)Please use the custom coin (or dummy symbol)
(*2)Please find the rate by yourself.
(*3)Should be the same as Counter
2.4.Mining
Example 1: Mined a coin whose price is available in Cryptact
You mined ETH and got 1 ETH. The cost was 10 USD.Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime when you mined | MINING | Any | ETH | 1 |
(blank *1)
|
JPY | 10 | USD |
(*1)If you blank the price column, crypact will look up the price instead if we have the one.
Example 2: Mined a coin whose price is NOT available in cryptact.
You mined LSK and got 10LSK. The LSK price at that time was 1,000JPY per LSK. The cost was 1 USD.Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime you mined | MINING | Any | LS | 10 | 1000 | JPY | 1 | USD |
2.5.Transfer fee
Example: You spent 0.001 BTC for transfer.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
Transfer datetime | SENDFEE | any | BTC | 0.0001 | (Emply *1) | JPY (*2) | 0(*2) | BTC(*2) |
(*1) If you empty the price column, crypact will look up the price instead if we have the one.
(*2)We don't use Counter, Fee, FeeCcy columns. Please follow the example above.
2.6. Unsupported Coins
2.7. Missing prices
You can check for the list of coins that Cryptact supports from here.
For example, if you search for "ELON", and if it is supported by Cryptact but Cryptact is missing prices for it, it would display "No price data available" for trade history.
<STEPS>
①Create a custom file
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
timestamp of the invalid trade | SELL | any | ELON | 1 |
10 |
ETH | 0.01 | ETH |
Example 2: you exchanged two supported coins and both are missing prices
Example 3: Price was missing for FeeCcy (fee currency)
You bought 2 ETH in BTC when the price of ETH was 0.01 BTC. The fee was 1 ELON. Cryptact did not have the price for ELON at the time, so the trade became invalid. 1 ELON was 50 JPY at the time.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
timestamp of the invalid trade | BUY | any | ETH | 2 | 0.01 | BTC | 50 | JPY |
timestamp of the invalid trade | SELL | any | ELON | 1 |
50 you need to look up the price by yourself |
JPY | 0 | JPY |
Example 4: you received a bonus in a coin with missing prices
You participated in Exchange's Chat Campaign and received 0.1 ELON bonus reward.
Cryptact did not have prices for ELON at the time, so the trade became invalid. You looked up the price by youself and found that 1 ELON = 10 JPY.
Please note that coins with missing prices can only be used as Base (base currency).
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
timestamp of the invalid trade | BONUS | any | ELON | 0.1 |
10 you need to look up the price by yourself |
JPY | 0 | JPY |
2.8.Received coins by bonus, campaign, or AirDrop
Example: You joined an exchange's trade campaign, and received 0.01BTC.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime you received the coin | BONUS | Any | BTC | 0.01 |
(Empty *1)
|
JPY(*2)
|
0 | JPY |
(*1) If you empty the price column, crypact will look up the price instead if we have the one.
(*2)We only supports fiat currencies as Counter for this trade type.
Example 2: You received 500XYZW by AirDrop. XYZW was not in the supported coins list. You researched by yourself and found 1 XYZW = 10JPY at that time.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
timestamp of the AirDrop | BONUS | Any | USER-XYZW (*1)
|
500 | 10 | JPY (*2)
|
0 | JPY |
(*1)Use a custom coin (or dummy symbol) as the currency isn't supported.
(*2)We only support fiat in trade type 'BONUS'
2.9.Lend coin, interests from coin lending, retrieve the coin
Example: You lent 10ETH to an exchange, and received 0.1ETH as an interest, then retrieved 6ETH.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime when you lent | LEND | Name of the service(*3) | ETH | 10 |
(Empty *1)
|
JPY (*2) | 0 | JPY |
datetime of the interest | LENDING | Any | ETH | 0.1 |
(Empty *1)
|
JPY (*2) | 0 | JPY |
datetime when you retrieved | RECOVER | Name of the service(*3) | ETH | 6 |
(Empty *1)
|
JPY (*2) | 0 | JPY |
(*1) If you empty the price column, crypact will look up the price instead if we have the one.
(*2)Only fiat currencies supported for this column. Using cryptocurrencies will result in an error.
(*3)Source must match between LEND and RECOVER, since we check the amount in each source.
2.10. Staking reward
Example: You got two LSK as a reward for staking.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of the interest | STAKING | Any | LSK | 2 |
price you looked up or blank (*1)
|
JPY (*2) | 0 | JPY |
(*1) If you empty the price column, crypact will look up the price instead if we have the one.
(*2)Only fiat currencies supported for this column. Using cryptocurrencies will result in an error.
ADDITIONAL CONSIDERATION: Even in the scenario that you are not yet able to withdraw it even though you are entitled to a staking reward, you still need to record it as a profit when your entitlement has been confirmed. Therefore, even if you cannot withdraw it, if your entitlement to a staking reward is confirmed, you can include it in your ledger. However, there is no clear guideline from the NTA on this, so you will also need to check with your local tax office.
2.11.Derivative Transactions Focusing on Increase or Decrease in Margin
Example1:Derivative trading results in a profit and a 0.1 increase in BTC, the margin.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of increase | BONUS | Any | BTC | 0.1 |
price you looked up or blank (*1)
|
JPY (*2) | 0 | JPY |
(*1) If you empty the price column, crypact will look up the price instead if we have the one.
(*2)Only fiat currencies supported for this column.
Example2:Derivative trading results in a loss and 0.1 BTC is taken as margin.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of decrease | SELL | Any | BTC | 0.1 |
0 (*)
|
JPY | 0 (*) | JPY |
(*1)Please always populate Price and Fee as 0.
2.12.Borrowing/Returning between individuals
Example: Borrowing 3BAT at compound, then returned.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of the borrowing | BORROW | Any | BAT | 3 |
(Empty)
|
JPY | 0 | JPY |
datetime of the returning | RETURN | Same one with borrowing | BAT | 3 |
(Empty)
|
JPY | 0 | JPY |
* Cryptact uses the info in the Source column to link BORROW and RETURN. Please ensure to match the Source column for BORROW and RETURN.
※Please be noted: As there are no clear guidelines for DeFi, etc., there is a possibility that the content may change in the future.
2.13. LOSS
Example:The exchange was shut down and unable to retrieve 0.1 BTC holdings. Checkingwith the tax office in charge and confirmed that allowed to record a loss.
Example 2: In a funding trade, you ended up paying 0.1 BTC for the fee.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of loss | SELL | Any | BTC | 0.1 |
0
|
JPY | 0 | JPY |
※ Please note that Fee needs to be populated as 0. If there are fees that can be taken into PNL calculation, you can adjust Volume to include the fee amount if it is in the same currency as BASE or you can enter the fee amount as a separate trade.
2.14.Give a tip / Decrease the position
Example: Gave my friend 0.0001 BTC as a tip.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of giving a tip | REDUCE | Any | BTC | 0.0001 |
(Empty)
|
JPY | 0 | JPY |
※note: Decrease the position without affecting the profit and loss.
2.15.Expenses paid in a fiat currency
Example: There is 2,000JPY in expenses that can be included in the cost of mining.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of payment | CASH | Any | JPY | 0 |
0
|
JPY | 2000 | JPY |
※note: If you have an income in a fiat currency, please enter a negative number in the Fee.
※note: If you paid in USD or other fiat currency, please fill USD in Base, Counter, and FeeCcy.
2.16.SWAP
Example:Swapped 120 BUSD to 2 BNB
※Depending on which coin you choose for the Base, the Action will change.
※To calculate the profit and loss in fiat, the price of the Counter will be referenced. Please list the coins for which you are able to obtain the price in the Counter. Please refer here for supported coins, coin symbols, and the status of price data acquisition.
Example1:Base on BNB
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of SWAP | BUY | Any | BNB |
2 |
60
|
BUSD | 0 | JPY |
Example2:Base on BUSD
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of SWAP | SELL | Any | BUSD |
120 |
0.0166666666
|
BUSD | 0 | JPY |
※Decimal points are supported up to the tenth place.
2.17. Fees resulting from trading DeFi
Example: when you swapped tokens at PancakeSwap, you paid 0.01 BNB as the gas fee.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime of SWAP | DEFIFEE | any | BNB | 0.01 | blank or 0 | JPY (*1) | 0(*1) | JPY(*1) |
(*1)Counter, Fee, FeeCcy columns are not used. Please poulate these columns as ablve.
2.18.NFT
Please refer to here for details.
2.19 Redenomination (change in the currency unit)
There are no clear rules on how to treat currency redenomination. Ultimately, you will need to consult your tax consultant or your local tax office for guidance.
Below are some examples of how to represent currency redonimation on your ledger. In the first example, it is represented as first selling off the original position and buying it back again to open a new position. This results in a PNL.
Example 1: 1 DREPOLD was redenominated and became 100 DREP
1. Sell 1 DREPOLD at ●● JPY (market value)
* Please lookup the price by yourself.
* If Cryptact is pricing DREPOLD at the time, you can leave Price as blank and Cryptact will get the market price automatically.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
timestamp | SELL | any | DREPOLD | 1 |
market price or blank |
JPY | 0 |
JPY |
2. Buy 100 DREP at ●● JPY (market value)
* Volume is x100 of the original DRPOLD position.
* Please lookup the price by yourself.
* If Cryptact is pricing DREP at the time, you can leave Price as blank and Cryptact will get the market price automatically.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
timestamp | BUY | any | DREP | 100 |
market price or blank |
JPY | 0 |
JPY |
In the second example, the book value of the position remains the same, so no PNL is generated.
Example 2: DREPOLD was redenominated and 100 DREPOLD became 1000 DREP (the book value of DREP is 10,000 JPY) * please check the book value by yourself
1. Sell 100 DREPOLD at the price of 10,000 JPY
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime | SELL | any | DREPOLD | 100 |
10,000 |
JPY | 0 |
JPY |
2. Buy 1,000 DREP at the price of 1,000 JPY
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy |
---|---|---|---|---|---|---|---|---|
datetime | SELL | any | DREP | 1000 |
1000 |
JPY | 0 |
JPY |
2.20.Liquidity
Please refer to here for details.
3. Derivatives
The simplest way to describe a derivative transaction in a custom file is to describe only the increase or decrease in margin. Please refer to 2.11 above for the description method. In this case, the above format can be used.
Specify DerivType and DerivDetail. Positions and profit and loss will be calculated by using DerivType+DerivDetail as a key.
Name | Description | Example |
---|---|---|
Timestamp |
Trade datetime in YYYY/MM/DD HH:mm:ss
Timezone can be specified in the upload screen later.
|
2016/12/23 12:23:34 |
Action | BUY/SELL/PAY/MINING/SENDFEE/TIP/REDUCE/BONUS/LENDING/LOSS | BUY |
Source | data source name (exchange or shop name) | Happy Travel |
Base |
Base currency
Please choose from Supported Coins
|
ICN |
DerivType | Type of derivaties. Choose among "fx", "future", and "option". | |
DerivDetails | Details of derivatives | |
Volume | Amount of change of base currency (in absolute value) | 150 |
Price |
Base currency price in Counter currency If this field is empty, cryptact uses its own price |
550 |
Counter |
Counter currency
Please choose from the supported coins list
|
JPY |
Fee | Fee for the trade | 0 |
FeeCcy |
Fee currency
Please choose from the supported coins list
|
JPY |
Comment |
Optional. Please use this field for your own purpose as Cryptact doesn't use this.
|
4. Sample Custom Files
Please download sample custom files from the links below.
NOTICE
If you download a CSV version and modify it Excel, the format for timestamps and the encoding of the file is likely to change. This usually results in the file no longer being able to be uploaded to our service. If you plan to work in a spreadsheet suite like Excel, please download Excel versions of the sample files.