런치 유형

본딩 커브 — 동작 원리

Last updated March 30, 2026

Genesis 본딩 커브는 토큰 공급량을 완전히 소진하고 Raydium CPMM 풀로 졸업하도록 설계된 상수 곱 자동화 마켓 메이커입니다.

Summary

Genesis 본딩 커브는 x × y = k 상수 곱 가격 모델과 가상 준비금을 사용하여 Solana에서 결정론적이고 지속적으로 이용 가능한 토큰 런치를 구현합니다.

  • 상수 곱 AMMx × y = k를 따르며 SOL이 유입될수록 가격이 상승하고 토큰이 다시 팔리면 가격이 하락
  • 가상 준비금 — 실용적인 시작 가격을 설정하고 곡선이 완전히 소진될 수 있도록 초기화 시 설정되는 SOL 및 토큰 준비금
  • 3단계 라이프사이클 — Created(생성됨) → Active(활성) → Graduated(졸업됨). 모든 토큰이 팔리면 자동으로 졸업하여 유동성을 Raydium CPMM 풀로 마이그레이션
  • 두 가지 수수료 유형 — 모든 거래에 대한 프로토콜 스왑 수수료와 선택적 크리에이터 수수료. 둘 다 SOL 측에 적용되며 복리로 적용되지 않음

상수 곱 AMM 가격 책정

Genesis 본딩 커브는 Uniswap V2와 Raydium이 사용하는 것과 동일한 x × y = k 공식을 사용합니다. 언제든지의 가격은 토큰 준비금과 SOL 준비금의 비율에 의해 결정됩니다.

본딩 커브에 가상 준비금이 필요한 이유

표준 x × y = k 곡선은 양쪽 끝에 점근선이 있어 완전 소진 런치에는 적합하지 않습니다.

  • 하한 점근선 — 런치 시 풀에 SOL이 없으면 구매자가 미미한 SOL로 모든 토큰을 고갈시킬 수 있음
  • 상한 점근선 — 마지막 몇 개 토큰의 가격이 무한대에 가까워져 실용적인 가격으로의 완전한 소진이 불가능해짐

Genesis 본딩 커브는 가격 수학에만 존재하는 가상 준비금(가상 SOL과 가상 토큰)으로 곡선을 시드함으로써 이를 해결합니다.

Genesis 본딩 커브의 준비금 회계

곡선은 AMM 공식에 결합되는 두 세트의 준비금을 유지합니다:

준비금필드설명
가상 SOLvirtualSol초기화 시 추가. 시작 가격 설정. 실제로 예치되지 않으며 수학에만 존재.
가상 토큰virtualTokens초기화 시 추가. 가상 SOL과 쌍을 이뤄 곡선을 고정.
실제 SOLquoteTokenDepositTotal구매자가 실제로 예치한 SOL. 0에서 시작하여 각 구매마다 증가.
실제 토큰bucket.baseTokenBalance버킷에 남아 있는 실제 토큰. 전체 배분에서 시작하여 각 구매마다 감소.

AMM 공식에 사용되는 유효 준비금:

totalSol = virtualSol + realSol
totalTokens = virtualTokens + realTokens
k = totalSol × totalTokens

SOL 단위의 현재 토큰 가격:

price = (virtualTokens + realTokens) / (virtualSol + realSol)

스왑 가격 공식

매수(SOL 입력, 토큰 출력):

inputReserve = totalSol
outputReserve = totalTokens
newInputReserve = inputReserve + amountIn
newOutputReserve = ceil(k / newInputReserve)
tokensOut = outputReserve - newOutputReserve

매도(토큰 입력, SOL 출력):

inputReserve = totalTokens
outputReserve = totalSol
newInputReserve = inputReserve + amountIn
newOutputReserve = ceil(k / newInputReserve)
solOut = outputReserve - newOutputReserve

올림 나눗셈(ceil(k / x))은 상수 곱 불변식 newInputReserve × (outputReserve − outputAmount) ≥ k가 위반되지 않도록 보장합니다. 풀은 가치를 잃지 않으며 증가만 가능합니다.

역산: 원하는 출력에 대한 필요 입력

특정 원하는 출력에 필요한 입력량을 계산하는 경우(준비금 소진 시 클램핑에 내부적으로 사용):

