When Multiple Pools Behave Like One: Impact-Constrained Capacity Concentration in Uniswap v3

An empirical note on effective concentration under a capacity objective.

TL;DR

  • 293,273 reconstructed family × day × direction × impact_bps cells across 78 Ethereum Uniswap v3 token–quote families.
  • Nominal multiplicity ≠\neq diffuse effective capacity: The cell-weighted median capacity-effective pool count is 1.076 (Neff=1/HHIN_{\mathrm{eff}}=1/\mathrm{HHI}), with a median top-1 capacity share of 96.3% and median multi-pool gain g≈3.2%g \approx 3.2\%.
  • Among 36,783 matched family-days, observed pool-volume concentration exceeds reconstructed capacity concentration on 67.6% of days (Spearman ρ=0.841\rho = 0.841).
  • Estimand & scope: Measures impact-constrained capacity at the liquidity layer; gas, routing frictions, MEV, and cross-layer causality are out of scope.

Uniswap v3 exposes several fee-tier pools for the same economic pair. This note asks whether nominal pool multiplicity translates into diffuse impact-constrained execution capacity across sibling pools.

Across 293,273 reconstructed family × day × direction × impact_bps cells in a selected 78-family Ethereum pilot, capacity shares are typically highly concentrated. A family-cluster bootstrap gives a 95% interval of [1.041, 1.128] for median NeffN_{\mathrm{eff}}. These intervals quantify sensitivity to the sampled family composition; they do not establish population-level representativeness beyond the selected pilot.

This is a selected multi-pool pilot, not a representative sample of all Uniswap v3 pairs. The broader equilibrium-composition question is motivation only; settlement safety is not estimated here.

What is being measured?

A family is a target token paired with a quote asset (WETH, USDC, or USDT), together with the Uniswap v3 pools in that pair that enter the reconstruction.

For each cell

family×day×direction×impactbps\text{family} \times \text{day} \times \text{direction} \times \text{impact}_{\text{bps}}

daily pool state is restored from Mint/Burn/Swap history. A capacity optimizer computes (i) maximum notional executable at a fixed impact tolerance on the best single pool, (ii) maximum notional under a split across available pools, and (iii) the capacity shares of that split. Impact tolerances are 10, 25, 50, and 100 bps.

Define the Herfindahl–Hirschman index of capacity shares {sp}\{s_p\}:

HHI=∑psp2,Neff=1HHI.\mathrm{HHI}=\sum_p s_p^2,\qquad N_{\mathrm{eff}}=\frac{1}{\mathrm{HHI}}.

Under the reconstructed impact-constrained capacity-share vector, NeffN_{\mathrm{eff}} is the number of equally weighted pools that would generate the same HHI. Throughout, I use capacity-effective pool count, capacity-share concentration, or effective pool count under this capacity objective. NeffN_{\mathrm{eff}} is not market power, observed router market share, number of equilibrium competitors, a welfare metric, or a general measure of all execution substitutability.

Let NavailableN_{\mathrm{available}} denote the number of pools available to the optimizer in that cell:

Navailable≠Neff.N_{\mathrm{available}} \neq N_{\mathrm{eff}}.

The reconstructed capacity allocation is not an estimated Nash equilibrium. It is a fixed-objective optimization. Replay validation on 10,161 swaps (170 pools) has median price error 0.29 bps, with 98.3% under 1 bps—useful for trusting the state engine, not for claiming welfare optimality.

Capacity-gain decomposition

Relative to the best single pool, define capacity gain

g=Croute−Cbest poolCbest pool.g=\frac{C_{\mathrm{route}}-C_{\mathrm{best\,pool}}}{C_{\mathrm{best\,pool}}}.

Among 276,038 cells with finite gg, 248,449 (90.0%) have g>0g>0; median g≈3.2%g\approx 3.2\%. Because shares are capacity shares,

top-1≈11+g\text{top-1}\approx \frac{1}{1+g}

holds almost exactly (median absolute gap 8.5×10−48.5\times 10^{-4}; correlation 0.996). gg is useful for describing the incremental capacity contributed by secondary pools, but because the capacity-share construction mechanically links gg to top-1 share, it is not treated as an independent concentration result.

Main result: multiple pools, concentrated capacity

The headline statistics below are cell-weighted over family × day × direction × impact_bps cells. A typical cell is not necessarily a typical family.

Across 293,273 reconstructed cells:

