The simplest version of a DeFi liquidity pool holds two tokens in a smart contract to form a trading pair.
Let’s use Ether (ETH) and USD Coin (USDC) as an example, and to make it simple, the price of ETH can be equal to 1,000 USDC. Liquidity providers contribute an equal value of ETH and USDC to the pool, so someone depositing 1 ETH would have to match it with 1,000 USDC.
The liquidity in the pool means that when someone wants to trade ETH for USDC, they can do so based on the funds deposited, rather than waiting for a counterparty to come along to match their trade.
Liquidity providers are incentivized for their contribution with rewards. When they make a deposit, they receive a new token representing their stake, called a pool token. In this example, the pool token would be USDCETH.
The share of trading fees paid by users who use the pool to swap tokens is distributed automatically to all liquidity providers proportionate to their stake size. So if the trading fees for the USDC-ETH pool are 0.3% and a liquidity provider has contributed 10% of the pool, they’re entitled to 10% of 0.3% of the total value of all trades.
When a user wants to withdraw their stake in the liquidity pool, they burn their pool tokens and can withdraw their stake.
window.fbAsyncInit = function () FB.init( appId: ‘1922752334671725’, xfbml: true, version: ‘v2.9’ ); FB.AppEvents.logPageView(); ; (function (d, s, id) var js, fjs = d.getElementsByTagName(s); if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = “//connect.facebook.net/en_US/sdk.js”; js.defer = true; fjs.parentNode.insertBefore(js, fjs); (document, ‘script’, ‘facebook-jssdk’)); !function (f, b, e, v, n, t, s) if (f.fbq) return; n = f.fbq = function () n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) ; if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = ‘2.0’; n.queue = ; t = b.createElement(e); t.defer = !0; t.src = v; s = b.getElementsByTagName(e); s.parentNode.insertBefore(t, s) (window, document, ‘script’, ‘https://connect.facebook.net/en_US/fbevents.js’); fbq(‘init’, ‘1922752334671725’); fbq(‘track’, ‘PageView’);