Step-by-step tutorial: Quickly master the method to view the liquidity price range of Meteora.

CN
5 hours ago

If you want to know at what price Dev is using the single-sided pool to sell and accumulate, it is necessary to know the corresponding price range.

Author: Zibu

Meteora is a DeFi project on the Solana chain, focusing on creating an efficient, sustainable, and flexible liquidity layer for the Solana ecosystem. Its goal is to address the issue of insufficient liquidity on Solana, making transactions smoother and cheaper, while providing better returns for users who provide liquidity.

Meteora's pools mainly consist of DLMM pools and Dynamic Pools, where both single-sided and double-sided pools can be added in the DLMM pool. For example, Dev can use the single-sided pool for selling and accumulating, such as the Trump/Sol trading pair. When the price rises, Dev can add a single-sided pool of $Trump at a higher price range. When the price rises to this range, it will automatically convert $Trump to $Sol for selling, while also earning transaction fees. When the price falls, Dev can add a single-sided pool of $Sol at a lower price range. When the price drops to the corresponding range, it will automatically buy $Trump to achieve the purpose of accumulation.

If we want to know at what price Dev is using the single-sided pool to sell and accumulate, it is necessary to know the corresponding price range.

1. Basic Concepts

Website: https://app.meteora.ag/

1. Trading Pair

Any two coins form a trading pair, for example, $Trump and $Sol form the Trump-Sol trading pair, and $Trump and $USDC form the Trump-USDC trading pair.

2. Pool (LP Pool)

Each trading pair can have multiple pools, with each pool distinguished by different Bin Steps and Fees.

For example, the Trump-USDC trading pair has 57 pools, each corresponding to a unique address.

As shown in the image:

3. Bin

In DLMM, each Bin represents a price, and each Bin is a buy or sell order at a certain price.

  1. Bin Step

Bin Step refers to the price interval size between two adjacent Bins, calculated in basis points (Basis Points, 1 basis point = 0.01%). It determines the density of the Bins and the granularity of liquidity distribution, set by the pool creator.

For example:

Assuming the current price of Sol/USDC is $20, and the Bin Step is set to 25 basis points (0.25%).

The next Bin price would be 20 × 1.0025 = $20.05, and the following one would be 20.05 × 1.0025 ≈ $20.10, and so on.

5. Position

A Position is used to describe how liquidity providers allocate funds to specific price ranges, with each Position corresponding to a unique address. A Position is created within a specific pool, and a pool can have multiple different Positions.

A Position typically includes the following key elements:

(1) Price Range

Each Position has a clear price range, indicating the price range the liquidity provider wishes to support, composed of a set of consecutive Bins.

(2) Amount of Funds

The amount of the two tokens (e.g., Sol and USDC) invested. Meteora calculates the specific ratio of each token based on the current price and range to ensure it meets the pool's needs.

(3) Distribution Strategy Meteora offers several liquidity distribution methods, allowing users to decide how to allocate funds across different Bins:

Spot (Uniform Distribution): Funds are evenly distributed across each Bin, suitable for scenarios with expected low price volatility.

Curve (Bell Curve Distribution): Funds are concentrated near the current price, decreasing as they move away, resembling a bell curve, suitable for LPs focusing on the current price.

Bid-Ask (Two-Sided Distribution): Funds are concentrated on both sides of the current price, forming two peaks, suitable for high-volatility markets.

(4) Bin Step Users cannot change the Bin Step when creating a Position; this is set when creating the Pool.

2. Connect Wallet to View

Meteora supports connecting a wallet address to view held positions and also allows for viewing in an observation wallet mode, which we can use to check the price range of the pool.

Taking $Trump as an example.

First, we open Debot, input the CA of $Trump, and find Dev's address:

5e2qRc1DNEXmyxP8qwPwJhRWjef7usLyi7v5xjqLr5G7

As shown in the image:

Then, open the Phantom wallet, [Add/Connect Wallet] -- [Monitor Address], input "Name" and "Address", filling in Dev's address here:

5e2qRc1DNEXmyxP8qwPwJhRWjef7usLyi7v5xjqLr5G7

Finally, open Meteora, connect the Phantom wallet, and click on [Portfolio] at the top to see all added pools. Clicking on any DLMM pool will display the pool's details and all positions.

As shown in the image:

The Bin Step and Base Fee on the left of the image represent the current pool's information, while the middle part shows the positions at different price ranges. Clicking on any position will reveal current balances, unclaimed fees, distribution strategies, and other information.

The advantage of viewing the price range this way is that it is convenient and intuitive, allowing for a listing of all existing position data; the downside is that once liquidity is withdrawn, it cannot be viewed.

3. On-Chain Data Calculation

We can calculate the price range of each position using on-chain data, regardless of whether the position still exists.

Meteora's documentation provides the calculation formulas:

Minimum price of the price range: minprice = (1 + BinStep/10000) ^ lowerBinid

Maximum price of the price range: maxprice = (1 + BinStep/10000) ^ upperBinid

If the trading pair is represented as A/B, where token A has a precision of decimalsA and token B has a precision of decimalsB, then the final calculation formulas are:

Minimum price of the price range: minprice = (1 + BinStep/10000) ^ lowerBinid / 10^(decimalsB-decimalsA)

