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
  • Fee Suite: Key Features
  • A) Built with Launches in mind
  • B) Collect/Distribute Fees from Locked Liquidity
  • C) Collect Fees in USDC or SOL (Coming Soon)
  • 1. Dynamic Fees on DLMM Launch Pools
  • 2. Fee Schedule for Dynamic AMM v1 Pools
  • How to choose a suitable Pool & Fee Config or create a new one?
  • Public Pool Config List
  • New Custom Pool Config and Fee Curve for Integrators / Launchpads
  • Custom Fee Curve for a Specific Pool
  • API to track associated Fee Curve for each Config
  • Full Pool and Alpha Vault Config List
  1. TOKEN LAUNCH POOLS

Anti-Sniper Fee Suite for a Token Launch

Maximize Yields & Deter Snipers with Meteora's Fee Suite

PreviousCreate: Stake2Earn Pool with Alpha VaultNextAudits

Last updated 22 days ago

Fee Suite: Key Features

A) Built with Launches in mind

  • Dynamic Fees for DLMM Launch Pools: Maximize fees during launch volatility with Dynamic Fees

  • Fee Schedule for Dynamic AMM Pools: Configurable fee schedule to mitigate against sniper bots by making them incur high fees at launch

  • Anti-Sniper Alpha Vault: To complement our fee suite, creators can use our Alpha Vault, which is an anti-bot tool to guard against sniper bots and allow genuine supporters to be the first to deposit and buy tokens at launch. Read more about how the .

B) Collect/Distribute Fees from Locked Liquidity

  • Creators can permanently lock liquidity yet still claim and distribute fees from the permanently locked liquidity to LPs. Creators can also use to incentivize top stakers.

C) Collect Fees in USDC or SOL (Coming Soon)

  • Much requested feature from partners. Collect Fees only in quote token (USDC or SOL).

1. Dynamic Fees on DLMM Launch Pools

DLMM Launch Pools have dynamic fees that increase or decrease depending on how volatile the market is, which in turn help offset losses that LPs may experience in volatile markets and enhance LP profitability. By default, Dynamic Fees are on enabled on all DLMM Launch Pools.

DLMM implements dynamic fees with surge pricing based on market fluctuations and volatility.

LPs earn a swap fee from traders when they perform a swap. The total swap fee (fs)(f_s)(fs​) will have two components: a base fee (fb)(f_b)(fb​) and a variable fee (fv)(f_v)(fv​). Total swap fee fs=fb+fvf_s = f_b + f_vfs​=fb​+fv​

The variable fee (fv)(f_v)(fv​) is a function of real-time price volatility. The fee rate will be applied to the swap amount in each liquidity bin and distributed proportionally to the LPs in that bin.

LPs can claim these fees whenever they are available.

2. Fee Schedule for Dynamic AMM v1 Pools

Fee Scheduler: For Dynamic AMM Memecoin Pools v1, there is a fee scheduler where the % fee charged per swap changes over time. This fee is configurable and can be changed based on market conditions.

Protocol Fee: Protocol Fee represents the amount of fees charged per swap that goes to the protocol or integrations that drive volume to the pool. Protocol Fee is a % of the dynamic Fee Schedule.

The default global Fee Config for Memecoin Pools v1 on Meteora is currently:

  • 15% - when pool trading starts

  • 7% - 10 min after pool trading starts (10 min after 15% starts)

  • 5% - 130 min after pool trading starts (120 min after 7% starts)

  • 2% - 250 min after pool trading starts (120 min after 5% starts)

  • 1% - 370 min after pool trading starts (120 min after 2% starts)

  • 0.5% - 490 min after pool trading starts (120 min after 1% starts)

  • 0.25% - 24 hours after pool trading starts (950 min after 0.5% starts)

This fee schedule may change over time.

How to choose a suitable Pool & Fee Config or create a new one?

If you want to create an Alpha Vault along with your new pool, you also need to find a pool_config_key that is mapped to a vault_config_key that meets your requirements.

Public Pool Config List

    • Using this endpoint, integrators can input the config pubkey, and it will return an array of fee update timings for the config, if there's any.

    • Integrators may choose a pool_config_key with a fee curve that suits your integration.

  • If there is no existing config in the list that fits your project's requirement, a new config needs to be created.

  • Only the Meteora team can create a new config to add it to the preset pool config list.

