Correcting invalid transactions: DeFi

This page explains how to fix invalid transactions in DeFi. For information on how to fix invalid transactions in non-DeFi, or general information on what invalid transactions are, please refer here.



  1. How do I fix invalid transactions in DeFi?
  2. Fix invalid transactions using the Convert function (newly introduced on December 8th, 2022)
  3. Alternative method: upload transactions using a custom file


1. How do I fix invalid transactions in DeFi?

A. Please use the "Convert" function to fix invalid transactions in DeFi.

This function allows you to manually edit, exclude, and delete DeFi transactions.

Currently, the "Ledger Repair" wizard does not handle invalid transactions in DeFi. The use of the Convert function allows you to fix invalid transactions in DeFi in the same way as fixing non-DeFi transactions.

▼As shown below, the "Ledger Repair" wizard does not handle invalid transactions in DeFi.




2. Fix invalid transactions using the Convert function

2.1 In the Transactions tab, check that you have invalid transactions in DeFi.


Click the relevant transaction to see the reason why it is invalid (in this example, "Price for FRRJPY was not available at 2022-01-07 16:21:18".

2.2 Click "Convert into an editable transaction".


2.3 Below popup will appear. Click "OK".


2.4 The DeFi transaction will be in the pending conversion status. To complete the conversion, go to the DeFi transactions tab.


2.5 In the DeFi transactions tab, click "Sync all".


2.6 Make sure that the "Synchronization has been completed" pop-up message appears.



The conversion process is now complete. Now you can edit the converted transaction.


2.7 In the DeFi transactions tab, select "Convert" as the Action filter.


→This displays the list of original DeFi transactions that you used the "Convert" function


2.8 Click the DeFi transaction you would like to edit.


2.9 You cannot edit the original DeFi transaction directly, but you can edit the transaction that was generated by the conversion (="converted transaction"). Click the converted transaction.



2.10 You can edit/exclude/delete the converted transaction. Click the "Repair Ledger" button or "Edit" to enter the price. After you made the necessary edits, click "Commit" at the bottom right to save the changes.


For more details on how to use the convert function, please refer here.


3. Alternative method: upload transactions using a custom file


If you do not wish to use the "Convert" function described above, please refer to the below to "Exclude" the relevant DeFi transaction and upload the transaction history via a custom file.


To fix invalid transactions in DeFi, please click the relevant trade in the Transactions tab (trades that are highlighted in red), and follow the below steps to fix it.


Example-1) How to handle "Price for xxxx was not available at YYYY-MM-DD HH:MM:SS" scenario


・In order to calculate the pnl in your reporting currency (the default is JPY), Cryptact needs the price for the reporting currency (counter currency) also. This type of invalid transaction occurs when Cryptact does not have the price for your counter currency at the time of your transaction. 

・This type of invalid transaction also occurs when you receive a Bonus in a currency that Cryptact does not support.



For DeFi, Cryptact currently does not support manually editing price data. Please handle this type of invalid transaction by manually uploading custom trades using Defi tokens.

How to upload custom trades

* When you have manually uploaded separate custom trades, to avoid duplicate transactions, please update the original DeFi's transaction type to "Fee Only" and synch.

* Even when Cryptact starts supporting the relevant coins, as long as the transaction type remains "Fee Only", these transactions are excluded from the PNL calculation.




* You can also change your setting so that the price is set to 0 JPY when the price data is not available. For more details, please refer to here.


Example-2) How to handle "Over-sell: Trade volume exceeds previous position" scenario

・An over-sell is when your transaction is attempting to sell more of a cryptocurrency than you currently own at the time. In the above example, you are selling 0.21 BNB but you currently own only 0.1331575774 BNB. This sell transaction is considered "Over-sell" and becomes invalid.

・The most likely cause for this is that there are gaps in your transaction history. We provide this invalid transaction checking to help you find these instances of missing data. Your ledger is neither accurate nor complete if you are missing previously executed transactions. We attempt to make sure you are using the most reliable set of data for your reporting by providing this functionality.



For this type of invalid transaction, first, make sure you have uploaded all of your data (including both DeFi and non-DeFi). In particular, if you have traded on exchanges that Cryptact does not support, or if you have traded transaction types that Cryptact does not support, please check if they are included in the ledger.

If you are missing transaction data (in the above example, a Bonus transaction for 0.08 BNB on November 10, 2021 is missing), please upload them as custom trades.

DeFi: PNL calculation for various transaction types and how to create custom files

How to upload custom trades

Once the missing transaction data is uploaded and the transaction is no longer over-selling, the transaction becomes valid automatically.


<For your reference: About marginal flip transactions>

For very small over-sell violations (less than 100 JPY), Cryptact can automatically set the trade size to be equivalent to your position immediately prior, such that the result is a complete closure of your position. You will see an adjustment indicator on your transaction, and this adjustment will impact the PNL calculation.

You can turn on/off marginal flip transactions and you can also adjust the threshold in your settings menu. For more details, please refer here.