Custom File for any other trades

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

  1. The format of a custom file
  2. Custom file examples - case by case
    1. Trades at unsupported exchanges, dealing with hard forks, send crypto to the third party for free
    2. Joined ICO
    3. Purchase goods or service by cryptocurrencies
    4. Mining
    5. Transaction fee
    6. Unsupported coins
    7. Missing prices
    8. Received coins by bonus, campaign, or AirDrop
    9. Lend coin, Interests from coin lending, and retrieve the coin
    10. Staking reward
    11. Derivative Transactions Focusing on Increase or Decrease in Margin
    12. Borrowing/Returning between individuals
    13. LOSS
    14. Give a tip / Decrease the position
    15. Expense paid in Fiat currency
    16. SWAP
    17. Fees resulting from DeFi
    18. NFT
    19. Redenomination
    20. Liquidity
  3. Derivatives 
  4. 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

 

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 fork
Timestamp 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

Q. How to upload the history when I gave my coins for free to an individual? (Japanese only) – support@cryptact

 

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

 

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

 

Please make fee currency and counter currency to be the same.
 

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

 

Specify mining cost to the Fee column. We only support Fee currency which is same as Counter.

 

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

 

By default, fee is used only to reduce the position. If you want fee to be included into loss, please specify it in the settings screen.
 

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.

 

You can check for the list of coins that Cryptact supports from here.

For example, if you search for "LLL" and if it is not supported, it would display "LLL is currently not supported".

 

<STEPS>

①Create a custom coin (USER-●●) that can be used instead of LLL

If you use USER-●● in place of an unsupported mainstay currency, it will be recognized as a token.
●● can be up to 15 single-byte alphanumeric characters, single-byte capital letters, and single-byte pound signs (#). For more details on how to create a custom coin, please refer to here.
* Custom coins do not have prices. Therefore, if you use a custom coin as Counter (settlement currency) or FeeCcy for your custom trade, you will end up with an invalid transaction for missing prices. Please note that custom coins can only be used as Base (base currency).
 

②Create a custom file

Example 1: you exchanged an unsupported coin with a supported coin

You purchased 10 ETH when 1 ETH was 0.1 LLL. You paid 1 LLL and 0.01 ETH fee for the trade. LLL was not supported by Cryptact at the time so this trade became invalid.

As custom coins can only be used as Base (base currency), please always use it as Base.

Timestamp Action Source Base Volume Price Counter Fee FeeCcy
timestamp of the invalid trade SELL any USER-LLL 1

10

ETH 0.01 ETH

 

Example 2: you exchanged an unsupported coin with another unsupported coin

You purchased 10 NNN for 2 LLL. The fee was 5 JPY. Both LLL and NNN were not supported by Cryptact, so the trade became invalid.
You looked up the price by yourself and found that 1NNN = 10 JPY at the time.

 
As custom coins can only be used as Base (base currency), please split this trade into two separate trades using the fiat currency.
Timestamp Action Source Base Volume Price Counter Fee FeeCcy
timestamp of the invalid trade SELL any USER-LLL 2

50

(10X10)/2

JPY 0 JPY
timestamp of the invalid trade BUY any USER-NNN 10

10

you need to look up the price by yourself

JPY 5 JPY
 

Example 3: FeeCcy (fee currency) is not supported

You purchased 2 ETH in BTC when the price of ETH was 0.01 BTC. You paid 1 LLL for the fee. LLL was not supported by Cryptact at the time, so the trade became invalid. 1 LLL was 50 JPY at the time.

 
As custom coins can only be used as Base (base currency), please split this trade into two separate trades using the fiat currency.
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 USER-LLL 1

50

you need to look up the price by yourself

JPY 0 JPY

 

Example 4: you received a bonus in an unsupported coin

You participated in Exchange's Chat Campaign and received 0.1 LLL bonus reward.

LLL was not supported by Cryptact at the time and the trade became invalid. You looked up the price by youself and found that 1 LLL = 10 JPY.

As custom coins can only be used as Base (base currency), please always use it as Base.

Timestamp Action Source Base Volume Price Counter Fee FeeCcy
timestamp of when you received it BONUS any USER-LLL 0.1

10

you need to look up the price by yourself

JPY 0 JPY
 

 

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>

* If Cryptact does not have prices for a given coin, please do not use it as Counter (settlement currency) nor FeeCcy (fee currency) to avoid invalid transactions. Please use it only as Base (base currency).
 

①Create a custom file

Example 1: you exchanged two supported coins and one of them is missing prices

You bought 10 ETH for 1 ELON when the price of ETH was 0.1 ELON. You paid 0.01 ETH for the fee. Cryptact did not have the price for ELON at the time, so the trade became invalid.

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 SELL any ELON 1

10

ETH 0.01 ETH

 

Example 2: you exchanged two supported coins and both are missing prices

You bought 10 NNN for 2 ELON and the fee was 5 JPY. Cryptact did not have the prices for ELON and NNN at the time, so the trade became invalid.
You looked up the price by yourself and found that 1 NNN = 10 JPY at the time.

 
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 SELL any ELON 2

50

(10X10)/2

JPY 0 JPY
timestamp of the invalid trade BUY any NNN 10

10

you need to look up the price by yourself

JPY 5 JPY
 

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.

 
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 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

 

 

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'

 

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.

 

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.