Differences Between Individual And Communal Liquidity Pool Model
Last updated
Last updated
© 2023 Collection. All rights reserved
There are at least two different major variants and implementations of Liquidity Pools, communal
and individual
. An example of a communal Liquidity Pool protocol is Uniswap - individual users cede control of the prices they buy or sell at (which are defined by Ticks
, and join a common liquidity pool, though they may be able to specify the amount of liquidity they wish to contribute at each Tick.
There is also a more complex problem for communal pooling to solve - namely, that while depositing non-fungible tokens into a pool may be unproblematic, deciding which of a set of non-fungible tokens to withdraw when the original owner wants it is non-trivial. There is nothing tying the original depositor to the original NFTs that they deposited - but this we feel is a poor experience. Users are not indifferent to what is withdrawn from the pool, barring any commercial activity, they would like the same NFT to be given to them.
The notion of Liquidity Pool Collection subscribes to is not a communal
pool, but an individual
one. Here, users create a contract per Liquidity Pool that they fully control. Since there is no communal pooling of assets, withdrawal corresponds to whatever is deposited (barring any commercial activity). Individual pools can be thought of as price-ladders where users put buy or sell orders. But how then is liquidity aggregated across markets? The work of price discovery is deferred to backend indexing processes which can surface the best price at any given moment. This is a standard paradigm for NFT smart contract marketplaces that give up a global best bid/ask liquidity view in order to better capture the spirit of non-fungible finance (namely, granular access controls and apportioning of ownership, and individual control of price setting by token owners)
Individual (Collection.xyz) | Communal (Uniswap style) | |
---|---|---|
Withdrawal of NFTs
Straightforward - every pool is controlled by owner so you withdraw either what you put in, or whatever NFT was sold into the pool
Have to resolve communal ownership of a group of NFTs
Control of Prices
Total
Cannot specify actual levels to buy or sell, only liquidity levels at each pre-defined price level - Levels are pre-defined by communal pool owner
How to get best bids/asks for tokens
Rely on indexing of on-chain events
Can be gotten directly from smart contract
Fees
Rely on indexing of on-chain events
Fees are spread amongst all liquidity providers