Liquidity pools are a significant step forward in which on-chain trades are executed, removing the need for an order book on token pairs that may be illiquid. In essence, these pools are a collection of funds locked within a smart contract to create a market. These liquidity pools are formed when a user adds an equal value of two tokens (liquidity). Once a user provides liquidity (liquidity provider), they will receive LP tokens (liquidity pool tokens) in return. These LP tokens act as proof of ownership, allowing users to withdraw their tokens at any point in time.