Meteora 是 Solana 鏈上的一個 DeFi 項目,專注於為 Solana 生態系統打造一個高效、可持續且靈活的流動性層。它的目標是解決 Solana 上流動性不足的問題,讓交易更順暢、成本更低,同時為提供流動性的用戶帶來更好的收益。
Meteora 的池子主要是 DLMM 池和 Dynamic Pools(動態池),在 DLMM 池中可以增加雙邊池和單邊池。其中 dev 可以利用單邊池進行出貨和吸籌,例如 trump/sol 交易對,在價格上漲時,dev 可以在某個更高的價格區間只加$trump 的單邊池,當價格上漲到此價格區間時就會自動將$trump 換為$sol 用來出貨,同時還能獲得價格更低的價格$trump,達到吸籌目的。
如果我們想知道 dev 在什麼價格用單邊池出貨和吸籌,那麼知道其對應的價格區間是很有必要的。
一、基礎概念
網址:https://app.meteora.ag/
1、交易對
任兩個幣組成一個交易對,例如$trump 和$sol 組成 trump-sol 交易對,$trump 和$usdc 組成 trump-usdc 交易對。
2、Pool(LP 池)
每個交易對下面可以有多個 Pools,每個 Pool 按 Bin Step 和 Fee(手續費)的不同來區分。例如 trump-usdc 的交易對下面就有 57 個 Pools,每個 Pool 都對應一個唯一的地址,如圖
3、bin
DLMM 中每個 bin 代表一個價格,每個bin 就是掛的某個價格的買單或賣單。
4、bin step
Bin step 是指兩個相鄰 bin 之間的價格間隔大小,以基點(basis points, 1 基點= 0.01% )來計算。它決定了 bin 的密度和流動性分佈的精細程度,由池子的創建者設定。
舉個例子:
假設目前 SOL/USDC 的價格是 20 美元,bin step 設為 25 基點(0.25% )。
下一個 bin 的價格是 20 × 1.0025 = 20.05 美元,再下一個是 20.05 × 1.0025 ≈ 20.10 美元,以此類推。
5、Position(部位)
position 是用來描述流動性提供者如何將資金分配到特定的價格區間,每個 position 對應一個唯一的位址。 position 是創建於某一個池子裡面,一個池子可以創建多個不同的 position。
一個 position 通常包含以下關鍵元素:
(1)價格區間
每個 position 都有一個明確的價格區間,表示流動性提供者希望支持的價格範圍,這個價格區間由一組連續的 bin 組成。
(2)資金量
投入兩種代幣(如 SOL 和 USDC)的數量。 Meteora 會根據目前價格和區間範圍,計算每種代幣的具體比例,確保滿足池子的需求。
(3)分佈策略
Meteora 提供幾種流動性分佈方式,讓使用者決定資金如何分配到各個 bin:
Spot(平均分佈):資金平均分配到每個 bin,適合預期價格波動小的場景。
Curve(鐘形分佈):資金集中在當前價格附近,越遠離當前價格越少,像鐘形曲線,適合希望聚焦當前價格的 LP。
Bid-Ask(雙向分佈):資金集中在當前價格的兩側,形成兩個高峰,適合高波動市場。
(4) Bin Step
使用者在建立 position 時無法變更 bin step,這是在建立 pool 時設定。
二、連接錢包查看
Meteora 支援連接錢包位址後查看持有的部位,並且支援以觀察錢包的方式查看,我們可以根據此特性查看池子的價格區間。
以$trump(6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN)為例。
首先,我們打開debot輸入$trump 的 CA 後,找出 dev 的位址 5 e 2 qRc 1 DNEXmyxP 8 qwPwJhRWjef 7 usLyi 7 v 5 xjqLr 5 G 7 ,如圖
然後,打開 Phantom 錢包,【新增/連接錢包】--【監視位址】,輸入“名稱”和“位址”,此處填入 dev 的位址5e2qRc1DNEXmyxP8qwPwJhRWjef7usLyi7v5xjqLr5G7
最後,打開 Meteora 連接 Phantom 錢包,點擊頂部的【Portfolio】就能看到所有添加的池子,點擊 DLMM 的任意一個池子,會顯示池子的詳情和所有的倉位,如圖
圖中左邊的 Bin Step 和 Base Fee 就是目前池子的訊息,中間部分就是不同價格區間的部位。任意點開一個倉位能看到當前餘額、未領的手續費、分佈策略等資訊。
用這種方式查看價格區間的好處是方便直觀,可以列出目前存在的所有倉位資料;缺點是當流動性被撤掉後無法查看。
三、鏈上資料計算
我們可以用鏈上的資料計算每個倉位的價格區間,不管倉位是否還存在。
Meteora 的文檔中給出了計算公式
價格區間的最小值:min_price = ( 1 + bin_step/10000) ^ lower_bin_id
價格區間的最大值:max_price = ( 1 + bin_step/10000) ^ upper_bin_id
如果交易對以 A/B 表示,其中代幣 A 的精度為 decimals_A,代幣 B 的精度為 decimals_B,那麼最終的計算公式為
價格區間的最小值:min_price = ( 1 + bin_step/10000) ^ lower_bin_id/10 ^(decimals_B-decimals_A)
價格區間的最大值:max_price = ( 1 + bin_step/10000) ^ upper_bin_id/10 ^(decimals_B-decimals_A)
需要注意的是,這裡計算的價格是代幣 A 相對於代幣 B 的價格,如果想查看代幣 A 相對於 usd 的價格,那麼還需要查詢代幣 B 的 usd 價格,再進行轉換。
由上述公式可知,要計算出數據,我們需要知道一個池子的 bin_step、倉位的 lower_bin_id 和 upper_bin_id,此外還需要知道交易對中兩個幣的精度。
繼續以$trump(6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN)為例,計算此 dev 的某一單邊池的價格區間。
我們開啟 solscan,輸入$trump 的 dev 位址( https://solscan.io/account/ 5 e 2 qRc 1 DNEXmyxP 8 qwPwJhRWjef 7 usLyi 7 v 5 xjqLr 5 G 7 ?activity_fitype=Uactivity_LIyage,Ppageconn_vv. Action】的過濾選中“ADD LIQUIDITY”,在 Amount 那一列能看到列出的加流動性交易全是單邊池,要么只添加了$trump,要么只添加了$usdc。本文以圖中最後一筆交易為例,如圖
開啟上圖的最後一筆交易( https://solscan.io/tx/ 284 UXTrgWNFFXTovbCAQsJA 8 U 5 mW 4 rntwa 8 KyRvSmhNYf 7 cus 1 rtskiVqwNkErdosDMUsJfxXmPr8 Kggtrm,此交易詳情,此一筆看到了詳情,此交易詳情,此一頁碼。
我們分別打開$trump和$usdc的鏈接,可以查到$trump的精度為6,$usdc的精度也為6,如圖
在交易詳情頁面往下查看,在【#4.1 - Meteora DLMM Program: initializePosition】 可以知道lowerBinId為1062,bin的寬度即個數為46,池子位址為9d9mb8kooFfaD3ScZtkxQypkshx6ezhbKio898kooFfaD3ScZtkxQypkshx6ezhbKio89ixy。由上述資訊可計算出upperBinId=lowerBinId + widh - 1 =1062+46-1=1107
在solscan上開啟池子位址9d9mb8kooFfaD3SctgZtkxQypkshx6ezhbKio89ixyy2( https://solscan.io/account/9 d 9 mb 8 kooFfa D3ScyZtkxQypkshx6ezhbKio8995ooFfa D3ScyZtkxQypkshx6ezhbKio8995」[1213 月)的值為 50 ,如圖
由以上資訊可獲得計算公式中所需的所有資料:
bin_step= 50
lower_bin_id= 1062
upper_bin_id= 1107
decimals_A= 6
decimals_B= 6
則可以計算出
價格區間的最小值:min_price = ( 1 + bin_step/10000) ^ lower_bin_id/10 ^(decimals_B-decimals_A)=( 1+ 50/10000)^ 1062/10 ^( 6-6)= 199.
價格區間的最大值:max_price = ( 1 + bin_step/10000) ^ upper_bin_id/10 ^(decimals_B-decimals_A)=( 1+ 50/10000)^ 1107/10 ^( 6-6)= 249.
計算出的價格區間和第二部分圖片中的價格區間完全一致。
四、總結
結合監控工具,當發現 dev 或其他大戶在添加單邊池子的時候,我們就可以用上面的方法計算出他準備出貨或者吸籌的價格範圍,然後再配合 K 線和其他數據做決策。阿根廷總統米萊發的$libra 也是用的單邊加池子出貨,可以用上面介紹的方法複盤他當時加池子的價格範圍。
我常用的工具是debot 、 gmgn和 okx,不過這三個工具在查看流動性時還不是很方便,理想中的一些好用的功能:
1、列出 dev 的所有操作,包括轉入、轉出、加池子、撤池子,並且對轉入、轉出中涉及到鎖倉和加撤池子的交易能識別並標明。
debot能辨識所有的轉入和轉出,但是沒有加池子和撤池子;
gmgn能辨識出加池子和撤池子,但辨識不到 dev 的轉入和轉出,在 trump 這個幣中也沒有辨識 dev 的加池子和撤池子交易;
okx 有資金池變更功能,即將加池子和撤池子單獨列出來,但是在 trump 這個幣中也沒有識別 dev 的加池子和撤池子交易。
2.針對每筆加池子和撤池子,能給出具體的價格區間,這樣就不用手動計算。
3.在計算 dev 的獲利數據時,把領取的手續費以及撤池子時資金的變化包含在內,這樣就不用手動去統計盈利情況。
這個功能主要是debot和gmgn有可能實現,畢竟他們做了每個地址的獲利數據。
期待這些工具能做的越來越好用!