Protocols

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.

Octav Team2 min read
Banner: Three places your capital hides

Protocols covered

  • Curve Finance logoCurve
  • Ethereum blockchain logoEthereum

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

StageWhere the value sitsVisible in wallet?
Provide liquidityPool → you receive an LP tokenYes
Stake for rewardsLP token deposited into a gaugeNo
Lock CRVCRV locked into veCRVNo

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

  • Banner: Your LP position is an NFT, not a balance
    Protocols

    Valuing 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

  • Banner: Supply, debt and the health factor
    Protocols

    Tracking 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

  • Banner: stETH rebases. wstETH does not.
    Protocols

    Valuing 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