newOutputReserve = outputReserve - desiredAmountOut
newInputReserve = ceil(k / newOutputReserve)
requiredAmountIn = newInputReserve - inputReserve

수수료 구조

수수료는 방향에 관계없이 모든 스왑의 SOL 측에 적용됩니다. 매수에서는 SOL 입력에서 공제되고, 매도에서는 SOL 출력에서 공제됩니다.

프로토콜 스왑 수수료와 크리에이터 수수료

모든 스왑에는 프로토콜 스왑 수수료가 적용됩니다. 크리에이터는 선택적으로 크리에이터 수수료를 추가할 수 있습니다:

수수료설정자수신처
프로토콜 스왑 수수료프로토콜(크리에이터 설정 불가)Metaplex 수수료 지갑(feeQuoteTokenAccount)
크리에이터 수수료크리에이터 또는 에이전트(선택적)버킷에 누적(creatorFeeAccrued);퍼미션리스 claimBondingCurveCreatorFeeV2로 청구

두 수수료는 총 SOL 금액에 대해 독립적으로 계산되며 복리로 적용되지 않습니다. 순금액:

net = gross − protocolFee − creatorFee

프로토콜 스왑 수수료는 모든 스왑에서 Metaplex 수수료 지갑으로 전송됩니다. 크리에이터 수수료는 즉시 전송되지 않고 버킷에 누적creatorFeeAccrued)됩니다 — 퍼미션리스 claimBondingCurveCreatorFeeV2 인스트럭션을 호출하여 수집하세요. 졸업 후에는 Raydium LP 거래에서 크리에이터 수수료가 계속 누적되며 claimRaydiumCreatorFeeV2로 청구됩니다.

현재 프로토콜 수수료 일정은 프로토콜 수수료 페이지를 참조하세요.

거래 방향별 수수료 적용

매수(SOL → 토큰):

  1. 총 SOL 입력에 대해 수수료 계산
  2. 수수료 차감: amountInAfterFees = amountIn − fees
  3. AMM 공식이 amountInAfterFees로 실행
  4. 구매자는 전체 토큰 출력 수령(출력 측 수수료 없음)

매도(토큰 → SOL):

  1. 토큰 입력에 수수료 없음 — 전체 토큰 금액이 AMM에 투입됨
  2. AMM 공식이 총 SOL 출력 생성
  3. 총 SOL 출력에 대해 수수료 계산
  4. 매도자 수령액: netSolOut = grossSolOut − fees

졸업 수수료

Raydium CPMM 유동성 풀 초기화 비용을 충당하기 위해 졸업 시 추가 수수료가 부과됩니다. 현재 요율은 프로토콜 수수료를 참조하세요.

첫 번째 구매 메커니즘

첫 번째 구매 메커니즘은 지정된 구매자가 커브 생성 시 수수료 없이 최초 구매를 할 수 있도록 합니다.

설정된 경우 다음 규칙이 적용됩니다:

  1. 공동 서명 필요 — 지정된 구매자의 지갑이 커브 생성 트랜잭션에 공동 서명해야 함
  2. 수수료 면제 — 이 최초 구매에 한해 모든 수수료(프로토콜 스왑 수수료 및 크리에이터 수수료) 면제
  3. 일회성 — 첫 번째 구매 완료 후 메커니즘이 소비됨. 같은 지갑의 구매를 포함한 이후의 모든 스왑에는 일반 수수료 적용

본딩 커브 라이프사이클

Genesis 본딩 커브 런치는 세 가지 순차적 단계를 거칩니다:

1단계: Created(생성됨)

커브가 토큰 배분, 가상 준비금 파라미터, 수수료 설정, 스왑 윈도우 시작 시간, 그리고 확장 기능(첫 번째 구매, 크리에이터 수수료)으로 초기화됩니다. 아직 거래는 불가능합니다.

2단계: Active(활성)

설정된 시작 시간이 되면 사용자는 자유롭게 토큰을 매수/매도할 수 있습니다. SOL이 유입(매수)되고 유출(매도)됨에 따라 가격이 상수 곱 공식에 따라 지속적으로 변동합니다. 활성 상태인 동안 거래는 항상 열려 있으며 예치 기간이 없습니다.