StatisticValue
Median HHI (cell-weighted)0.930
Median capacity-effective pool count NeffN_{\mathrm{eff}} (cell-weighted)1.076
Median top-1 capacity share0.963
Share with HHI ≥0.90\ge 0.9056.1%
Share with HHI ≥0.75\ge 0.7569.2%
Share with Neff≥2N_{\mathrm{eff}}\ge 20.67%

The median cell behaves close to a single capacity-effective venue under the specified impact-constrained objective. Concentration in a dominant fee tier may be economically intuitive; the contribution here is to quantify how much effective capacity sibling pools add at explicit 10–100 bps impact boundaries, rather than infer substitutability from nominal pool count.

Stratifying by available pools:

Available poolsCellsFamiliesMedian NeffN_{\mathrm{eff}}Median top-1
2266,025681.0830.960
321,98471.0180.991
43,52021.0220.989
51,74412.0820.602

Cell counts are large because families repeat across days, directions, and impact thresholds; the 3- and 4-pool strata contain only 7 and 2 unique families. The 5-pool row is one family only (0x95ad61b0_WETH) and is not generalized. Within this pilot, the 2–4 pool strata do not show greater median capacity diffusion as nominal pool count rises, but cross-family coverage is thin in the 3- and 4-pool groups.

Available pools versus capacity-effective pool count
Fig. 1. More available pools do not lift median NeffN_{\mathrm{eff}} off ~1. Medians labeled; 5-pool stratum omitted (one family). Capacity shares under the stated objective—not observed router usage.

This is descriptive stratification, not a treatment effect of adding a third pool.

How the sample is constructed

The analysis uses a curated multi-pool pilot of Ethereum Uniswap v3 token–quote families. The final manifest (pilot_families.json) lists 79 families and 187 pools. It was drawn from the project’s Ethereum Uniswap v3 event-lake study as a research-curated multi-pool set—not sampled uniformly from all Uniswap v3 pairs. Selection into the manifest required sibling pools that satisfy the inclusion properties below; it may therefore overrepresent families with sufficient event coverage and reconstructible state relative to a random pair draw.

Documented inclusion properties verified from the manifest and pool metadata:

  • at least two pools per family;
  • at least two distinct fee tiers per family;
  • quote assets restricted to WETH (69 configured / 68 in analysis), USDC (6), USDT (4);
  • quote-side consistency (Rule A): within each family, the quote asset maps to the same pool side in quote_map.

78 families produce reconstructible capacity rows. One configured family (0x72e4f9f8_WETH) is excluded because the verified route-capacity run emitted no cells for it. Selection into the manifest did not require successful reconstruction ex ante; that exclusion is an output filter.

Calendar coverage: 2024-01-01 to 2026-06-29 UTC. This is a selected multi-pool pilot and is not claimed to represent all Uniswap v3 pairs. Stage counts and stratum flags are summarized below.

Does the result survive different summaries?

Cell-weighted versus family-weighted

Family-weighted summaries take one within-family median of each statistic, then the median across the 78 analysis families. The aggregate conclusion is not an artifact of families with more days or cells receiving more weight. Family-weighted figures are still summaries of this selected pilot; they are not population-representative.

SummaryCell-weightedFamily-weighted
Median HHI0.9300.928
Median NeffN_{\mathrm{eff}}1.0761.078
Median top-10.9630.963

Impact tolerance

Impact (bps)CellsMedian HHIMedian NeffN_{\mathrm{eff}}p25 / p75 NeffN_{\mathrm{eff}}Median top-1
1072,8100.9361.0681.006 / 1.4760.967
2573,3740.9311.0741.007 / 1.4950.964
5073,5350.9281.0781.008 / 1.5000.963
10073,5540.9261.0801.008 / 1.5010.962

The result is stable across the impact thresholds tested within the same capacity objective. This does not test sensitivity to gas, fees, latency, or welfare objectives. Medians stay near 1.07–1.08; p25 Neff≈1.01N_{\mathrm{eff}}\approx 1.01.

Family-cluster bootstrap

The 293,273 cells are not independent. Uncertainty uses a family-cluster bootstrap: resample the 78 families with replacement; when a family is selected, include all of its cells. 5,000 draws with fixed seeds; percentile 95% intervals.

