Crypto Tax Calculator (CTC) supports Defi LP transactions. Usually, CTC auto-categorizes these transactions when sufficient information is provided on-chain. Sometimes, when the transactions are not auto-categorized or are manually imported, you can follow the steps below to categorize them.
Liquidity Pool (LP) Transaction Categories
Category | Direction | Description |
Incoming | Receiving receipt tokens when adding liquidity to a pool. | |
Outgoing | Returning receipt tokens to remove liquidity from a pool. | |
Outgoing | Providing coins to a liquidity pool. | |
Incoming | Withdrawing coins from a liquidity pool. | |
Outgoing | Depositing receipt tokens into a staking pool (common in LP scenarios). | |
Incoming | Withdrawing receipt tokens from a staking pool (common in LP scenarios). The withdrawal amount cannot exceed the total staked deposit. | |
Incoming | Interest or rewards earned from staking. |
Read more:
Liquidity Pool (LP) Transaction Flow
Note: This guide provides general instructions for using CTC to categorize LP transactions. Always consult a tax professional for advice tailored to your specific tax situation.
If you participate in a liquidity pool (LP) with Token A and Token B to earn yields, your transaction flow may follow these steps:
1. Buy or Trade Tokens
Before providing liquidity, you must acquire Token A and Token B to establish a cost basis.
Warning: If purchase prices are missing, you will see a "Missing Purchase History" warning when adding liquidity. This can lead to inaccurate tax reports.
2. Add Liquidity & Receive LP Tokens
When you provide liquidity, you might receive LP tokens in return. These represent your share of the liquidity pool. In most cases, both actions occur within the same transaction (same Tx ID).
If transactions are not auto-categorized, they may appear as:
Outgoing: Token A
Outgoing: Token B
Incoming: A-B LP token
How to Categorize:
Add Liquidity: Token A
Add Liquidity: Token B
Receive Receipt Token: A-B LP token
Note: If the received LP token value is missing, you can manually enter the combined value of the liquidity provided.
3. Staking Deposit or Trading LP Tokens for Receipt Tokens
This step varies depending on how the token contracts are designed. You can filter transactions by the A-B LP token on the Transactions page to locate them.
Type A – No Further Action Required
Some LP transactions do not involve additional staking.
If you only receive LP tokens and do not deposit them elsewhere, you can skip this step.
Type B – Staking Deposit
You stake the A-B LP token to earn yields.
If not auto-categorized, it may appear as:
Outgoing: A-B LP token
Categorization:
Staking Deposit: A-B LP token
Type C – Trading LP Tokens for Another Token
You exchange your LP tokens for a different token.
This typically happens within the same transaction (same Tx ID).
The new token's purpose varies, so further categorization may be needed.
If not auto-categorized, it may appear as:
Outgoing: A-B LP token
Incoming: New token
Categorization
Sell: A-B LP token
Buy: New token
If you claim staking rewards, they should be categorized as:
Staking Reward
This step depends on the contract design. If you have claimed the yields, you can categorize them as a 'Staking reward'.
If you staked your LP tokens (Step 3), you will eventually need to unstake them before removing liquidity.
If not auto-categorized, it may appear as:
Incoming: A-B LP token
Categorization:
Staking Withdrawal: A-B LP token
6. Remove Liquidity & Send LP Tokens
This is the opposite of Step 2—you return LP tokens to withdraw your liquidity.
"Send LP Token" and "Remove Liquidity" usually occur in the same transaction (same Tx ID).
If not auto-categorized, it may appear as:
Outgoing: A-B LP token
Incoming: Token A
Incoming: Token B
Categorization:
Send Receipt Token: A-B LP token
Remove Liquidity: Token A
Remove Liquidity: Token B
Note: If the "Send LP Token" value is missing, you can manually enter the combined value of the withdrawn liquidity.
Example:
If you remove liquidity and receive:
Token A = $100
Token B = $50
You can manually enter the Send LP Token value as $150.
FAQ
Q: Why can’t I treat my LP transactions as non-taxable in CTC?
LP transactions often involve:
Exchanging one token for multiple tokens (or vice versa)
Receiving an additional amount of the LP token while holding
Because of these factors, CTC cannot automatically determine the cost basis for the additional amount of the LP token. This is essentially a Missing Purchase History issue. However, if the LP transactions are treated as taxable, the system can reverse-calculate the LP token’s new value.
Due to the complexity of these calculations, full support for non-taxable LP transactions has not yet been implemented.