3단계: Graduated(졸업됨)

커브의 모든 토큰이 팔리면 졸업이 자동으로 발생합니다. 별도의 트리거가 필요 없습니다. 누적된 실제 SOL이 지속적인 2차 거래를 위해 Raydium CPMM 풀로 마이그레이션되고 본딩 커브 자체는 종료됩니다.

런치 풀과 달리 본딩 커브에는 고정된 종료 시간이 없습니다. 졸업은 타이머가 아니라 공급 소진에 의해 트리거됩니다.

준비금 소진 처리

스왑이 이용 가능한 준비금을 초과하는 출력을 생성하려는 경우, 시스템이 출력을 제한하고 역산 공식을 사용하여 입력을 재계산합니다. 트랜잭션은 실패하지 않습니다.

매수 클램핑(토큰 공급 소진): tokensOut > baseTokenBalance인 경우 출력이 baseTokenBalance로 제한되고 필요한 SOL 입력이 재계산됩니다. 구매자는 남은 토큰을 구매하는 데 필요한 금액만 지불합니다. 이로 인해 졸업도 트리거됩니다.

매도 클램핑(SOL 공급 소진): 버킷에 총 출력과 수수료를 모두 충당할 SOL이 부족한 경우, 시스템이 이용 가능한 SOL 잔액으로부터 역산합니다. 이용 가능한 금액에 대해 수수료가 재계산되고, 매도자는 수수료 차감 후 남은 금액을 수령하며, 필요한 토큰 입력이 일치하도록 재계산됩니다.

온체인 계정 구조

BondingCurveBucketV2 계정에는 수수료 설정, 준비금 잔액, 스왑 조건, 확장 기능, 종료 동작, 상수 곱 커브 파라미터를 포함한 모든 커브 상태가 저장됩니다. 전체 타입 정의는 Genesis JavaScript SDKBondingCurveBucketV2를 참조하세요.

BondingCurveBucketV2 확장 기능

버킷에는 독립적으로 설정 가능한 선택적 기능을 갖춘 확장 기능 블록이 포함됩니다:

확장 기능설명
첫 번째 구매수수료 없는 최초 구매를 위한 구매자와 SOL 금액 지정. 첫 번째 구매 완료 후 소비됨.
크리에이터 수수료대상 지갑 주소와 수수료율을 가진 선택적 크리에이터 수수료. 수수료는 스왑마다 전송되지 않고 버킷(creatorFeeAccrued)에 누적됩니다 — 퍼미션리스 claimBondingCurveCreatorFeeV2 인스트럭션으로 수집하세요. 프로토콜 수수료와 독립적으로 계산되며 복리로 적용되지 않음. 첫 번째 구매 시 면제.

Notes

  • 가상 준비금은 가격 책정 수학에만 존재하며 실제 자산으로 온체인에 예치되지 않음
  • 크리에이터 수수료는 버킷(creatorFeeAccrued)에 누적되며 스왑마다 전송되지 않음;퍼미션리스 claimBondingCurveCreatorFeeV2 인스트럭션으로 수집;졸업 후 Raydium 수수료는 claimRaydiumCreatorFeeV2로 청구됨
  • ceil(k / x) 나눗셈이 모든 스왑 계산에 사용되어 풀이 가치를 잃지 않도록 보장
  • 졸업은 토큰 완전 소진 시 자동으로 발생하며 별도의 인스트럭션 불필요
  • 프로토콜 스왑 수수료율은 Metaplex가 설정하며 크리에이터는 설정 불가. 현재 요율은 프로토콜 수수료 참조
  • 첫 번째 구매 메커니즘은 커브 생성 시 설정되며 이후에 추가할 수 없음
  • 본딩 커브는 런치 풀프리세일과는 다른 런치 유형

FAQ

본딩 커브 런치와 런치 풀의 차이점은 무엇인가요?

런치 풀은 고정된 예치 기간과 일괄 가격 발견 방식을 사용하며, 사용자는 기간 중 예치하고 단일 청산 가격으로 비례적으로 토큰을 받습니다. 본딩 커브에는 고정 기간이 없으며, 스왑 윈도우가 열린 후 언제든지 매수/매도할 수 있고 각 거래 후 가격이 지속적으로 업데이트됩니다.