Default Pool Config used by Meteora Frontend

  • By default, Meteora's frontend is currently using this pool config key for Memecoin Pool v1 creation: FiENCCbPi3rFh5pW2AJ59HC53yM32eLaCjMKxRqanKFJ

  • For the FiENCCbPi3rFh5pW2AJ59HC53yM32eLaCjMKxRqanKFJ pool config, it doesn't allow creation of any Alpha Vault, therefore it's field vault_config_key is 1111111...

New Custom Pool Config and Fee Curve for Integrators / Launchpads

Custom Pool Config Key: Integrators such as launchpads or other partners may need to use their own unique custom pool config key, if they want custom pool_creator_authority to prevent front-running of the token launch pool.

NOTE:

  • New dedicated config keys can only be created by Meteora. Please reach out to us if this is required.

  • The pool_creator_authority doesn't work with program address. It's not a program whitelist, it needs to be a PDA (program derived address) or normal account.

Custom Fee Curve: If you are an integrator, Meteora can also apply a custom fee curve/schedule for your pools, but we will need to create a dedicated config key for your team, where pool_creator_authority is linked to your signer wallet for pool creation. You would need to send us your signer wallet that would be used to deploy the pools.

NOTE:

  • Even with a dedicated config key for your team, Meteora would need to customize the fee curve/schedule for you. You can't do it on your own.

  • Custom Pool Config and Fee Curve is used by integrators such as Moonshot by DEX Screener.

Custom Fee Curve for a Specific Pool

If required, Meteora can set a custom fee curve for a single, specific pool. This would override the fee curve used by the pool's config key, doesn't matter which config key is used.

API to track associated Fee Curve for each Config

Using this endpoint, integrators can input the config pubkey, and it will return an array of fee update timings for the config, if there's any. Integrators may then choose a config with a fee curve that suits their integration.

Steps:

  1. Press "Execute" and find and select the config you want to view

Example: Moonshot Integration - Custom Config Key and Fee Curve

  • After 14400 seconds since pool start trading, the fee rate will be 2.5%

  • After 86400 seconds since pool start trading, the fee rate will be 1%

How do you view the starting fee for the config?

Example: Moonshot Integration - Fee Curve starting fee

Pool Dynamic Fee starts at 500 bps (5%), and protocol fee is 20%

Combining the above two example parameters, the Moonshot Fee Curve is:

  • Pool Dynamic Fee starts at 5%

  • After 14400 seconds from start of pool trading, the fee rate will be 2.5%

  • After 86400 seconds from start of pool trading, the fee rate will be 1%

What does each field in the Fee Config mean?

  • config_address = the pool config key

  • trade_fee_bps = pool trading fee

  • protocol_fee_bps = protocol fee charged from pool trading fee

  • activation_duration = used to determine when exactly the pool will start trading.

  • start trade time = current_time + activation_duration Or current_slot + activation_duration, depends on the activation_type

  • vault_config_key = alpha vault config key. If it is 11111111111111111111111111111111, means no alpha vault. If not, the pool can create an alpha vault. Note: This is NOT the same as the vault address.

  • pool_creator_authority = address which can use the pool config key to create a pool. If it is 11111111111111111111111111111111, it's public and available for everyone to use

  • activation_type = pool activation type. 0 = slot, 1 = time

Pool Config Example

  • Sample fields: { "config_address": "FiENCCbPi3rFh5pW2AJ59HC53yM32eLaCjMKxRqanKFJ", "trade_fee_bps": 1500, "protocol_fee_bps": 2000, "activation_duration": 0, "vault_config_key": "11111111111111111111111111111111", "pool_creator_authority": "11111111111111111111111111111111", "activation_type": 0 },

User Flow Example

A pool config may or may not have an associated vault config. There's no vault config associated when the vault_config_key is 11111111111111111111111111111111

When the pool config has a vault config, user can create the pool + Alpha Vault that is binded (auto-whitelisted) by the pool. The Alpha Vault created will inherit the parameters (Pro Rata / FCFS + buying_cap, vesting duration, etc.) from the vault config.

Let's say a user wants to create the pool ABC/SOL with an Alpha Vault, the user will need to:

  1. Check for pool config that have vault_config_key not =1111..., and pool_creator_authority is the user or 1111... (accessible by the public)

  2. Based on the vault requirement the user wants, the user will need to:

    a) Check all the pool configs from step 1, which are each mapped to a vault_config_key, as well as

    b) Check for vault config and look for one that fits the requirement

  3. If the user finds a requirement that suits their needs, they can use that pool_config_key to create the pool, then use the pool config-mapped vault_config_key to create the vault. As long as vault_config_key is used, the vault is automatically whitelisted upon pool creation.

