  In decentralized finance, it is common for automated market makers to
provision liquidity from external parties. The market maker rewards these
liquidity providers with a cut of the trading fees, in exchange for the risk
they take on. A handful of protocols for liquidity provisioning have been
proposed, such as Uniswap V2 and V3, with specific and sometimes complex rules
for collecting liquidity deposits, executing trades, and dividing up fees.
Beyond these examples, and a broader understanding of liquidity provisioning,
and particularly the design space from which one could choose a different
protocols, has been out of reach. In this work, we show that one can view
liquidity provisioning very broadly as the practice of running several market
makers "in parallel": each market maker provides its own liquidity, yet the
combined group can operate as a single coherent market. We prove that this
general protocol, when restricted to specific forms of the constituent market
makers, recovers Uniswap V2 and V3 as special cases. We then go on to propose a
new restriction which may have advantages over Uniswap V3. In the context of
prediction markets, where computation costs are less constrained, our general
protocol gives a maximally flexible way to provision liquidity. We conclude
with remarks about the nature of liquidity and fees in markets with more than 2
assets, and several open questions.
