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
  • Getting Started
  • Development
  • Dependencies
  • Build
  • Endpoints
  • Admin
  • Keeper to claim protocol fee
  • Token team (who run on-chain liquidity mining)
  • Partner (aka Launchpad)
  • Token deployer
  • Liquidity provider
  • Trading bot/ user swap with pools
  • Config key state
  • Main Function to Use
  1. INTEGRATION
  2. DAMM v2 Integration
  3. DAMM v2 SDK

DAMM v2 Rust SDK

PreviousDAMM v2 TypeScript SDKNextDAMM v2 API

Last updated 2 months ago

Getting Started

  • Read the

  • Program Repo on Github:

  • Rust SDK on Github:

  • Program ID (Mainnet-beta): cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG

  • Program ID (Devnet): cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG

Development

Dependencies

  • anchor 0.31.0

  • solana 2.1.0

  • rust 1.85.0

Build

Program

anchor build

CLI

cargo build -p cli

Test

pnpm install
pnpm test

Faucets

Endpoints

Admin

  • create_config: create a config key that includes all pre-defined parameters when user create pools with that config key.

  • create_token_badge: whitelist token mint, that has non-permissionless extensions (token2022)

  • create_claim_fee_operator: whitelist an address to claim protocol fee

  • close_claim_fee_operato: unwhitelist the address to claim protocol fee

  • close_config: close a config key

  • initialize_reward: initialize an on-chain liquidity mining for a pool

  • update_reward_funder: update a whitelisted address to fund rewards for on-chain liquidity mining

  • update_reward_duration: update reward duration for liquidity mining

  • set_pool_status: enable or disable pools. If pool is disabled, user can only be able to withdraw, can't add liquidity or swap

Keeper to claim protocol fee

  • claim_protocol_fee: claim protocol fee to Meteora's treasury address

Token team (who run on-chain liquidity mining)

  • fund_reward: fund reward for on-chain liquidity mining

  • withdraw_ineligible_reward: withdraw ineligible reward

Partner (aka Launchpad)

  • claim_partner_fee: claim partner fee

Token deployer

  • initialize_pool: create a new pool from a config key

  • initialize_customizable_pool: create a new pool with customizable parameters, should be only used by token deployer, that token can't be leaked.

Liquidity provider

  • create_position: create a new position nft, that holds liquidity that owner will deposit later

  • add_liquidity: add liquidity to a pool

  • remove_liquidity: remove liquidity from a pool

  • remove_all_liquidity: remove all liquidity from a pool

  • claim_position_fee: claim position fee

  • lock_position: lock position with a vesting schedule

  • refresh_vesting: refresh vesting schedule

  • permanent_lock_position: lock position permanently

  • claim_reward: claim rewards from on-chain liquidity mining

Trading bot/ user swap with pools

  • swap: swap with the pool

Config key state

  • vault_config_key: alpha-vault address that is able to buy pool before activation_point

  • pool_creator_authority: if this address is non-default, then only this address can create pool with that config key (for launchpad)

  • pool_fees: includes base fee scheduler, dynamic-fee, protocol fee percent, partner fee percent, and referral fee percent configuration

  • activation_type: determines whether pools are run in slot or timestamp

  • collect_fee_mode: determines whether pool should collect fees in both tokens or only one token

  • sqrt_min_price: square root of min price for pools

  • sqrt_max_price: square root of max price for pools

Main Function to Use

DAMM v2 Overview
https://github.com/MeteoraAg/cp-amm
https://github.com/MeteoraAg/cp-amm/tree/main/rust-sdk
https://faucet.raccoons.dev/
https://github.com/MeteoraAg/cp-amm/blob/main/rust-sdk/src/quote.rs