Launch anything on Meteora and do any onchain actions with Invent
Meteora Invent
A toolkit consisting of everything you need to invent innovative token launches on Meteora.
Metsumi
Meet Metsumi, your personal launch assistant engineered to help you launch anything and do any action on Meteora programs with just a few configurations and CLI commands.

๐ Table of Contents
- Studio - Scaffolds๐ Getting Started
Prerequisites
- Node.js >= 18.0.0
- pnpm >= 10.0.0
Clone the repository
git clone https://github.com/MeteoraAg/meteora-invent.git
Installation
# Install pnpm if you haven't already
npm install -g pnpm
Install all dependencies
pnpm install
๐ฆ Workspaces
Studio (@meteora-invent/studio)
The studio workspace contains all the actions for interacting with Meteora's programs.
Setup
- Copy the
.env.examplefile to.envand configure the environment variables.
cp studio/.env.example studio/.env
- (Optional) Start a Local Test Validator
pnpm studio start-test-validator
- Generate a keypair from your private key:
pnpm studio generate-keypair
For devnet (airdrops 5 SOL)
pnpm studio generate-keypair --network devnet --airdrop
For localnet (airdrops 5 SOL)
Ensure that you have already started the local validator with pnpm start-test-validator
pnpm studio generate-keypair --network localnet --airdrop
- Configure the config files in the
studio/configdirectory.
- Configure DLMM
- Configure DAMM v2
- Configure DAMM v1
- Configure DBC
- Configure Alpha Vault
- (Optional) Airdrop SOL to your generated keypair if you need SOL to test on devnet or localnet:
# Airdrop 5 SOL on devnet
pnpm studio airdrop-sol --network devnet
Airdrop 5 SOL on localnet
Ensure that you have already started the local validator with pnpm start-test-validator
pnpm studio airdrop-sol --network localnet
DLMM Actions
Create a Customizable Permissionless DLMM Pool
Configure dlmmConfig in dlmm_config.jsonc file and run the following command to create the DLMM pool.
_If you don't have a base mint, you can configure createBaseToken in the config file and run the following command._
pnpm studio dlmm-create-pool
_If you already have a base mint created, you can provide it via the CLI with a --baseMint flag and run the following command._
pnpm studio dlmm-create-pool --baseMint <YOURBASEMINT_ADDRESS>
Seed Liquidity (LFG)
Configure lfgSeedLiquidity in dlmm_config.jsonc file and run the following command to seed the liquidity in the already deployed DLMM pool.
Note: You need to ensure that the deployed DLMM pool is not trading yet.
pnpm studio dlmm-seed-liquidity-lfg --baseMint <YOURBASEMINT_ADDRESS>
Seed Liquidity (Single Bin)
Configure singleBinSeedLiquidity in dlmm_config.jsonc file and run the following command to seed the liquidity in a single bin in the already deployed DLMM pool.
Note: You need to ensure that the deployed DLMM pool is not trading yet.
pnpm studio dlmm-seed-liquidity-single-bin --baseMint <YOURBASEMINT_ADDRESS>
Set DLMM Pool Status
Configure setDlmmPoolStatus in dlmm_config.jsonc file and run the following command to set the trading status of the DLMM pool. This command is used by the operator of the pool to either enable or disable trading for the DLMM pool.
pnpm studio dlmm-set-pool-status --poolAddress <YOURPOOLADDRESS>
DAMM v2 Actions
Create a Balanced Constant Product Pool
Configure dammV2Config in dammv2config.jsonc file and run the following command to create the DAMM v2 pool.
_If you don't have a base mint, you can configure createBaseToken in the config file and run the following command._
pnpm studio damm-v2-create-balanced-pool
_If you already have a base mint, you can provide it via the CLI with a --baseMint flag and run the following command._
pnpm studio damm-v2-create-balanced-pool --baseMint <YOURBASEMINT_ADDRESS>
Create a One-Sided Pool
Configure dammV2Config in dammv2config.jsonc file and run the following command to create the DAMM v2 one-sided pool.
_If you don't have a base mint, you can configure createBaseToken in the config file and run the following command._
pnpm studio damm-v2-create-one-sided-pool
_If you already have a base mint, you can provide it via the CLI with a --baseMint flag and run the following command._
pnpm studio damm-v2-create-one-sided-pool --baseMint <YOURBASEMINT_ADDRESS>
Split Position
Configure splitPosition in dammv2config.jsonc file and run the following command to split an existing position in the already deployed DAMM v2 pool.
pnpm studio damm-v2-split-position --poolAddress <YOURPOOLADDRESS>
Claim Position Fee
If you already have an existing position in a DAMM v2 pool with unclaimed fees, you can run the following command to claim the fees.
pnpm studio damm-v2-claim-position-fee --poolAddress <YOURPOOLADDRESS>
Add Liquidity
Configure addLiquidity in dammv2config.jsonc file and run the following command to add liquidity to an existing position in the already deployed DAMM v2 pool.
pnpm studio damm-v2-add-liquidity --poolAddress <YOURPOOLADDRESS>
Remove Liquidity
If you already have an existing position in a DAMM v2 pool with liquidity, you can run the following command to remove the liquidity and close the position.
pnpm studio damm-v2-remove-liquidity --poolAddress <YOURPOOLADDRESS>
Refresh Vesting
If you already have an existing position in a DAMM v2 pool with vested liquidity, you can run the following command to refresh the vesting of the position if the vesting of the LP has already ended.
pnpm studio damm-v2-refresh-vesting --poolAddress <YOURPOOLADDRESS>
Close Position
If you already have an existing position in a DAMM v2 pool without liquidity, you can run the following command to close the position.
pnpm studio damm-v2-close-position --poolAddress <YOURPOOLADDRESS>
DAMM v1 Actions
Create a Constant Product Pool
Configure dammV1Config in dammv1config.jsonc file and run the following command to create the DAMM v1 pool.
_If you don't have a base mint, you can configure createBaseToken in the config file and run the following command._
pnpm studio damm-v1-create-pool
_If you already have a base mint created, you can provide it via the CLI with a --baseMint flag and run the following command._
pnpm studio damm-v1-create-pool --baseMint <YOURBASEMINT_ADDRESS>
Lock Liquidity
Configure dammV1LockLiquidity in dammv1config.jsonc file and run the following command to lock the liquidity in the already deployed DAMM v1 pool.
pnpm studio damm-v1-lock-liquidity --baseMint <YOURBASEMINT_ADDRESS>
Create a Stake2Earn Farm
Configure stake2EarnFarm in dammv1config.jsonc file and run the following command to create the Stake2Earn farm on top of the already deployed DAMM v1 pool.
pnpm studio damm-v1-create-stake2earn-farm --baseMint <YOURBASEMINT_ADDRESS>
Lock Liquidity (Stake2Earn)
Configure dammV1LockLiquidity in dammv1config.jsonc file and run the following command to lock the liquidity in the already deployed DAMM v1 pool with the Stake2Earn farm.
pnpm studio damm-v1-lock-liquidity-stake2earn --baseMint <YOURBASEMINT_ADDRESS>
DBC Actions
Create a DBC Config
Configure dbcConfig in dbc_config.jsonc file and run the following command to create the DBC config key. This config key is used to create the DBC pool and contains all the settings for the pre-graduation and post-graduation pools.
pnpm studio dbc-create-config
Create a DBC Pool
Configure dbcPool in dbc_config.jsonc file and run the following command to create the DBC pool.
_If you don't have a DBC config key, you can run the following command and the config key + pool will be created together._
pnpm studio dbc-create-pool
_If you already have an existing DBC config key, you can provide it via the CLI with a --config flag and run the following command._
pnpm studio dbc-create-pool --config <YOURDBCCONFIG_KEY>
Claim Trading Fees
If you already have an existing DBC pool with accumulated fees, you can run the following command with the --baseMint flag to claim the fees.
pnpm studio dbc-claim-trading-fee --baseMint <YOURBASEMINT_ADDRESS>
Migrate to DAMM v1
If you already have an existing DBC pool, with poolState.quoteReserve > poolConfig.migrationQuoteThreshold (100% bonding curve progress), you can run the following command with the --baseMint flag to migrate the DBC pool to DAMM v1.
pnpm studio dbc-migrate-to-damm-v1 --baseMint <YOURBASEMINT_ADDRESS>
Migrate to DAMM v2
If you already have an existing DBC pool, with poolState.quoteReserve > poolConfig.migrationQuoteThreshold (100% bonding curve progress), you can run the following command with the --baseMint flag to migrate the DBC pool to DAMM v2.
pnpm studio dbc-migrate-to-damm-v2 --baseMint <YOURBASEMINT_ADDRESS>
Swap (Buy/Sell)
Configure dbcSwap in dbc_config.jsonc file and run the following command to swap in the DBC pool.
pnpm studio dbc-swap --baseMint <YOURBASEMINT_ADDRESS>
Transfer Pool Creator
Configure dbcTransferPoolCreator in dbc_config.jsonc file and run the following command to transfer the pool creator of the DBC pool.
pnpm studio dbc-transfer-pool-creator --baseMint <YOURBASEMINT_ADDRESS>
Alpha Vault Actions
Create an Alpha Vault
Configure alphaVault in alphavaultconfig.jsonc file and run the following command to create the alpha vault with an existing DAMM v1 or DAMM v2 or DLMM pool.
pnpm studio alpha-vault-create --baseMint <YOURBASEMINT_ADDRESS>
Presale Vault Actions
Create a Presale Vault
Configure presaleVault in presalevaultconfig.jsonc file and run the following command to create the presale vault for a specific base token.
pnpm studio presale-vault-create --baseMint <YOURBASEMINT_ADDRESS>
Scaffolds
Fun Launch (@meteora-invent/scaffold-fun-launch)
A Next.js application template for creating a launchpad.
Getting Started
Copy the .env.example file to .env and configure the environment variables.
cp scaffolds/fun-launch/.env.example scaffolds/fun-launch/.env
Install Dependencies
pnpm install
Running the Scaffold
# Run the fun-launch scaffold in development
pnpm --filter @meteora-invent/scaffold/fun-launch dev
Build the fun-launch scaffold
pnpm --filter @meteora-invent/scaffold/fun-launch build
๐๏ธ Structure
meteora-invent/
โโโ packages/ # Shared packages
โ โโโ config/
โ โโโ eslint/
โ โโโ prettier/
โ โโโ typescript/
โโโ scaffolds/ # Scaffolds - production-ready frontend application templates
โ โโโ fun-launch/
โโโ studio/ # Studio - a collection of actions for you to innovate and create
โโโ config
โ โโโ alphavaultconfig.jsonc
โ โโโ dammv1config.jsonc
โ โโโ dammv2config.jsonc
โ โโโ dbc_config.jsonc
โ โโโ dlmm_config.jsonc
โโโ data
โ โโโ image
โ โ โโโ test-token.jpg
โ โโโ kvproofexample.json
โ โโโ whitelistwalletexample.csv
โโโ LLM.txt
โโโ package.json
โโโ README.md
โโโ src
โ โโโ actions
โ โ โโโ alpha_vault
โ โ โ โโโ createalphavault.ts
โ โ โโโ damm_v1
โ โ โ โโโ create_pool.ts
โ โ โ โโโ createstake2earnfarm.ts
โ โ โ โโโ lockliquiditystake2earn.ts
โ โ โ โโโ lock_liquidity.ts
โ โ โโโ damm_v2
โ โ โ โโโ add_liquidity.ts
โ โ โ โโโ claimpositionfee.ts
โ โ โ โโโ close_position.ts
โ โ โ โโโ createbalancedpool.ts
โ โ โ โโโ createonesided_pool.ts
โ โ โ โโโ refresh_vesting.ts
โ โ โ โโโ remove_liquidity.ts
โ โ โ โโโ split_position.ts
โ โ โโโ dbc
โ โ โ โโโ claimtradingfee.ts
โ โ โ โโโ create_config.ts
โ โ โ โโโ create_pool.ts
โ โ โ โโโ migratedammv1.ts
โ โ โ โโโ migratedammv2.ts
โ โ โ โโโ swap.ts
โ โ โ โโโ transferpoolcreator.ts
โ โ โโโ dlmm
โ โ โ โโโ create_pool.ts
โ โ โ โโโ seedliquiditylfg.ts
โ โ โ โโโ seedliquiditysingle_bin.ts
โ โ โ โโโ setpoolstatus.ts
โ โ โโโ presale_vault
โ โ โ โโโ createpresalevault.ts
โ โ โโโ settings
โ โ โโโ airdrop_sol.ts
โ โ โโโ generate_keypair.ts
โ โโโ helpers
โ โ โโโ accounts.ts
โ โ โโโ cli.ts
โ โ โโโ common.ts
โ โ โโโ config.ts
โ โ โโโ index.ts
โ โ โโโ metadata.ts
โ โ โโโ token.ts
โ โ โโโ transaction.ts
โ โ โโโ utils.ts
โ โ โโโ validation.ts
โ โโโ lib
โ โ โโโ alpha_vault
โ โ โ โโโ merkle_tree
โ โ โ โ โโโ balance_tree.ts
โ โ โ โ โโโ index.ts
โ โ โ โ โโโ merkle_tree.ts
โ โ โ โ โโโ metadata.ts
โ โ โ โโโ index.ts
โ โ โ โโโ utils.ts
โ โ โโโ damm_v1
โ โ โ โโโ index.ts
โ โ โ โโโ stake2earn.ts
โ โ โโโ damm_v2
โ โ โ โโโ index.ts
โ โ โโโ dbc
โ โ โ โโโ index.ts
โ โ โโโ dlmm
โ โ โโโ index.ts
โ โโโ tests
โ โ โโโ artifacts
โ โ โ โโโ accounts
โ โ โ โ โโโ 3ifhD4Ywaa8aBZAaQSqYgN4Q1kaFArioLU8uumJMaqkE.json
โ โ โ โโโ alpha_vault.so
โ โ โ โโโ cp_amm.so
โ โ โ โโโ dynamic_amm.so
โ โ โ โโโ dynamicbondingcurve.so
โ โ โ โโโ dynamicfeesharing.so
โ โ โ โโโ dynamic_vault.so
โ โ โ โโโ lb_clmm.so
โ โ โ โโโ locker.so
โ โ โ โโโ metaplex.so
โ โ โโโ keys
โ โ โโโ localnet
โ โ โโโ admin-bossj3JvwiNK7pvjr149DqdtJxf2gdygbcmEPTkb2F1.json
โ โโโ utils
โ โโโ constants.ts
โ โโโ types.ts
๐ค Contributing
- Create a feature branch
- Make your changes
- Run
pnpm formatandpnpm lint - Submit a pull request
๐ License
ISC