Liquidity & price impact

A pool's token balance may overstate accessible trading reserves

Distinguish contract-held tokens from stored pricing reserves, active-range liquidity and assets accessible under the swap’s limits.

A token balance at a pool-related address is not a complete measure of what a swap can receive at an acceptable price. The balance must be interpreted through the specific pool's pricing and accounting rules.

Stored reserves can differ from balances

The Uniswap v2 pair implementation maintains stored reserves separately from current token balances and includes operations that synchronize their relationship. A direct token transfer can therefore change a balance without making a prior reserve snapshot an accurate description of the new state.

The mismatch can run in different directions. Do not assume an observed excess is permanently accessible trading depth or that a lower balance can satisfy a quote based on older reserves.

Concentrated holdings need range context

A concentrated pool can hold tokens assigned to positions outside the current price range. Those holdings do not all support the next small trade at the current rate. A large trade must traverse the relevant ranges, subject to its execution constraints.

Some implementations also maintain accounting amounts such as accrued fees within contract-held balances. Their presence does not mean the pricing curve offers them as unrestricted output inventory.

Use a model-aware assessment

Identify the exact pool version and the state variables its quote uses. Compare actual balances with stored reserves or active-range data only where the implementation defines that relationship.

A hypothetical contract balance of 10,000 output tokens does not imply that a trader can acquire 10,000, or even a large fraction, near the displayed marginal rate. Finite curve depth and minimum-output or price constraints can limit usable capacity long before the total balance is exhausted.

For practical execution, a current quote at the intended size is more informative than a raw balance alone. When discrepancies remain, report them as accounting or state questions rather than converting the largest visible token number into a guaranteed swap-size limit.

Sources & verification (2)

Source-check date is recorded in the article details. URLs are provided for manual verification. Use Copy to keep this page open.

  1. UniswapV2Pair.sol

    Stored reserves, actual balances and synchronization are separate concepts in the v2 implementation.

    https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol
  2. Uniswap v3 Core

    Concentrated liquidity, real and virtual reserves, ticks and fee tiers.

    https://app.uniswap.org/whitepaper-v3.pdf

Continue reading

Why total value locked does not tell you how much you can swap Read pool reserves as quantities before interpreting dollar liquidity Why LP-token value is not a usable swap-size limit