All the settings are already predefined by pool_config + its mapped vault_config_key

The permutations for pool config + Alpha vault are created by the Meteora team.

Pool Config Example

{ 
"config_address": "8aPHoLN8ke6PhWeYA7ELi19fppptVYUCQvqKWR5yP1sn", 
"trade_fee_bps": 150, 
"protocol_fee_bps": 2000, 
"activation_duration": 1512000, 
"vault_config_key": "7ixojP8Zuu4csfTycHi8ywQymHm9zxAhu1TjnFuJaq2R", 
"pool_creator_authority": "5unTfT2kssBuNvHPY6LbJfJpLqEcdMxGYLWHwShaeTLi", 
"activation_type": 0 
},

Alpha Vault Config Example

{
  "address": "7ixojP8Zuu4csfTycHi8ywQymHm9zxAhu1TjnFuJaq2R",
  "max_depositing_cap": 10,
  "start_vesting_duration": 1,
  "end_vesting_duration": 24107,
  "depositing_duration_until_last_join_point": 24107,
  "individual_depositing_cap": 1,
  "escrow_fee": 0,
  "activation_type": 0
},

In this example above, only the pool_creator_authority (5unTfT2kssBuNvHPY6LbJfJpLqEcdMxGYLWHwShaeTLi) can use the pool config 8aPHoLN8ke6PhWeYA7ELi19fppptVYUCQvqKWR5yP1sn to create a pool with the below settings:

  1. 1.5% fee

  2. 20% protocol fee

  3. pool start trade after 1512000 slot upon creation

  4. slot based activation

and can create a binded Alpha Vault with FCFS config as shown below:

  1. max deposit cap = 10 token

  2. vested over 24106 slot after pool activate

  3. deposit opens at 24107 slot before vault crank

  4. every escrow maximum can only deposit 1 token

Full Pool and Alpha Vault Config List

If your preferred configs are not available in the pre-defined config lists above, please contact the Meteora team. You will need your own unique config key specific to your integration.

Important Notes

  • Only the Meteora team is able to change the default Dynamic Fee and Protocol Fee; projects have no backend access.

  • New config keys can only be created by Meteora. Highest fee % is 15% at the moment for Memecoin Pool v1.

  • Integrators such as launchpads or other partners may need to use their own unique custom pool config key, if they want custom pool_creator_authority to prevent front-running of the token launch pool. New dedicated config keys can only be created by Meteora - Please reach out to the team if this is required.

  • The pool_creator_authority doesn't work with program address. It's not a program whitelist, it needs to be a PDA (program derived address) or normal account.

  • All newly created config will not have a dynamic fee schedule applied to it, unless Meteora manually specifies it.

Learn more about how DLMM's Dynamic Fees work .

What fee parameters to choose depends on your project's needs. You will need to look at the and choose a suitable pool_config_key with your preferred fee parameters.

Pool config list:

Devnet API: You can also get the list of config keys from devnet API

API endpoint to return the associated fee curve for each existing config:

Meteora has an API endpoint to return the associated fee curve for each existing config:

Go to

Check for any Dynamic Fee curve for that specific config

You can check the content of the config account itself, or input you config key account address in

Sample:

Pool config list:

Alpha Vault config list:

Alpha Vault works here
Stake2Earn
here
pool config list
https://amm-v2.meteora.ag/swagger-ui/#/pools/get_all_pool_configs
https://devnet-amm-v2.meteora.ag/pool-configs
https://amm-v2.meteora.ag/swagger-ui/#/fee_config/get_config_associated_fee_configs
https://amm-v2.meteora.ag/swagger-ui/#/fee_config/get_config_associated_fee_configs
https://amm-v2.meteora.ag/swagger-ui/#/pools/get_all_pool_configs
https://amm-v2.meteora.ag/swagger-ui/#/fee_config/get_config_associated_fee_configs
https://amm-v2.meteora.ag/swagger-ui/#/pools/get_all_pool_configs
https://amm-v2.meteora.ag/pool-configs
https://amm-v2.meteora.ag/swagger-ui/#/pools/get_all_pool_configs
https://amm-v2.meteora.ag/swagger-ui/#/alpha_vault_config/get_all