Most crypto accounting tools get LP withdrawals wrong
One LP withdrawal gives you back two very different things: principal and fees. SimplyLedger reads the pool's state at the exact block of each deposit and withdrawal, and splits every withdrawal into the two.
1 min read

This is how we solved it at SimplyLedger.
The problem
When you pull liquidity out of a pool, one transaction gives you back two very different things. Part of it is your principal, the capital you originally put in. The rest is the trading fees your position earned while it sat in the pool.
On-chain there is no distinction. You just see tokens leave the pool and land in your wallet.
Most tools on the market can’t separate the two. They either treat the whole withdrawal as one amount, or leave the finance team to estimate the split in a spreadsheet.
How we do it
For every LP position, SimplyLedger reads the pool’s state on-chain at the exact block of each deposit and withdrawal. Comparing the pool when you entered with the pool when you exited tells us exactly how much of each withdrawal is fees and how much is principal, so every withdrawal is split into the two.
Every number traces back to an on-chain value at a specific block.
Protocols we support
Today that covers LP positions on Uniswap (V2, V3 and V4), Curve and Balancer across multiple chains, with others in the pipeline.
One view across protocols and chains
In Portfolio, SimplyLedger brings all of these positions together in one place. For each position you see the pool’s underlying tokens, your LP balance, end-of-day pricing and the full history of deposits, withdrawals and fee claims, for every wallet and entity.
If your finance team is still splitting LP withdrawals by hand, send us a message. We’re happy to walk you through how it works.
More on the workflow: LP transactions in SimplyLedger.

