Skip to main content
All CollectionsCrypto Specific GuidesComplex Crypto Tax Category
Categorizing Liquidity Pool (LP) Transactions in CTC
Categorizing Liquidity Pool (LP) Transactions in CTC

A guide discussing liquidity pools, potential tax implications and how they are categorised on the platform when providing liquidity.

Layla Huang avatar
Written by Layla Huang
Updated over 3 weeks ago

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.

Did this answer your question?