Meteora
  • Meteora: The most dynamic and sustainable liquidity layer on Solana
  • PRODUCT OVERVIEW
    • Meteora Liquidity Pools
      • DLMM Overview
        • What is DLMM?
        • DLMM Program
        • Dynamic Fees
        • Strategies & Use Cases
        • DLMM Farming Rewards
      • DLMM Launch Pool Overview
      • Dynamic AMM Overview
        • What is a Dynamic AMM Pool?
        • Dynamic AMM LP Fee and APY Calculation
        • Creating a Dynamic AMM Pool via the UI
        • Claiming Fees from Permanently Locked Liquidity
        • Dynamic AMM Stable Pools
        • Dynamic LST Pools
        • Additional yield from Dynamic Vaults
        • Dynamic AMM Farm Overview
      • DAMM v2 Overview
      • Memecoin Pool Overview
        • Memecoin Pool v2
          • What is Memecoin Pool v2?
        • Memecoin Pool v1
          • What is Memecoin Pool v1?
          • Permanently Locking Liquidity
      • Stake2Earn Pool Overview
        • What is a Stake2Earn Pool?
        • Stake2Earn for Launchpads
      • Multi-Token Stable Pool Overview
    • Alpha Vault Overview
    • Dynamic Vault Overview
      • What is a Dynamic Vault?
      • Dynamic Vault Program
      • Hermes - Meteora's Keeper
        • Algorithm to find optimal yield allocations
        • Rebalance crank
        • Operation fee calculation
      • Design Goals
      • Security
      • Dynamic Vaults Whitepaper
      • Dynamic Vaults Community Explainers
      • Affiliate Program for Dynamic Vault
        • Become an Affiliate Partner (Dynamic Vaults)
    • Dynamic Bonding Curve (DBC) Overview
      • What is the Dynamic Bonding Curve?
      • Customizable Pool Configuration
      • Bonding Curve Formula
      • DBC Migrator Keeper
  • Meteora's Anti-Sniper Suite (A.S.S.)
    • Meteora’s Anti-Sniper Suite
      • Dynamic Fees
      • Fee Scheduler
      • Rate Limiter
      • Alpha Vault
  • INTEGRATION
    • DLMM Integration
      • DLMM SDK
        • DLMM TypeScript SDK
        • CPI Examples
      • DLMM API
      • Fetching information on locked liquidity in a DLMM
    • Dynamic AMM Pool Integration
      • Dynamic AMM SDK
        • Dynamic AMM TypeScript SDK
        • CPI Examples
      • Dynamic AMM API
        • Pool Info
        • Pool State
      • Setting Pool and Fee Config for Dynamic AMM Pools
      • Create Dynamic Pool with Timestamp/Slot Activation
      • Dynamic AMM - Farm Integration
    • DAMM v2 Integration
      • DAMM v2 SDK
        • DAMM v2 TypeScript SDK
        • DAMM v2 Rust SDK
      • DAMM v2 API
      • Setting Pool and Fee Config for DAMM v2
      • Technical FAQ
    • Memecoin Pool Integration
      • Memecoin Pool v2 Integration
        • Setting Pool and Fee Config for Memecoin Pool v2
      • Memecoin Pool v1 Integration
        • TypeScript Code Examples
        • CPI Examples
        • Setting Pool and Fee Config for Memecoin Pool v1
        • Track permanently-locked liquidity in Memecoin Pool v1
        • Track Protocol Fee from swaps in Memecoin Pool v1
    • Stake2Earn Pool Integration
    • Dynamic Vault Integration
      • Using TypeScript-Client
      • Using Rust-Client
      • Using CPI
      • Vault API
        • Vault Info
        • Vault State
      • Vault Developer Resources
    • Alpha Vault Integration
      • Alpha Vault TypeScript SDK
      • Alpha Vault without Whitelist Setup
      • Alpha Vault with Whitelist Setup
    • Dynamic Bonding Curve (DBC) Integration
      • DBC SDK
        • DBC TypeScript SDK
        • DBC Rust SDK
      • DBC Fee Scheduler Formula
      • DBC Scripts
      • Program Repo
      • Launchpad Template
      • Technical FAQ
  • TOKEN LAUNCH POOLS
    • Steps to Create a Pool for a Token Launch
      • Create: DLMM Launch Pool
      • Create: Dynamic AMM Pool
      • Create: Memecoin Pool v1
      • Create: DAMM v2 Pool
      • Create: Stake2Earn Pool
      • Create: Pools with Alpha Vault
        • Create: DLMM Launch Pool with Alpha Vault
        • Create: Dynamic AMM Pool with Alpha Vault
        • Create: Memecoin Pool with Alpha Vault
        • Create: Stake2Earn Pool with Alpha Vault
    • Anti-Sniper Fee Suite for a Token Launch
  • Resources
    • Audits
    • Meteora Program IDs
    • Meteora APIs
    • Devnet Testing
    • Community Data Dashboards & Tools
    • Meteora Brand Assets
    • THE MASSIVE METEORA STIMULUS PACKAGE
      • Overview
      • 1. Dynamic Liquidity Market Maker (DLMM)
      • 2. Formation Of An LP Army DAO
      • 3. The 10% Stimulus Proposal
  • USER FAQ
    • Getting Started LPing
      • Supported Wallets
      • Prepare SOL
      • SOL required for Rent
      • What is Wrapped SOL?
      • What is an AMM?
      • What does it mean to provide liquidity?
      • How to swap to the tokens required for adding liquidity to a pool
      • How to quickly check if a token has any risks
      • Viewing your transaction history
      • My wallet has been compromised. What should I do?
    • Differences between DLMM and Dynamic Pools
    • DLMM FAQ
    • Dynamic AMM FAQ
      • How is the pool price of the token calculated in a Dynamic AMM?
      • What is a Meteora LP token?
      • How do I see fees earned on a Dynamic AMM Pool?
      • How to track your earnings for a Dynamic Pool?
      • What is Virtual Price in a Dynamic Pool?
      • How do LP tokens, fees, and virtual price work for Dynamic Pools?
      • Why must I add liquidity in non-stable Dynamic Pools using a 50:50 value ratio?
      • What is AMP in a Dynamic Pool with stable coins?
      • Why is the USDT-USDC pool not 1:1 in ratio of assets?
      • Can I create an LST, FX, or Multi-token pool using the Dynamic Pool creation tool?
    • Alpha Vault FAQ
    • Why is the token sometimes not picked up and tradable on Jupiter?
    • How do I create a new farm?
    • Video Tutorials to Get Started
      • LP Army Boot Camp
      • DLMM Strategy Sessions / Jam Sessions
  • Security and Risks
    • Risk of Impermanent Loss (IL)
    • Risk of depositing into an imbalanced pool / pool with price out of sync
    • Smart contract risk
    • Risk of a stablecoin depeg
    • Operational risk for dynamic vaults and pools
    • Lending risk for dynamic vaults and pools
  • legal
    • Terms of Service
    • Stake2Earn Terms of Service
