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.
■Add transactions manually (custom trade)
■PNL Calculation for DeFi / How to Create Custom File Entries
Transfers between your own addresses and accounts do not need to be included in your ledger. This is because these transfers do not impact your overall cryptocurrency balance (excluding fees).
Table of contents
1. The format of a custom file
2. 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
1. The format of a custom file
1.1 Sample files
Please check the following files which contains all samples.
1.2 File headers
A | B | C | D | E | F | G | H | I | J |
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
1.3 The format
・(※1)When base currency is Supported Coins, if thie price field is empty and counter currency is fiat, crypact will look up the price instead if we have the one.
・(※2)Please do not use 「'」「"」「\」as these symbols cause errors.
Name | Description |
Timestamp | Trade datetime in YYYY/MM/DD HH:mm:ss(Ex.:2016/12/23 12:23:34) |
Action | Please select action types from here. |
Source | data source name (exchange or shop name). |
Base | Base currency
Please choose fromSupported Coins
|
Volume | Amount of change of base currency (in absolute value) |
Price |
Base currency price in Counter currency. (※1) |
Counter | Counter currency
Please choose from the Supported Coins
|
Fee | Fee for the trade. Please input 0 if there was no fee for the trdes. |
FeeCcy | Fee currency
Please choose from the Supported coins
|
Comment | Optional. Please use this field for your own purpose as Cryptact doesn't use this.(※2). |
2. Custom file examples - case by case
2.1.Trades at unsuported exchanges, send crypto to the third party for free, and exchanges
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 | Comment |
Trade datetime | BUY | any | BTC | 2 | 2500000 | JPY | 0 | JPY | optional |
Example 2: Buy 2BTC at the market price. The commission was 0 yen.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
Trade datetime | BUY | any | BTC | 2 | Blank *1 | JPY | 0 | JPY | optional |
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 | Comment |
Trade datetime | BUY | any | ETH | 2 | 0.5 | BTC | 0.01 | ETH | optional |
Example 4: Gave coins away for free to a thirdparty
Giving coins away for free to a third-party
Example 5: 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 | Comment |
exchange datetime | BUY | any | XRP | 413.75 |
0.360353836858006(149.0964/413.75)*1 |
USDT | 0 | JPY |
optional |
*1 USDT/XPR(149.0964/413.75)=0.360353836858006
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 | Comment |
Trade datetime | BUY | any | XP | 500 | 0.02 *1 | ETH | 0 | JPY | optional |
*1 ETH/XP(10/500)=0.02
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 | Comment |
datetime when you bought the product | PAY | any | BTC | 0.01 | 500000*1 | JPY | 0 | JPY*2 | optional |
*1 5,000/0.01 = 500,000
*2 Please make fee currency and counter currency to be the same.
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 | Comment |
datetime when you bought the product | PAY | any | BTC | 0.01 | Blank *1 | JPY | 0 | JPY*2 | optional |
*1 If you blank the price column and input fiat currency in counter column, crypact will look up the price instead if we have the one.
*2 Please make fee currency and counter currency to be the same.
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 | Comment |
datetime when you bought the product | PAY | any | USER-XYZ *1 | 5 | 300 *2 | JPY | 0 | JPY*3 |
optional |
2.4.Mining
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime when you mined | MINING | any | ETH | 1 | blank*1 | JPY | 10 | USD |
optional |
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 | Comment |
datetime when you mined | MINING | any | LS | 10 | 1000 | JPY | 1 | USD |
optional |
2.5.Transfer fee
Example 3: FeeCcy (fee currency) is not supported
・You will need to research the price of either coin yourself.
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.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
Trade datetime | BUY | any | ETH | 2 | 0.01 | BTC | 50 | JPY |
optional |
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
Trade datetime | SELL | any | USER-LLL | 1 | 50*1 | JPY | 0 | JPY |
optional |
*1 You need to look up the price by yourself.
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.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
timestamp of when you received | BONUS | any | USER-LLL | 0.1 | 10*1 | JPY | 0 | JPY |
optional |
*1 You need to look up the price by yourself.
2.7. Missing prices
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.
Since price data cannot be obtained for "Missing Price" coins, if they are listed under counter currency or fee, they will be categorized as invalid transaction due to missing prices.
Example 1: you exchanged two supported coins and one of them is missing prices
*1 Please always include price missing coins in the base currency.
*2 10/1=10
Example 2: You exchanged two supported coins and both are missing prices
・Please research the price of either coin yourself.
Example 3: Price was missing for FeeCcy (fee currency)
・Please research the price of at least one of the coins yourself.
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 | Comment |
Trade datetime | BUY | any | ETH | 2 | 0.01 | BTC | 50 | JPY |
optional |
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
Trade datetime | SELL | any | ELON | 1 | 50*1 | JPY | 0 | JPY |
optional |
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.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
Trade datetime | BONUS | any | ELON | 0.1 | 10*1 | JPY | 0 | JPY |
optional |
*1 Please look up the price by yourself.
2.8.Received coins by bonus, campaign, or AirDrop/hard fork
Example1: You joined an exchange's trade campaign, and received 0.01BTC.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
Trade datetime | BONUS | any | BTC | 0.01 | blank *1 | JPY*2 | 0 | JPY |
optional |
*1 If you blank the price column and input fiat currency in counter 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.
Example2: You received BTC by hard fork.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
Trade datetime | BONUS | any | BTC | 10 | 0 *1 | JPY*2 | 0 | JPY |
optional |
*1 Please input 0 for price, and fiat currency for counter. However, if the coin has price when you received it, please input the price.
*2 We only supports fiat currencies as Counter for this trade type.
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.
▼Lending ETHTimestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime when you lent | LEND | any*1 | ETH | 10 | blank *2 | JPY*3 | 0 | JPY |
optional |
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime of the interest | LENDING | any*1 | ETH | 0.1 | blank *2 | JPY*3 | 0 | JPY |
optional |
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime when you retrieved | RECOVER | any*1 | ETH | 6 | blank *2 | JPY*3 | 0 | JPY |
optional |
*2 If you blank the price column and input fiat currency in counter column, crypact will look up the price instead if we have the one.
*3 We only supports fiat currencies as Counter for this trade type.
2.10. Staking reward
Example: You got two LSK as a reward for staking.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime of the interest | STAKING | any | LSK | 2 | blank *1 | JPY*2 | 0 | JPY |
optional |
*1 If you blank the price column and input fiat currency in counter 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.
2.11.Derivative Transactions Focusing on Increase or Decrease in Margin
The below examples only focus on the increase and decrease of 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 | Comment |
datetime of increase | BONUS | any | BTC | 0.1 | blank *1 | JPY*2 | 0 | JPY |
optional |
*1 If you blank the price column and input fiat currency in counter 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.
Example2:Derivative trading results in a loss and 0.1 BTC is taken as margin.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime of increase | LOSS | any | BTC | 0.1 | 0 *1 | JPY*2 | 0*1 | JPY |
optional |
*1 Please always input 0 for price and fee.
*2 We only supports fiat currencies as Counter for this trade type.
2.12.Borrowing/Returning between individuals
Example: Borrowing 3BAT at compound, then returned.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime of the borrowing | BORROW | any*1 | BAT | 3 | blank *2 | JPY*3 | 0 | JPY |
optional |
*2 If you blank the price column and input fiat currency in counter column, crypact will look up the price instead if we have the one.
*3 We only supports fiat currencies as Counter for this trade type.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime of the returning | RETURN | same as above *1 | BAT | 3 | blank *2 | JPY*3 | 0 | JPY |
optional |
*2 If you blank the price column and input fiat currency in counter column, crypact will look up the price instead if we have the one.
*3 We only supports fiat currencies as Counter for this trade type.
2.13. LOSS
Example:The exchange was shut down and unable to retrieve 0.1 BTC holdings. Checking with the tax office in charge and confirmed that allowed to record a loss.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime of loss | LOSS | Any | BTC | 0.1 | blank *1 | JPY | 0*2 | JPY |
optional |
*1 Please leave the price as blank.
*2 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.Decrease the position without affectig the profit and loss
Example:The exchange was shut down and unable to retrieve 0.1 BTC holdings. Checking with the tax office in charge and confirmed that not allowed to record a loss.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime of giving a tip | REDUCE | Any | BTC | 0.1 | blank *1 | JPY | 0 | JPY |
optional |
*1 Please leave the price as blank.
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 | Comment |
datetime of payment | CASH | Any | JPY*1 | 0 | 0 | JPY*1 | 2000*2 | JPY *1 |
optional |
*1 Fiat currency only. If you paid in USD or other fiat currency, please fill USD in Base, Counter, and FeeCcy.
*2 Please input the amount in the fiat currency.
2.16.SWAP
・Depending on which coin you choose for the Base, the Action will change.
・Please refer to here when the transaction includes cryptact's non supported coins.
Example:Swapped 120 BUSD to 2 BNB
Example1):Base on BNB
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime of SWAP | BUY*1 | Any | BNB | 2 | 60*2 | BUSD | 0 | JPY |
optional |
*1 Since BNB is Base currency, the action type will be BUY.
*2 BUSD/BNB(120/2)=60
Example2):Base on BUSD
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
datetime of SWAP | SELL*1 | Any | BUSD | 120 | 0.0166666666*2 | BUSD | 0 | JPY |
optional |
*1 Since BUSD is Base currency, the action type will be SELL.
*2 BNB÷BUSD(2/120)=0.0166666666
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 | Comment |
datetime of SWAP | DEFIFEE | Any | BNB | 0.01 |
blank*1 |
JPY*2 | 0*2 | JPY*2 |
optional |
*2 Counter, Fee, FeeCcy columns are not used. Please input these columns as above.
2.18.NFT
Please refer to here for details.
2.19 Redenomination (change in the currency unit)
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 DREPOLD was redenominated and became 100 DREP
1) When selling DREPOLD and buying DREP (This results in a PNL)
▼ Sell 1 DREPOLD
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
timestamp | SELL | Any | DREPOLD | 1 |
blank*1 |
JPY | 0 | JPY |
optional |
*1 If you blank the price column and input fiat currency in counter column, crypact will look up the price instead if we have the one.
▼Buy 100 DREP
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
timestamp | BUY | Any | DREP | 100*1 |
market price *2 |
JPY | 0 | JPY |
optional |
*1 Volume is x100 of the original DRPOLD position.
*2 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.
2) The book value of the position remains the same (no PNL is generated.)
▼ Sell 1 DREPOLD
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
timestamp | SELL | Any | DREPOLD | 100 |
book value*1 |
JPY | 0 | JPY |
optional |
*1 If you blank the price column and input fiat currency in counter column, crypact will look up the price instead if we have the one.
▼Buy 100 DREP
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
timestamp | SELL | Any | DREP | 100*1 |
book value *2 |
JPY | 0 | JPY |
optional |
*1 Volume is x100 of the original DRPOLD position.
*2 Please input book value of the coin.
2.20.Liquidity
Please refer to here for details.
2.21 Income in the fiat currency
Example: Recieved 2000 yen from the exchange.
Timestamp | Action | Source | Base | Volume | Price | Counter | Fee | FeeCcy | Comment |
timestamp | CASH | Any | JPY*1 | 0 |
0 |
JPY*2 | -2000*3 | JPY*2 |
optional |
*1 Fiat currency only. If you paid in JPY or other fiat currency, please fill JPY in Base, Counter, and FeeCcy.
*2 Please input the negative amount in the fiat currency.