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 liquidity pool 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.
What is a liquidity pool?
A liquidity pool is essentially a group of tokens or assets 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.
Example:
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 crypto liquidity pool.
ETH would be purchased from the centralized exchanges and sold to the pool for an immediate profit. This selling would rebalance the liquidity pool, adding ETH and removing WBTC until an equilibrium is reached between the centralized exchange price and the decentralized liquidity 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 crypto liquidity pools and 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 liquidity pool. To compensate liquidity providers for taking the risk of IL, traders who make trades using the liquidity 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.
The Process of Providing Liquidity
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 give liquidity pool tokens for a return. Examples of popular liquidity 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 liquidity pools may have incentive schemes to entice you to join the liquidity 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.
Note: 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 liquidity pool. In return, you receive a proportional amount of LP tokens associated to that liquidity 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 liquidity 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.
Categorizing Liquidity Provision on Crypto Tax Calculator
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 Liquidity pool (LP) token, with substantially different properties, in return. From the guidelines we have received, our platform categorizes this initial deposit into the liquidity pool tokens as a 'Add Liquidity'. The receipt of the liquidity pool (LP) token is categorized as a 'Receive LP Token'. This creates a taxable event on our platform, where you may realise capital gains from the 'Add Liquidity' of the deposited tokens, as some tax jurisdictions treat this as a capital disposal event. This can be seen in the example below, where pxGMX and ETH digital assets have been deposited into a liquidity pool on Arbitrum's Camelot DEX:
You can see the deposit of each asset, pxGMX and ETH, digital assets have been categorized as 'Add Liquidity' and have an associated capital gain/loss. This is then immediately followed by the receipt of the Camelot LP token, which is assigned a value equal to the value of the two deposited tokens. As there is a fee for this transaction, a small capital loss is associated on the right.
The redemption of the LP token works in the reverse process, with the LP token being categorized as a 'Send LP Token' and the deposited tokens (plus generated fees/yield) being received being categorized as a 'Remove Liquidity’. If the LP position has changed in value between the initial deposit and the final withdrawal, this will be classified as a taxable event depending on your tax jurisdiction. This can be seen again in the example where pxGMX and ETH has been withdrawn from the same liquidity pool on Arbitrum's Camelot DEX:
You can see the send of the Camelot 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 crypto asset, pxGMX and ETH. The Crypto Tax Calculator platform has automatically categorized these as 'Remove Liquidity' and have an associated capital gain/loss.
As mentioned before, crypto liquidity deposits are a grey area in most tax jurisdictions. Crypto Tax Calculator 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.
LP Token Value
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.