Powered by GitBook
On this page
  • Position NFT
  • What does the position state of the NFT manage?
  • Can I transfer a position NFT (which represents a liquidity position)?
  • Farming
  • How does Farming work in DAMM v2?
  • Using Meteora Frontend
  • When you deposit tokens into the pool, how is the LP token amount calculated?
  • Which DAMM v2 pools are considered a Memecoin Pool or a Volatile Pool?
  • What is the Pool Authority address of the cp-amm (DAMM v2) program (PDA)?
  • How is the fee collected when the pool creator selects fee collection mode as Quote only?
  • For a new DAMM v2 Pool, can you set a min-max price range, while enabling imbalanced deposit for the pool?
  1. INTEGRATION
  2. DAMM v2 Integration

Technical FAQ

Position NFT

What does the position state of the NFT manage?

The position state manages unlocked_liquidity + locked_liquidity + vested liquidity.

User can interact with the following flows in the same, single position:

  • Permanently lock part of the liquidity

  • Create multiple vesting schedules

  • Add more liquidity (unlocked liquidity)

Can I transfer a position NFT (which represents a liquidity position)?

Yes. For example, you already have a position in a pool, which is represented by a position NFT. Someone also has a position in that same pool and he sends you his position NFT. Now you would have 2 position NFTs (positions) for the same pool.

Farming

How does Farming work in DAMM v2?

For DAMM V2, there is an in-built farming mechanism within the program. This is unlike DAMM v1, where there is a separate farming program.

For DAMM v2, each specific pool can create farming rewards and the pool has its own unique reward vault. Each reward vault can have a maximum of 2 types of reward tokens.

When the initialize_reward program endpoint is used, a reward_vault for the specific pool is created, and the initiator can specify the reward token (max 2 types) for the reward_vault

Rewards will be shared with all liquidity providers over the farming duration.

Currently, in this beta stage:

  • The initialize_reward program endpoint can only be initialized by Meteora's admin

  • And only a whitelisted funder address can fund rewards into this reward_vault

So for now, projects have to reach out to the Meteora team to create a farm and add rewards. But we're exploring ways to make this process permissionless at a later stage.

Using Meteora Frontend

When you deposit tokens into the pool, how is the LP token amount calculated?

When you deposit the token amounts on Meteora FE, it will calculate and the specify lp_token before it sends to the program to execute.

Example:

  • From token B: amount_b = lp_token (pool.current_sqrt_price - pool.min_sqrt_price)

  • so you can reverse: lp_token = (pool.current_sqrt_price - pool.min_sqrt_price) / amount_b

Which DAMM v2 pools are considered a Memecoin Pool or a Volatile Pool?

  • Memecoin Pool:

    • A pool initialized with the program endpoint InitializeCustomizablePool will be tagged as meme

    • A Memecoin Pool has the Fee Scheduler feature enabled, while a Volatile Pool does not.

  • Volatile Pool:

    • A pool initialized with the program endpoint InitializePool will be tagged as volatile

What is the Pool Authority address of the cp-amm (DAMM v2) program (PDA)?

How is the fee collected when the pool creator selects fee collection mode as Quote only?

Regarding how DAMM 2 collects fee only using the Quote token ("Token B"):

  • If a user swaps from A -> B, fee is charged on B; protocol takes some of the user's B

  • If a user swaps from B -> A, fee is charged on B before the swap is calculated; protocol takes some of the user's B before it gets swapped to A

For a new DAMM v2 Pool, can you set a min-max price range, while enabling imbalanced deposit for the pool?

No. You can only set a min-max price range. DAMM v2 is still a constant product AMM (DAMM v1 too), so it needs to abide by a balanced ratio deposit.


PreviousSetting Pool and Fee Config for DAMM v2NextMemecoin Pool Integration

Last updated 12 days ago

If you need to set a min-max price range, as well as implement imbalanced deposits for the pool, you need to use .

For more technical information, please refer to Github at

For a high level overview of DAMM v2, please read

HLnpSz9h2S4hiLQ43rnSD9XkcUThA7B8hQMKmDaiTLcC
DLMM
CP-AMM (DAMM v2) SDK Documentation
DAMM v2 Overview