Maximum price of the price range: maxprice = (1 + BinStep/10000) ^ upperBinid / 10^(decimalsB-decimalsA)

It is important to note that the price calculated here is the price of token A relative to token B. If you want to see the price of token A relative to USD, you will also need to check the USD price of token B and then convert it.

From the above formulas, we can see that to calculate the data, we need to know a pool's BinStep, the lowerBinid and upperBin_id of the position, and also the precision of the two coins in the trading pair.

Continuing with $Trump as an example, we will calculate the price range of a certain single-sided pool of Dev.

We open Solscan and input the Dev address of $Trump:

https://Solscan.io/account/5e2qRc1DNEXmyxP8qwPwJhRWjef7usLyi7v5xjqLr5G7?activitytype=ACTIVITYTOKENADDLIQ&page=5#defiactivities

Open the [Defi Activities] tab, filter the [Action] for "ADD LIQUIDITY", and in the Amount column, you can see that all listed liquidity addition transactions are single-sided pools, either adding only $Trump or only $USDC.

This article takes the last transaction shown in the image as an example:

Open the last transaction in the image above:

https://Solscan.io/tx/284UXTrgWNFFXTovbCAQsJA8U5mW4rntwa8KyRvSmhNYf7cus1rtskiVqwNkErdosDMUsJfxXm8KgkCf1DzTPmPr

Check the transaction details, and you can see that this pool addition only added $Trump, as shown in the image:

We can open the links for $Trump and $USDC respectively, and find that the precision of $Trump is 6, and the precision of $USDC is also 6, as shown in the image:

Scrolling down on the transaction details page, in 【#4.1 - Meteora DLMM Program: initializePosition】, we can see that lowerBinId is 1062, and the width (number of Bins) is 46. The pool address is:

9d9mb8kooFfaD3SctgZtkxQypkshx6ezhbKio89ixyy2

As shown in the image:

From the above information, we can calculate upperBinId = lowerBinId + width - 1 = 1062 + 46 - 1 = 1107.

Open the pool address on Solscan:

9d9mb8kooFfaD3SctgZtkxQypkshx6ezhbKio89ixyy2

https://Solscan.io/account/9d9mb8kooFfaD3SctgZtkxQypkshx6ezhbKio89ixyy2

Click on the 【data】 tab, switch “LbPair” to “Table”, and we can find that the BinStep value is 50, as shown in the image:

From the above information, we can obtain all the data needed for the calculation formulas:

Bin_Step = 50

lowerBinid = 1062

upperBinid = 1107

decimals_A = 6

decimals_B = 6

Thus, we can calculate:

Minimum price of the price range: minprice = (1 + BinStep/10000) ^ lowerBinid / 10^(decimalsB-decimalsA) = (1 + 50/10000)^1062 / 10^(6-6) = 199.6905832

Maximum price of the price range: maxprice = (1 + BinStep/10000) ^ upperBinid / 10^(decimalsB-decimalsA) = (1 + 50/10000)^1107 / 10^(6-6) = 249.9368917

The calculated price range is completely consistent with the price range in the second part of the image.

4. Summary

By using monitoring tools, when we find that Dev or other large holders are adding single-sided pools, we can use the above method to calculate the price range they are preparing to sell or accumulate, and then combine it with K-line and other data to make decisions. The $LIBRA issued by Argentine President Milei also used a single-sided pool for selling, and we can use the method introduced above to review the price range at which he added liquidity.

The tools I often use are Debot, GMGN, and OKX, but these three tools are not very convenient for viewing liquidity. Some ideal features I would like to see:

  1. List all operations of Dev, including deposits, withdrawals, adding pools, and removing pools, and be able to identify and mark transactions involving locked positions and adding/removing pools.

Debot can identify all deposits and withdrawals, but does not include adding or removing pools;

GMGN can identify adding and removing pools, but cannot identify Dev's deposits and withdrawals, and does not recognize Dev's adding and removing pool transactions in the Trump coin;

OKX has a liquidity pool change feature, which separately lists adding and removing pools, but does not recognize Dev's adding and removing pool transactions in the Trump coin.

  1. For each adding and removing pool transaction, provide specific price ranges, so that manual calculations are not necessary.

  2. When calculating Dev's profit data, include the received fees and changes in funds when removing pools, so that manual profit statistics are not needed.

This feature is mainly possible for Debot and GMGN, as they have done profit data for each address. Dev can convert $Trump to $Sol for selling while also earning transaction fees; when the price drops, Dev can add a single-sided pool of $Sol at a lower price range, and when the price drops to the corresponding range, it will automatically buy $Trump to achieve the purpose of accumulation.

If we want to know at what price Dev is using the single-sided pool to sell and accumulate, it is necessary to know the corresponding price range.

免责声明:本文章仅代表作者个人观点,不代表本平台的立场和观点。本文章仅供信息分享,不构成对任何人的任何投资建议。用户与作者之间的任何争议,与本平台无关。如网页中刊载的文章或图片涉及侵权,请提供相关的权利证明和身份证明发送邮件到support@aicoin.com,本平台相关工作人员将会进行核查。

Share To
APP

X

Telegram

Facebook

Reddit

CopyLink