Liquidity Pools and LP Tokens
With the explosion in popularity of decentralized finance (DeFi) in the crypto space, investors interacting with DeFi protocols have come across a whole host of innovative financial products. One foundational product that has been created as the result of DeFi are liquidity pools (LPs) and their associated tokens (LP tokens). Liquidity pools form the backbone of many DeFi protocols, enabling token swaps , borrowing and lending protocols, yield farming and aggregators, on-chain liquidity insurance and many other products.
A liquidity pool is essentially a group of tokens locked into a smart contract to enable decentralized token swaps, lending, borrowing, and other activities, all on-chain. Each liquidity pool will have a specific composition of assets (usually 2-3 specific tokens) where the amount of Token A + Token B = 'LP AB', and liquidity providers must deposit equal proportions (in market value) of each token to enter the pool. Liquidity pools form the backbone of decentralized exchanges (DEXes) such as Uniswap, Pancakeswap and Raydium.
Unlike a centralized exchange, DEXes do not use an order book to create the market price. When you place a buy order on a centralized exchange, you choose the price you want to purchase the asset for, and when that order gets filled, there is a seller on the other side who placed an order and was happy to sell you the asset at the same price, your order gets filled. Instead, automated market makers (AMMs) govern the liquidity pools in DeFi, and algorithmically balance the pools to determine the price.
Let's take a theoretical liquidity pool on Uniswap that consists of 100,000 ETH and 10,000 WBTC. This would be a ETH-WBTC Liquidity Pool (LP). This gives an initial price ratio of 1 ETH : 0.1 WBTC. Let's say that the price of ETH on some major exchanges, such as Binance and Coinbase, starts to fall below this ratio, down to 1 ETH : 0.09WBTC. There is now an arbitrage opportunity between the centralized exchanges and the Uniswap pool. ETH would be purchased from the centralized exchanges and sold to the pool for an immediate profit. This selling would rebalance the pool, adding ETH and removing WBTC until an equilibrium is reached between the centralized exchange price and the pool price, meaning arbitrage would no longer be profitable. In practice, this happens constantly and is why the price of assets is generally very similar to the prices on large exchanges.
The problem that the constant rebalancing causes for liquidity providers is a concept called impermanent loss (IL). IL occurs when one of the assets in the pool appreciates against the other. In the example above, where WBTC has appreciated against ETH, the liquidity providers of this pool have essentially lost some WBTC exposure as the arbitragers have removed WBTC from the pool and added ETH. The loss is 'impermanent', as it may return to the same allocation of assets if the price returns to the same proportion as when the liquidity provider entered the pool.
To compensate liquidity providers for taking the risk of IL, traders who make trades using the pool must pay a trade fee, which gets allocated to the liquidity providers. The more trades that get made, the higher the return is in % terms for liquidity providers.
If you have decided you want to participate in this innovative new financial product, and take the risk of impermanent loss in exchange for the chance of returns from trading fees, you will have to go through the process of providing liquidity.
The first step is to decide what pool you want to join. This will mainly be factored by what tokens you own, and are willing to pool for a return. Examples of common pools are: ETH/USDC, ETH/WBTC, ETH/DAI etc
The second step is to decide what platform you want to trust with your tokens. Certain platforms are more battle-tested than others, and have possibly had their code audited for bugs or flaws. Some pools may have incentive schemes to entice you to join the pool, especially if the pool is new. It is important to note that your funds are only as safe as the contract you deposit them into. Brand new protocols will generally be more risky than larger, well-known, audited ones! However, there is a risk with any DeFi protocol, so think carefully before deciding to join a LP.
The third step is to provide the liquidity using your web3 wallet, such as Metamask. The pool will require you to deposit set proportions of each token at the time of deposit, e.g. 1 ETH : 5000 USDC for the ETH/USDC Uniswap pool. In return, you receive a proportional amount of LP tokens associated to that pool. These tokens represent your stake of the pool.
The last step is when you want to redeem your LP token, and withdraw your funds from the pool. In the redeeming process, you essentially exchange the LP token back to the pool in return for your stake (plus your share of the fees that were generated over that time period). If no impermanent loss has occurred, you will walk away with the same amount of each token as you deposited. If there has been some IL, you may receive different proportions of the tokens you first deposited.
The process of providing liquidity, and the resultant LP tokens and their properties are a grey area in most tax jurisdictions. It is important that you discuss these transactions in-depth with your personal accountant so they can take into consideration your personal situation, and how these transactions may affect your tax obligations.
When you deposit your tokens into the pool, effectively you are 'disposing' of the tokens (relinquishing control of them) and receiving a LP token, with substantially different properties, in return. From the guidelines we have received, our platform categorizes this initial deposit into the pool as a 'sell' or 'disposal'. The receipt of the LP token is categorized as a 'buy' using the proceeds of the prior 'sell'. This creates a taxable event on our platform, where you may realise capital gains from the 'sell' of the deposited tokens. This can be seen in the example below where STEP and USDC has been deposited into a liquidity pool on Solana's DEX Raydium:
You can see the deposit of each asset, USDC and STEP have been categorized as 'Sell' and have an associated capital gain/loss. This is then immediately followed by the buy of the STEP-USDC Raydium LP token, which is assigned the value equal to the value of the two deposited tokens. As there is a fee for this transaction, there is a small capital loss associated on the right.
The redemption of the LP token works in the reverse process, with the LP token being categorized as a 'sell' and the deposited tokens (plus generated fees/yield) being received are categorized as a 'buy' using the proceeds of the LP token. If the LP position has changed in value between the initial deposit and the final withdrawal, this will be classified as a taxable event on our platform. This can be seen again in the example where STEP and USDC has been withdrawn from the same liquidity pool on Solana's DEX Raydium:
You can see the sell of the STEP-USDC Raydium LP token, which is assigned a value equal to the value of the two deposited tokens. This is then immediately followed by the withdrawal of each asset, USDC and STEP have been categorized as 'Buy' and have an associated capital gain/loss.
As mentioned before, liquidity deposits are a grey area in most tax jurisdictions. CryptoTaxCalculator uses the method outlined above, where each step of the liquidity provision is a taxable event. This ensures our users are best positioned for future clarification of these complex transactions. If this is to be clarified as a chain of taxable events in the future (as the platform accounts for) users will be positioned correctly in terms of their tax obligations. If we were to take the stance that this was not a chain of taxable events, and future clarification went against this assumption, many of our users would be impacted and have unfulfilled tax obligations. Again, it is very important you clarify this process of events with your accountant to ensure your taxable obligations are fulfilled in your particular personal circumstance.
As there are millions of different liquidity pools, each with their own unique LP token associated, and with their own unique pool characteristics, it is not always possible for us to assign a market value to your LP token at this point in time. Each LP token will change value every single time a trade is executed in the liquidity pool, or when liquidity is added or removed, and thus, the proportion of the pool that the LP token represents is ever-changing.
This explains why it is currently difficult to assign a correct market value to your LP token. The LP token will be assigned the value of the deposited tokens at the time of deposit, and will only receive a new value at the time of withdrawal, equal to the value of the withdrawn tokens at that time. This is how capital gains and losses are accounted for, but may result in incorrect 'holdings value' on the dashboard whilst you have this LP token in your possession.
The information provided on this website is general in nature and is not tax, accounting or legal advice. It has been prepared without taking into account your objectives, financial situation or needs. Before acting on this information, you should consider the appropriateness of the information having regard to your own objectives, financial situation and needs and seek professional advice. Cryptotaxcalculator disclaims all and any guarantees, undertakings and warranties, expressed or implied, and is not liable for any loss or damage whatsoever (including human or computer error, negligent or otherwise, or incidental or Consequential Loss or damage) arising out of, or in connection with, any use or reliance on the information or advice in this website. The user must accept sole responsibility associated with the use of the material on this site, irrespective of the purpose for which such use or results are applied. The information in this website is no substitute for specialist advice.