Meteora's DLMM: from Zero to Hero
Get started from scratch on Solana's latest liquidity providing evolution
Hey everyone! Welcome to today’s article, in which we’ll give you a comprehensive overview of one of the most popular (and promising) protocols being developed on Solana: Meteora — a project that leverages sustainable and efficient DeFi products to enhance on-chain liquidity, and in particular, we’ll focus on their novel Dynamic Liquidity Market Maker (DLMM) product.
More of a visual learner? We went through the same topics in this video.
While we won’t be going deep into the technicals that are powering it, this article will provide you with enough knowledge to start using it and create your first liquidity pool position. Let’s get right into it!
Today we'll be going over four main aspects:
Why should you prefer Meteora over the alternatives? To prove this point, we are going to explain the evolution of liquidity providing, starting from Uniswap v2 pools, v3 pools, and finally Meteora's DLMM.
We'll then focus on the main features of Meteora's product, and understand what are the parameters governing each LP so that you can make informed decisions.
Furthermore, we'll delve in particular into perhaps one of the most interesting features of Meteora: distributing liquidity over a set price range.
Finally, we'll give you a couple of tips on how to choose the liquidity pool most suited to your needs and goals.
Why Meteora?
The evolution of liquidity-providing
The first one represents the Uniswap V2 model, there you could only provide liquidity for an infinite ∞ price range, meaning that for each pair of tokens, there'd be liquidity from $0 to ∞. The pros of this model are its simplicity and low maintenance, allowing for a set & forget mindset; however, over time it was clear it was inefficient and the only way liquidity providers kept providing liquidity was for liquidity incentives using the project's token — a model not sustainable in the long run. This model is inefficient because trading is often concentrated within a set price range, whilst liquidity is not, hence traders were getting higher price impact on their swaps because they couldn't tap the unused liquidity sitting idle in the rest of the price range.
Here comes the Uniswap v3 model with concentrated liquidity pools (CLMM). The main adjustment here is that you could choose a set price range within which to provide liquidity: the narrower, the more concentrated your LP and the higher the fees you could earn. This innovation made it possible to require lower liquidity - but set in the right price range - to achieve the same price impact you'd get using Uniswap's v2 model. Hence partially solving the efficiency issue and the need for massive inflationary liquidity incentives programs.
Some issues arise with it though: narrow ranges often had to be repositioned because of falling out of range (meaning they stop earning fees); plus, the distribution of fees still has to be uniform along the price range not allowing for personalized distributions based on each pair's market volatility.
So here comes Meteora and its DLMM. With it not only you can customize the distribution of liquidity on a set price range, but you can also decide to provide non-balanced and single-sided liquidity (which is particularly useful in token launches, and in general in DCA strategies).
But most importantly, Meteora's DLMM pools slice liquidity into a certain number of bins along the price range. Each bin contains a certain amount of x tokens, and the amount of y tokens you need to get those x tokens. So, the price in each bin is predetermined, allowing for zero-slippage trades within each one. Say a bin in a SOL/USDC pool contains 1000 USDC and it has a price of 100 USDC per SOL; a user will be able to deposit 10 SOL inside that bin and get exactly 1000 USDC minus the pool fees out of it.
However, you could still suffer from price impact on your trades: as a bin is 'emptied' you’d have to move to the next one, and the more volatile and illiquid the pair the more the bins are distant from one another (their distance is, in fact, a price impact you'll have to stomach — so-called bin step, as we’ll see later).
Why DLMM > CLMM?
Now that we have gone through the liquidity pools evolution let's summarise why DLMM could fit your needs better than the Concentrated liquidity model.
While CLMM reduces price impact on a set range because of higher concentration where the real action happens, it still has an impact. Meteora’s DLMM instead offers zero-slippage trading inside each bin, as the price for each bin is predetermined already. This unlocks higher capital efficiency, potentially higher volume, and as a result more fees for liquidity providers
With DLMM you're not required to provide liquidity in a 50/50 ratio, you can decide to provide non-balanced liquidity (for example, in a 70/30 ratio), or even provide single-sided liquidity. This comes in handy for dollar cost-averaging strategies and token launches especially.
It suits everyone: liquidity doesn't have to be provided uniformly over the price range but can be distributed using different curves that suit different strategies and risk aversion profiles.
Finally, you'll find that for the most traded pairs Meteora offers different pools, each with a base fee and a max fee. Within this range, there's a dynamic fee that moves along the fee range based on the market's volatility: helping offset LPs losses when the market moves too fast
Walkthrough of Meteora’s DLMM pool page
With that being said, let’s move on and open a random Meteora DLMM pool to analyze its key parameters.
This one in particular is the JUP-USDC pool. On the left, you can see the total value locked in dollars, which is the total amount of assets deposited in this pool, in dollars $. Meanwhile, in the top right corner, you'll find the fees earned on average by liquidity providers in the last 24 hours. That is, in 24 hours the pool generated 0.51% of the TVL in fees. This is then distributed to liquidity providers based on their strategy. This value is often misread as people mistake it for the APR of the pool, instead, this represents the daily amount of fees generated. To get the APR, you should multiply that by three hundred sixty-five.
Let's now switch to the pool's parameters on the left.
The bin step represents the distance between each bin in basis points, where one basis point equals to 0.01%. The more volatile the pair is, the higher the step will be.
Then you have the base fee, which is the minimum fee you'll pay as a trader to use this pool (and will earn, as a liquidity provider).
There's also a maximum fee, that can be reached thanks to the dynamic fee mechanism.
The dynamic fee is a mechanism that increases fees as volatility picks up, as a way to offset potential liquidity providers’ losses in a high-volatility environment. This is particularly useful, as it reduces the maintenance on one's position: instead of having to constantly switch pools as volatility picks up, Meteora helps by adjusting the fee within the pool. However, this may not be enough sometimes and you may be required to switch pools (we'll see that later).
Then, there's the protocol fee. Which is 0% in that case, but might be turned on by Meteora to generate revenue.
Finally, there are the fees accrued in 24 hours. If you multiply the percentage figure in the top right corner for the TVL, you'll get the same number.
Let’s now focus on the center of the page, where the real fun begins. At the top, you'll find useful indicators of the liquidity you provided, fees you generated, and the amount of tokens in your LP(s).
You then have three tabs: your positions, add position, and an in-app swap tool. On the right, there's a button to refresh the rates, and another one to set the priority of your transactions (which comes in handy when the chain is congested, for example during token launches as happened with $JUP) and the slippage you're willing to accept when creating the position.
Down below you’ll find a modal allowing you to input the desired amount of tokens. If you leave auto-fill enabled, the system assumes you'll provide liquidity in a 50/50 ratio and will thus complete the other token amount as you input the first. Hence, to provide non-balanced or single-sided liquidity, you should disable the auto-fill feature.
Finally, we've gotten to where the magic happens: the distribution curves and the price range. We'll see in a bit the three curves you can choose from: spot, curve, and bid-ask.
But before doing so, we should not forget about a vital piece of Meteora’s DLMM: the price range. Down there you can set the minimum price and maximum price within you'll be providing liquidity. You cannot widen it more than what is specified there (as you'd need to find a pool with a higher bin step), but you can narrow it down to achieve greater concentration. What this means is that if you nail it, and the pair does in fact trade only inside the narrow range you selected, you'll earn more fees than those who used the wider range (which explains why the fees accrued represent the average, as some earn more and some less than that).
Having clear in mind what the key parameters in a pool page are, we can now move on to analyze the three different types of distribution to choose from.
Distribution Curves
Spot distribution
The spot distribution is possibly the easiest to understand and implement. It mimics the concentrated liquidity model (still, it uses zero-slippage bins), and is considered to be highly versatile. As a pro, it is the best suited for set & forget strategies and used on a wide range you may not have to rebalance often.
On the other hand, this distribution is not the most efficient in any given situation, but overall yields discrete results. If most trading happens in the middle of your distribution, you would be better off using a Curve distribution. While if most trading happens on the tails, you'd be better off using a bid-ask distribution.
That being said, always chasing maximum yield and thus efficiency requires putting in the work and rebalancing your LP often. A spot distribution is the best choice for individuals who are looking for an easy-to-deploy and low-maintenance solution, where the trade-off is earning less fees than more active operators.
Curve distribution
The curve distribution concentrates liquidity in the middle, and is best suited for pairs that tend to have low volatility and trade in the middle of our price range. The prime example of this is stablecoins.
This way you're maximizing the fees you'll earn in the middle of your price range, but the trade-off is that you'll earn lower fees on the tails. Compared to the spot distribution, the curve one requires more maintenance, often requiring you to rebalance your position (unless in the specific case of stablecoins, where unless a de-peg happens it could likewise be a set & forget solution).
Bid-Ask distribution
The bid-ask distribution might remind you of the order books of an exchange, and you wouldn't be mistaken as it follows a similar pattern.
It's the inverse of the curve distribution, with liquidity concentrated at the edges. This means you'll earn more fees than average when the pair trades on the tail of your price range, and less fees when it trades in the middle of it. This makes it ideal for highly volatile pairs that tend to swing from one end of the range to the other.
As the Curve distribution, the bid-ask model requires more maintenance than the spot one. An interesting application for it is dollar-cost-averaging when providing single-sided liquidity. Using the pair in the example, you could provide PYTH single-sided, starting your range from the actual price to a higher one you deem appropriate. Given this distribution, as the price rises you'll be selling an incremental amount of PYTH in exchange for USDC, earning more than you would do by doing the same using a spot distribution.
How to choose pools?
The last point we'll be discussing today is how to choose pools.
As we mentioned before, pairs with great volume will have different pools for each pair. This means that aggregators like Jupiter will route swaps by choosing the most convenient: as a rule of thumb, in highly volatile periods orders will be routed to higher fee pools; while in lower volatility periods orders will be routed to lower fee pools. While the dynamic fee lends you a hand with that, you should consider this rule of thumb when choosing which pool to provide liquidity, especially if you’re not looking to adjust it often.
Another thing to consider is that by skimming through pools you'll notice a pattern, where pools with a higher base fee also have wider bins (hence, a wider price range), and pools with a lower base fee also have narrower bins (hence, a narrower price range). This is important, as with narrower price ranges it's easier to fall out of range as the price moves, and thus stop earning fees.
Lastly, when you're trying to choose between the different pools for a certain pair, and you have already done your considerations regarding the width of the price range and the fee, a crucial piece of information is how much volume is routing through each of these pools.
In fact, you shouldn't be fooled by the mere volume figure, as a pair that's only doing $10 volume on a 1% fee is earning more fees ($1) than a pool doing $100 volume but on a 0.05% fee ($0.5).
While this can be checked on Meteora's DLMM page by searching for a pair and sorting by accrued fees as a % of TVL, you can analyze that data by also going on Dexscreener and sorting all the pools by the volume they are generating over a certain timeframe. This can be especially useful in shorter timeframes.
Conclusion
That’s everything you need to get started. For those able to master it, Meteora is a powerful tool that gives you incredible flexibility — do not underestimate it. Hoping you liked this article, we welcome suggestions and doubts in the comments — we’ll make sure to make integrations and edits if needed.
And by the way, Meteora’s point system is up and running! Get some liquidity flowing to start earning yours. It’s a tokenless project, so there might be a nice surprise for early users.
Here are some resources to further consolidate your knowledge of Meteora DLMM pools:
If you’d like to go through these topics again we’ve created a video on our YouTube channel (it’s our first video there!):
Want to remain updated on DeFi’s latest? We publish a weekly newsletter every Thursday — all the signal packed into a 5-minute read conveniently delivered to your inbox.
See you on-chain,
the SoC team 👾