Genesis 본딩 커브는 왜 가상 준비금을 사용하나요?

표준 x × y = k 곡선은 양쪽 끝에서 무한대에 가까워져 실용적인 가격으로의 완전한 소진이 불가능합니다. 가상 준비금(초기화 시 추가되는 가상 SOL과 가상 토큰)이 유한한 시작 가격을 고정하고 모든 실제 토큰이 유계되고 예측 가능한 가격으로 소진될 수 있도록 곡선을 형성합니다.

졸업을 유발하는 것은 무엇이며, 누적된 SOL은 어떻게 되나요?

커브의 모든 토큰이 팔리면 졸업이 자동으로 발생합니다. 별도의 인스트럭션이 필요 없습니다. 누적된 실제 SOL이 지속적인 2차 거래를 위해 Raydium CPMM 풀로 마이그레이션되고 본딩 커브 계정이 종료됩니다.

프로토콜 수수료와 크리에이터 수수료는 복리로 적용되나요?

아니요. 두 수수료는 각 스왑의 총 SOL 금액에 대해 독립적으로 계산됩니다. 순금액은 gross − protocolFee − creatorFee입니다. 복리로 적용되지 않습니다.

첫 번째 구매자는 수수료를 내나요?

아니요. 첫 번째 구매 메커니즘이 설정된 경우 해당 최초 구매에 대해 모든 수수료가 면제됩니다. 같은 지갑의 추가 구매를 포함한 이후의 모든 스왑에는 일반 프로토콜 수수료와 크리에이터 수수료가 적용됩니다.

매수 주문이 커브에 남아 있는 토큰보다 많은 양을 구매하려고 하면 어떻게 되나요?

시스템이 토큰 출력을 잔액으로 제한하고 역산 공식을 사용하여 필요한 SOL 입력을 재계산합니다. 구매자는 실제로 이용 가능한 토큰에 대해서만 지불하고 트랜잭션은 정상적으로 완료됩니다. 이 마지막 구매로 졸업도 트리거됩니다.

Glossary

용어정의
상수 곱 AMM준비금의 곱을 일정하게 유지하는 x × y = k를 사용하는 자동화 마켓 메이커. Uniswap V2, Raydium, Genesis 본딩 커브가 사용
가상 준비금가격 수학에만 존재하며 예치된 자산으로는 존재하지 않는, 커브 초기화 시 추가되는 SOL 및 토큰 양. 시작 가격을 설정하고 완전한 소진을 가능하게 함
실제 준비금구매자가 실제로 예치한 SOL(quoteTokenDepositTotal)과 버킷에 남아 있는 실제 토큰(baseTokenBalance)
k 불변식상수 k = totalSol × totalTokens. 올림 나눗셈으로 스왑이 k를 감소시키지 않고 증가만 가능
졸업모든 커브 토큰이 팔릴 때 자동으로 발생하는 이벤트. 누적된 SOL을 Raydium CPMM 풀로 마이그레이션
Raydium CPMM졸업 시 본딩 커브의 유동성을 받아 지속적인 2차 거래를 위한 Raydium 상수 곱 마켓 메이커 풀
첫 번째 구매커브 생성 시 지정된 지갑과 일회성 수수료 없는 최초 구매를 위한 SOL 금액을 지정하는 선택적 확장 기능
크리에이터 수수료크리에이터가 설정하는 스왑별 선택적 수수료;버킷(creatorFeeAccrued)에 누적되며 퍼미션리스 claimBondingCurveCreatorFeeV2 인스트럭션으로 수집;프로토콜 수수료와 독립적으로 계산됨
프로토콜 스왑 수수료Metaplex가 설정하고 모든 매수와 매도에 부과되는 스왑별 수수료. 크리에이터 설정 불가
졸업 수수료Raydium CPMM 풀 초기화 비용을 충당하기 위해 졸업 시 부과되는 일회성 수수료
준비금 소진/클램핑스왑이 이용 가능한 준비금을 초과하는 경우 시스템이 출력을 제한하고 역산 공식으로 입력을 재계산. 트랜잭션 실패 없음
BondingCurveBucketV2준비금, 수수료 설정, 확장 기능, 상수 곱 파라미터를 포함한 모든 본딩 커브 상태를 저장하는 온체인 계정