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
  • 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
      • 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
      • Program Repo
      • 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: 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
  • Summary
  • Getting Started
  • Resources
  • Dependencies
  • Scripts
  • Create Dynamic AMM Pool (fixed fee %) for Token Launch
  • After deployment
  • When can you withdraw tokens from the pool?
  • Other Configuration Details
  • For Testing Bun Scripts
  1. TOKEN LAUNCH POOLS
  2. Steps to Create a Pool for a Token Launch

Create: Dynamic AMM Pool

PreviousCreate: DLMM Launch PoolNextCreate: Memecoin Pool v1

Last updated 13 days ago

Summary

Get an overview about Dynamic AMM Pools .

Below we provide the steps to use Bun to configure and run sample scripts to conveniently set up a permissionless Dynamic AMM Pool (with fixed fee %) on your own.

Note: For a Dynamic AMM Pool with a fee scheduler and liquidity permanently locked at pool creation (a.k.a Memecoin Pool v1), visit .

Getting Started

  • Clone repo:

  • Config list to reference:

  • Readme:

Resources

  • Dynamic AMM Program ID: Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB

  • Dynamic AMM API endpoints:

  • Devnet:

Dependencies

  • Install Bun: You'll also need to run the scripts. Install it via . Then install the dependencies by running the command bun install

Scripts

The following code examples can be used to initialize and seed a Dynamic AMM liquidity pool on Meteora.

Create Dynamic AMM Pool (fixed fee %) for Token Launch

  • Run the script with the config file which is set with your preferred parameters

Examples

Create a Dynamic AMM Pool with an existing token

To create a Dynamic AMM Pool with an existing token (without minting a new token).

Run this script with the config file which is set with your preferred parameters:

  • bun run src/create_pool.ts --config <./config/create_dynamic_amm_pool.json>

  • Replace <./config/create_dynamic_amm_pool.json> with the path to your config file, after you have selected the type of config from the list and set your config parameters.

Create a Dynamic AMM Pool with new token mint

To mint a new token and create a Dynamic AMM Pool for this token.

Run this script with the config file which is set with your preferred parameters:

bun run src/create_pool.ts --config ./config/create_dynamic_amm_pool_with_new_token.json

Lock Liquidity for Dynamic AMM Pool (Optional)

You have the option to lock liquidity in the Dynamic AMM Pool you created.

Run this script with the config file which is set with your preferred parameters:

bun run src/lock_liquidity.ts --config ./config/lock_liquidity.json

Allocating fees from locked liquidity: In the config file, you can also specify different wallet addresses to receive fees from the locked liquidity, and the % to allocate to each wallet. Multiple wallets are possible, but their allocations must add up to 100%.

After deployment

To view pool on the UI, access the link below

  • For Dynamic AMM pool: https://app.meteora.ag/pools/<POOL_ADDRESS>

When can you withdraw tokens from the pool?

  • CustomizablePermissionless Dynamic AMM: After pool activation point (trading starts)

Other Configuration Details

There are various config files that can be found in the config directory. It contains all the configurations required to run the scripts.

We also need to provide the keypair for the payer wallet in keypair.json file.

General configuration

  • rpcUrl: Solana RPC URL to get data and send transactions.

  • keypairFilePath: Keypair file path to send transactions.

  • dryRun: Set to true to send transactions.

  • computeUnitPriceMicroLamports: CU price in micro lamports unit. For example: 100000.

  • createBaseToken: Configuration to create base token.

  • baseMint: Base token address if the createBaseToken field is not set.

  • quoteSymbol: Quote token symbol, only SOL or USDC is supported.

  • quoteMint: Quote token mint, in case the user wants to create a DLMM launch pool with a token other than SOL or USDC.

  • dynamicAmm: Dynamic AMM pool configuration.

Some configuration constraints:

  • createBaseToken and baseMint cannot be used together.

  • dynamicAmm and dlmm cannot be used together.

Create Base Token configuration

  • mintBaseTokenAmount: Base token amount to be minted.

Dynamic AMM configuration

  • baseAmount: Base token amount.

  • quoteAmount: Quote token amount.

  • tradeFeeNumerator: Trade fee numerator, with fee denominator is set to 100_000.

  • activationType: To activate pool trading based on slot or timestamp.

  • activationPoint: To activate pool trading at a point, either slot valut or timestamp value based on activationType.

  • hasAlphaVault: Whether alpha vault is enabled or not for this pool.

For Testing Bun Scripts

First, run the localnet

bun run start-test-validator

Then run the test: bun test

Clone repo:

Select an example config from the list to reference and change the parameters inside according to your needs:

here
Create: Memecoin Pool v1
https://github.com/MeteoraAg/meteora-pool-setup
https://github.com/MeteoraAg/meteora-pool-setup/tree/main/config
https://github.com/MeteoraAg/meteora-pool-setup/blob/main/README.md
https://amm-v2.meteora.ag/swagger-ui/
https://devnet.meteora.ag/
bun
bun installation
https://github.com/MeteoraAg/meteora-pool-setup
https://github.com/MeteoraAg/meteora-pool-setup/tree/main/config