Tracking Curve Pools, Gauges and veCRV
Curve positions move through three places and only one is your wallet. Why staked LP tokens vanish from balance queries and how locked veCRV should be valued.
Protocols covered
Curve
Ethereum
A Curve position is rarely in one place. Between the pool, the gauge and the vote-escrow contract, an active Curve user's capital can be almost entirely absent from a balance query.
The three locations
| Stage | Where the value sits | Visible in wallet? |
|---|---|---|
| Provide liquidity | Pool → you receive an LP token | Yes |
| Stake for rewards | LP token deposited into a gauge | No |
| Lock CRV | CRV locked into veCRV | No |
Stage two is the one that causes the most confusion. Staking the LP token into a gauge is the normal thing to do — that is how you earn CRV — and it removes the LP token from your wallet. A provider that reads the wallet and stops sees neither the LP token nor the underlying liquidity.
The capital did not go anywhere. It is one contract further away.
Valuing the pool position
Curve pools are frequently multi-asset and often stable-weighted, so the LP token's value is the pool share resolved into its components — not the LP token's own thin market price.
For a stable pool the components are usually close to par, which makes errors here small and easy to miss. For crypto pools (volatile assets) the composition shifts with price in a way closer to Uniswap V3's behaviour, and getting it wrong costs real accuracy.
Pending gauge rewards — CRV plus whatever the gauge streams — are a separate line, sitting in the gauge contract rather than the wallet.
veCRV is locked, not liquid
Locking CRV produces veCRV: non-transferable, time-locked for up to four years, decaying linearly toward the unlock date.
This raises a genuine valuation question with no single right answer:
- Underlying value. The locked CRV is still yours, eventually. Value it at the CRV price.
- Liquidity-adjusted. It cannot be sold for up to four years. A four-year lock is not equivalent to spot CRV.
Our view is that a portfolio API should report the underlying value and the unlock date, and leave the discount to the reporting layer — because the right discount depends on the fund's mandate, not on the chain. But the unlock date has to be in the data for that choice to be available at all.
The same liquidity-classification argument applies to restaked positions.
Why this generalises
Curve is a clear illustration of a pattern that recurs across DeFi: the token in your wallet is a poor guide to where your capital is. Gauges, vaults, escrow contracts and staking modules all move value one hop away from the address you are querying.
The measured consequence is in our benchmark — token-only APIs reported between $612.6k and $28.60M on a wallet worth $46.27M.
Checking a provider
For a wallet with LP staked in a gauge and CRV locked:
- Does the staked LP position appear, or only unstaked LP tokens?
- Are pending gauge rewards reported separately?
- Is veCRV represented, with its unlock date?
- Is the pool position resolved into underlying assets?
A provider that only sees unstaked LP tokens will report a serious Curve user as holding almost nothing.
Keep reading
ProtocolsValuing Uniswap V3 Concentrated Liquidity
A Uniswap V3 position is an NFT whose composition changes with price. Why a token balance tells you nothing, and what has to be computed to value one.
2 min read
ProtocolsTracking Aave Positions: Supply, Debt, Health
Aave supplies and borrows are separate tokens with independent balances. How to net them into a real position, and why health factor belongs in risk data.
2 min read
ProtocolsValuing stETH and Liquid Staking Positions
Rebasing and wrapped staking tokens need different valuation logic. Why stETH balances change with no transaction, and how wstETH breaks naive pricing.
2 min read