StatisticPoint95% CI
Median HHI0.930[0.887, 0.960]
Median NeffN_{\mathrm{eff}}1.076[1.041, 1.128]
Median top-10.963[0.940, 0.979]
Median gg (finite-gg cells)3.18%[1.89%, 5.25%]

These intervals quantify sensitivity to the sampled family composition. They do not establish population-level representativeness beyond the selected pilot. The 78 families were not drawn as a probability sample from all Uniswap v3 families.

Quote asset and activity weighting

SliceFamiliesMedian HHIMedian NeffN_{\mathrm{eff}}
WETH quote680.9311.074
USDC quote60.9431.060
USDT quote40.8701.149
Top-20 families by matched volume—0.9381.066
Remaining families—0.9271.079

WETH-quoted families dominate the cell count, but top-volume and long-tail slices show the same qualitative pattern.

What happens in realized activity?

Reconstruction answers what capacity can look like under the fixed objective. Realized swaps answer a different question: how concentrated is observed family-day volume?

Quote-side human-normalized volume from the pilot daily panel yields family-day HHI over pools in the same family definition. Zero-volume eligible pools enter as zero share. This is pool-log volume concentration, not aggregator routing share.

Matching on family and day gives 36,783 family-days. Reconstructed capacity HHI is averaged over direction and impact tolerance at family ×\times day.

ObjectMedian HHIMedian NeffN_{\mathrm{eff}}
Observed flow (HHIobsHHI^{\mathrm{obs}})0.9551.047
Reconstructed capacity (HHIcapHHI^{\mathrm{cap}})0.9261.081

Pearson correlation 0.741; Spearman 0.841 (bootstrap 95% CI [0.803, 0.869]). Observed activity is more concentrated than reconstructed impact-constrained capacity on 67.6% of matched family-days (bootstrap 95% CI [61.3%, 73.8%]), although the two measures reflect different allocation processes. The median difference is modest, while the strong rank correlation indicates that family-days with high reconstructed capacity concentration also tend to exhibit high realized pool-volume concentration.

Observed family-day HHI versus reconstructed capacity HHI
Fig. 2. Most of the 36,783 matched family-days sit in the high-HHI corner. Dashed = identity; dotted = sample medians (observed above reconstructed). Two objects, one rank pattern—not a welfare gap.

Observed HHI and reconstructed capacity HHI are different objects. The comparison does not imply that traders fail to use capacity, that observed routing is inefficient, or that the optimizer is efficient.

What this does — and does not — show

What this note measures. In a selected pilot, multiple nominal Uniswap v3 pools often map to highly concentrated capacity shares under an impact-constrained capacity objective. Observed family-day volume is also highly concentrated and ranks similarly, although it reflects a different allocation process.

What it does not measure. Gas, fee-aware routing, latency, MEV, failure risk, or Nash play. The optimizer is not a welfare benchmark, and no cross-layer causal claim is made.

Why pool count may mislead. Venue count can be a weak proxy for effective substitutability when capacity remains concentrated under a stated execution objective.

Next observable. When does low NeffN_{\mathrm{eff}} materially reduce execution substitutability for real trade sizes and routes—and at what threshold does ordering-layer concentration begin to affect inclusion resilience?

Reproducibility

Reproducibility package — analysis scripts, processed inputs, manifest, and headline numbers.


Sample construction details

StageCount
Configured families79
Analysis families78
Reconstructed cells293,273
Matched family-days36,783

Excluded: 0x72e4f9f8_WETH (no reconstructible capacity rows in the verified run).


Why this might matter beyond the liquidity layer

The broader question is whether locally sensible outcomes across three layers

GL=liquidity / execution,GO=ordering / blockspace,GS=settlementG_L=\text{liquidity / execution},\qquad G_O=\text{ordering / blockspace},\qquad G_S=\text{settlement}

compose into a robust system. Participants optimize layer-local objectives—fees and impact at GLG_L, block value at GOG_O, and protocol constraints at GSG_S—while settlement also depends on properties such as credible inclusion, auditability, censorship resistance, and finality.

The settlement-safe-region framing asks when these local outcomes compose into something like Ssafe\mathcal{S}_{\mathrm{safe}}. That question is motivation only: this pilot estimates impact-constrained capacity concentration inside GLG_L, not cross-layer propagation or settlement safety.

One trade through liquidity, ordering, and settlement layers
Fig. 3. One swap prices through liquidity → ordering → settlement. Schematic of the composition question—not measured shares or causal links.

References