手取り足取りの指導:Meteoraの流動性価格帯の確認方法を迅速に習得する
作者:子布
MeteoraはSolanaチェーン上のDeFiプロジェクトで、Solanaエコシステムのために効率的で持続可能かつ柔軟な流動性層を構築することに焦点を当てています。目標は、Solana上の流動性不足の問題を解決し、取引をよりスムーズに、コストを低く抑え、流動性を提供するユーザーにより良い利益をもたらすことです。
Meteoraのプールは主にDLMMプールとDynamic Pools(動的プール)で構成されており、DLMMプールでは両側プールと片側プールを追加できます。たとえば、devは片側プールを利用して出荷や吸収を行うことができ、trump/sol取引ペアのように、価格が上昇する際には、devは特定のより高い価格帯で$trumpの片側プールのみを追加します。この価格帯に達すると、自動的に$trumpを$solに交換して出荷し、手数料を得ることができます。価格が下落する場合、devは特定のより低い価格帯で$solの片側プールのみを追加し、対応する価格帯に達すると自動的に$trumpを購入し、吸収を達成します。
devがどの価格で片側プールを出荷または吸収するかを知りたい場合、その対応する価格帯を知ることが非常に重要です。
一、基礎概念
ウェブサイト:https://app.meteora.ag/
1、取引ペア
任意の2つのコインで取引ペアを構成します。たとえば、$trumpと$solでtrump-sol取引ペアを、$trumpと$usdcでtrump-usdc取引ペアを構成します。
2、プール(LPプール)
各取引ペアの下には複数のプールがあり、各プールはBin StepとFee(手数料)の違いで区別されます。たとえば、trump-usdcの取引ペアの下には57のプールがあり、各プールはユニークなアドレスに対応しています。
3、bin
DLMMの各binは1つの価格を表し、各binは特定の価格の買い注文または売り注文です。
4、bin step
Bin stepは、隣接する2つの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)
ポジションは流動性提供者が資金を特定の価格帯にどのように配分するかを説明するために使用され、各ポジションはユニークなアドレスに対応します。ポジションは特定のプール内で作成され、1つのプールには複数の異なるポジションを作成できます。
ポジションには通常、以下の重要な要素が含まれます:
(1)価格帯
各ポジションには明確な価格帯があり、流動性提供者がサポートしたい価格範囲を示します。この価格帯は一連の連続したbinで構成されています。
(2)資金量
2種類のトークン(たとえばSOLとUSDC)の投入量。Meteoraは現在の価格と範囲に基づいて、各トークンの具体的な比率を計算し、プールのニーズを満たすようにします。
(3)分布戦略 Meteoraはユーザーが資金を各binにどのように配分するかを決定できるいくつかの流動性分布方法を提供します:
- スポット(均等分布):資金を各binに均等に分配し、価格変動が小さいシナリオに適しています。
- カーブ(鐘形分布):資金が現在の価格近くに集中し、現在の価格から遠ざかるほど少なくなる、鐘形の曲線のような分布で、現在の価格に焦点を当てたいLPに適しています。
- ビッド-アスク(双方向分布):資金が現在の価格の両側に集中し、2つのピークを形成し、高ボラティリティ市場に適しています。
(4) Bin Step ユーザーはポジションを作成する際にbin stepを変更することはできず、これはプール作成時に設定されます。
二、ウォレット接続の確認
Meteoraはウォレットアドレスを接続した後、保有しているポジションを確認できるようにサポートしており、観察ウォレットの方式でも確認できます。この特性を利用してプールの価格帯を確認できます。
$trump(6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN)を例にとります。
まず、debot(https://debot.ai?inviteCode=175623)を開き、$trumpのCAを入力してdevのアドレス5e2qRc1DNEXmyxP8qwPwJhRWjef7usLyi7v5xjqLr5G7を見つけます。
次に、Phantomウォレットを開き、【追加/接続ウォレット】--【監視アドレス】を選択し、"名前"と"アドレス"を入力します。ここにはdevのアドレス5e2qRc1DNEXmyxP8qwPwJhRWjef7usLyi7v5xjqLr5G7を記入します。
最後に、Meteoraを開いてPhantomウォレットを接続し、上部の【ポートフォリオ】をクリックすると、追加したすべてのプールが表示されます。DLMMの任意のプールをクリックすると、プールの詳細とすべてのポジションが表示されます。
左側のBin StepとBase Feeは現在のプールの情報であり、中央部分は異なる価格帯のポジションです。任意のポジションをクリックすると、現在の残高、未受領の手数料、分布戦略などの情報が表示されます。
この方法で価格帯を確認する利点は、便利で直感的であり、現在存在するすべてのポジションデータを列挙できることです。欠点は、流動性が撤回された後は確認できないことです。
三、オンチェーンデータ計算
私たちはオンチェーンデータを使用して各ポジションの価格帯を計算できます。ポジションが存在するかどうかにかかわらず。
Meteoraのドキュメントには計算式が示されています。
価格帯の最小値:minprice = (1 + binstep/10000) \^ lowerbinid
価格帯の最大値:maxprice = (1 + binstep/10000) \^ upperbinid
取引ペアがA/Bで表され、トークンAの精度がdecimalsA、トークンBの精度がdecimalsBである場合、最終的な計算式は次のようになります。
価格帯の最小値:minprice = (1 + binstep/10000) \^ lowerbinid/10\^(decimalsB-decimalsA)
価格帯の最大値:maxprice = (1 + binstep/10000) \^ upperbinid/10\^(decimalsB-decimalsA)
ここで計算される価格はトークンAがトークンBに対する価格であることに注意が必要です。トークンAがUSDに対する価格を確認したい場合は、トークンBのUSD価格を調べてから変換する必要があります。
上記の式から、データを計算するには、プールのbinstep、ポジションのlowerbinidとupperbinidを知る必要があります。また、取引ペア内の2つのコインの精度も知る必要があります。
$trump(6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN)を例にとり、devの片側プールの価格帯を計算します。
solscanを開き、$trumpのdevアドレス( https://solscan.io/account/5e2qRc1DNEXmyxP8qwPwJhRWjef7usLyi7v5xjqLr5G7?activitytype=ACTIVITYTOKENADDLIQ\&page=5#defiactivities )を入力し、【Defi Activities】タブを開き、【Action】のフィルターで"ADD LIQUIDITY"を選択します。Amountの列には、リストされた流動性追加取引がすべて片側プールであることが表示されます。すべて$trumpのみを追加したか、$usdcのみを追加したかです。この記事では、図中の最後の取引を例にします。
上図の最後の取引( https://solscan.io/tx/284UXTrgWNFFXTovbCAQsJA8U5mW4rntwa8KyRvSmhNYf7cus1rtskiVqwNkErdosDMUsJfxXm8KgkCf1DzTPmPr )を開き、取引の詳細を確認すると、この取引は$trumpのみを追加したことがわかります。
$trumpと$usdcのリンクをそれぞれ開くと、$trumpの精度が6、$usdcの精度も6であることが確認できます。
取引詳細ページを下にスクロールすると、【#4.1 - Meteora DLMM Program: initializePosition】でlowerBinIdが1062であることがわかります。binの幅、すなわち個数は46で、プールのアドレスは9d9mb8kooFfaD3SctgZtkxQypkshx6ezhbKio89ixyy2です。上記の情報からupperBinIdはlowerBinId + width - 1 = 1062 + 46 - 1 = 1107と計算できます。
solscanでプールのアドレス9d9mb8kooFfaD3SctgZtkxQypkshx6ezhbKio89ixyy2( https://solscan.io/account/9d9mb8kooFfaD3SctgZtkxQypkshx6ezhbKio89ixyy2 )を開き、【data】タブをクリックし、"LbPair"を"Table"に切り替えると、binStepの値が50であることが確認できます。
上記の情報から、計算式に必要なすべてのデータを得ることができます:
binstep=50
lowerbinid=1062
upperbinid=1107
decimalsA=6
decimalsB=6
これにより、次のように計算できます。
価格帯の最小値:minprice = (1 + binstep/10000) \^ lowerbinid/10\^(decimalsB-decimalsA)=(1+50/10000)\^1062/10\^(6-6)=199.6905832
価格帯の最大値:maxprice = (1 + binstep/10000) \^ upperbinid/10\^(decimalsB-decimalsA)=(1+50/10000)\^1107/10\^(6-6)=249.9368917
計算された価格帯は、第二部の画像にある価格帯と完全に一致します。
四、まとめ
監視ツールを組み合わせて、devや他の大口が片側プールを追加しているのを見つけたとき、上記の方法を使用して彼らが出荷または吸収する準備をしている価格範囲を計算できます。その後、K線や他のデータと組み合わせて意思決定を行います。アルゼンチン大統領ミレイが発行した$libraも片側プールを使用して出荷されており、上記の方法を使用して彼が当時プールに追加した価格範囲を振り返ることができます。
私がよく使用するツールはdebot、gmgnとokxですが、これらの3つのツールは流動性を確認する際にはあまり便利ではありません。理想的な便利な機能は次のとおりです:
1、devのすべての操作をリストアップし、入金、出金、プール追加、プール撤回を含め、入金と出金に関連するロックやプールの追加・撤回の取引を識別して表示します。
debotはすべての入金と出金を識別できますが、プールの追加と撤回はありません;
gmgnはプールの追加と撤回を識別できますが、devの入金と出金は識別できず、trumpというコインではdevのプールの追加と撤回の取引を識別できません;
okxには資金プールの変化機能があり、プールの追加と撤回を個別にリストアップしますが、trumpというコインではdevのプールの追加と撤回の取引を識別できません。
2、各プールの追加と撤回に対して具体的な価格帯を提供できるようにし、手動で計算する必要がなくなります。
3、devの利益データを計算する際に、受け取った手数料やプール撤回時の資金の変化を含めることで、手動で利益状況を統計する必要がなくなります。
この機能は主にdebotとgmgnが実現できる可能性があります。なぜなら、彼らは各アドレスの利益データを作成しているからです。
これらのツールがますます使いやすくなることを期待しています!