
단계별 안내: Meteora 유동성 가격 범위 확인 방법을 빠르게 익히는 법
저자: 자부
Meteora는 Solana 체인 상의 DeFi 프로젝트로, Solana 생태계를 위해 효율적이고 지속 가능하며 유연한 유동성 레이어를 구축하는 데 초점을 맞추고 있습니다. 이 프로젝트는 Solana에서의 유동성 부족 문제를 해결하여 거래를 보다 원활하고 저비용으로 만들며, 유동성을 제공하는 사용자들에게 더 나은 수익을 제공하는 것을 목표로 합니다.
Meteora의 풀은 주로 DLMM 풀과 Dynamic Pools(동적 풀)이며, DLMM 풀에서는 양방향 풀과 단방향 풀 모두 추가할 수 있습니다. 개발자는 단방향 풀을 이용해 매도 및 매집을 할 수 있는데, 예를 들어 Trump/Sol 거래쌍의 경우, 가격이 상승할 때 개발자는 특정 높은 가격 구간에서 $Trump의 단방향 풀만 추가하여 해당 가격 구간에 도달하면 자동으로 $Trump를 $Sol로 교환하여 매도할 수 있으며 수수료도 받을 수 있습니다. 가격이 하락할 경우에는 낮은 가격 구간에서 $Sol의 단방향 풀만 추가하여 해당 가격 구간에 도달하면 자동으로 $Trump를 매수함으로써 매집 목적을 달성할 수 있습니다.
개발자가 어느 가격에서 단방향 풀을 통해 매도 및 매집을 하는지 알고 싶다면, 해당 가격 구간을 아는 것이 매우 중요합니다.
일, 기초 개념
웹사이트: https://app.meteora.ag/
1. 거래쌍
임의의 두 코인이 하나의 거래쌍을 구성합니다. 예를 들어 $Trump와 $Sol은 Trump-Sol 거래쌍을 구성하고, $Trump와 $USDC는 Trump-USDC 거래쌍을 구성합니다.
2. Pool(LP 풀)
각 거래쌍 아래에는 여러 개의 Pool이 존재할 수 있으며, 각 Pool은 Bin Step과 Fee(수수료)의 차이에 따라 구분됩니다.
예를 들어 Trump-USDC 거래쌍 아래에는 57개의 Pool이 있으며, 각 Pool은 고유한 주소를 가지고 있습니다.
아래 그림 참조:

3. Bin
DLMM에서 각 Bin은 특정 가격을 의미하며, 각 Bin은 특정 가격의 매수 또는 매도 주문을 나타냅니다.
4. Bin Step
Bin Step은 인접한 두 개의 Bin 사이의 가격 간격을 말하며, 베이시스 포인트(Basis Points, 1bp = 0.01%)로 계산됩니다. Bin Step은 Bin의 밀도와 유동성 분포의 정밀도를 결정하며, 풀 생성자가 설정합니다.
예시:
현재 Sol/USDC 가격이 20달러이고, Bin Step이 25bp(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는 지갑 주소 연결 후 보유한 Position을 확인할 수 있으며, 관찰용 지갑 모드로도 확인이 가능하여 이를 통해 풀의 가격 구간을 파악할 수 있습니다.
$Trump를 예로 들어 설명하겠습니다.
먼저 Debot을 열고 $Trump의 CA를 입력하여 Dev의 주소를 찾습니다:
5e2qRc1DNEXmyxP8qwPwJhRWjef7usLyi7v5xjqLr5G7
아래 그림 참조:

다음으로 Phantom 지갑을 열어 【추가/연결 지갑】 → 【주소 감시】에서 "이름"과 "주소"를 입력하고, 여기에 Dev의 주소를 입력합니다:
5e2qRc1DNEXmyxP8qwPwJhRWjef7usLyi7v5xjqLr5G7

마지막으로 Meteora를 열고 Phantom 지갑을 연결한 후 상단의 【Portfolio】를 클릭하면 추가된 모든 풀을 확인할 수 있으며, DLMM 풀 중 하나를 클릭하면 풀의 세부 정보와 모든 Position을 볼 수 있습니다.
아래 그림 참조:

그림 왼쪽의 Bin Step과 Base Fee는 현재 풀의 정보이며, 가운데 부분은 다양한 가격 구간의 Position입니다. 임의의 Position을 클릭하면 현재 잔액, 미수령 수수료, 분배 전략 등의 정보를 확인할 수 있습니다.
이 방법의 장점은 편리하고 직관적이며 현재 존재하는 모든 Position 데이터를 나열할 수 있다는 점입니다. 단점은 유동성이 철수된 이후에는 확인할 수 없다는 점입니다.
삼, 체인 데이터를 통한 계산
우리는 체인 상의 데이터를 활용해 각 Position의 가격 구간을 계산할 수 있으며, Position이 존재 여부와 무관하게 가능합니다.
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)
여기서 계산된 가격은 토큰 B 대비 토큰 A의 가격이며, 토큰 A의 USD 가격을 알고 싶을 경우 토큰 B의 USD 가격을 조회한 후 변환해야 합니다.
위 공식에 따르면, 데이터를 계산하기 위해서는 풀의 Bin_Step, Position의 lower_Bin_id와 upper_Bin_id, 그리고 거래쌍 내 두 토큰의 소수점 자릿수를 알아야 합니다.
계속해서 $Trump를 예로 들어 이 Dev의 특정 단방향 풀의 가격 구간을 계산해 보겠습니다.
Solscan을 열고 $Trump의 Dev 주소를 입력합니다:
【Defi Activities】탭을 열고, 【Action】 필터에서 "ADD LIQUIDITY"를 선택하면 Amount 열에 나열된 유동성 추가 거래가 모두 단방향 풀이며, $Trump만 추가하거나 $USDC만 추가한 거래입니다.
본문에서는 아래 그림에서 마지막 거래를 예로 듭니다:

위 그림의 마지막 거래를 엽니다:
거래 세부 정보를 확인하면 이 풀 추가 거래는 $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임을 확인할 수 있습니다.
아래 그림 참조:

위 정보들로부터 계산 공식에 필요한 모든 데이터를 확보할 수 있습니다:
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.6905832
가격 구간 최댓값: max_price = (1 + Bin_Step/10000) ^ upper_Bin_id / 10^(decimals_B-decimals_A) = (1+50/10000)^1107 / 10^(6-6) = 249.9368917
계산된 가격 구간은 두 번째 파트의 이미지와 완전히 일치합니다.
사, 결론
모니터링 도구를 활용하여 개발자나 대규모 주체가 단방향 풀을 추가할 때 위의 방법으로 그들이 매도 또는 매집을 준비하는 가격 범위를 계산할 수 있으며, K차트 및 기타 데이터와 함께 의사결정에 활용할 수 있습니다. 아르헨티나 대통령 미레이가 발행한 $LIBRA도 단방향 풀 추가를 통한 매도 방식을 사용하였으며, 위에서 소개한 방법으로 당시 풀 추가 가격 구간을 리뷰할 수 있습니다.
제가 자주 사용하는 도구는 Debot, GMGN 및 OKX입니다. 하지만 이 세 도구 모두 유동성 확인 시 아직 다소 불편한 점이 있습니다. 이상적인 몇 가지 기능은 다음과 같습니다:
1. 개발자의 모든 작업(입금, 출금, 풀 추가, 풀 철수 등)을 나열하고, 입출금 중 스테이킹 관련 및 풀 추가/철수 거래를 식별하여 표시할 수 있어야 합니다.
Debot은 모든 입금 및 출금을 식별하지만 풀 추가 및 철수는 식별하지 못합니다.
GMGN은 풀 추가 및 철수를 식별하지만 개발자의 입금 및 출금은 식별하지 못하며, Trump 코인의 경우에도 개발자의 풀 추가 및 철수 거래를 식별하지 못합니다.
OKX는 풀 변화 기능을 제공하여 풀 추가 및 철수를 별도로 나열하지만, Trump 코인의 경우에도 개발자의 풀 추가 및 철수 거래를 식별하지 못합니다.
2. 각 풀 추가 및 철수 거래에 대해 구체적인 가격 구간을 제시하여 수동 계산이 필요하지 않게 해야 합니다.
3. 개발자의 수익 데이터를 계산할 때 수령한 수수료 및 풀 철수 시 자금 변화를 포함하여 수동으로 수익 상황을 통계할 필요가 없어야 합니다.
이 기능은 주로 Debot과 GMGN이 구현할 가능성이 있으며, 실제로 각 주소의 수익 데이터를 제공하고 있기 때문입니다. p를 $Sol로 바꾸어 매도하며 수수료도 받을 수 있고, 가격이 하락할 때 개발자는 더 낮은 가격 구간에서 $Sol의 단방향 풀만 추가하여 해당 가격 구간에 도달하면 자동으로 $Trump를 매수하여 매집 목적을 달성할 수 있습니다.
개발자가 어느 가격에서 단방향 풀을 통해 매도 및 매집을 하는지 알고 싶다면, 해당 가격 구간을 아는 것이 매우 중요합니다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News














