How to Launch a Token via Meteora Dynamic Bonding Curves Using CloddsBot
CloddsBot provides a dedicated Meteora DBC skill that lets you launch tokens on Meteora's DLMM-based bonding curves directly from chat commands, handling wallet validation, pool initialization, and fee configuration through the /dbc command interface.
The alsk1992/CloddsBot repository ships with a complete token launch pipeline for Meteora Dynamic Bonding Curves (DBC). This integration allows you to create liquidity pools, configure dynamic fees, and manage migrations without leaving the chat interface. The implementation follows a layered architecture that separates command parsing from blockchain interaction, ensuring both usability and security.
Prerequisites and Configuration
Before invoking any launch commands, CloddsBot validates your Solana wallet configuration. The system checks for either SOLANA_PRIVATE_KEY or SOLANA_KEYPAIR_PATH environment variables through the isConfigured() function in src/skills/bundled/meteora-dbc/index.ts source line 36.
The skill uses dynamic imports to keep the bot lightweight. Heavy Solana modules are loaded on-demand via getSolanaModules(), which imports wallet.js and meteora-dbc.js only when needed source lines 27-31. This ensures that non-Solana users don't pay the memory cost of blockchain libraries.
Understanding the Meteora DBC Architecture
The CloddsBot implementation separates concerns across four distinct layers:
- CLI/Chat Interface: Parses
/dbccommands and dispatches to handlers likehandleLaunch,handleStatus, andhandleBuy - Configuration Guard: Validates wallet availability before any blockchain interaction
- Launch Handler: Collects parameters, applies defaults, and builds the launch configuration
- SDK Interaction: Calls Meteora DBC functions to provision the actual pool
The core SDK wrapper lives in src/solana/meteora-dbc.ts, exposing functions like createEmptyMeteoraDlmmPosition source line 478 and initializeMeteoraDlmmPosition that handle the low-level DLMM pool creation.
Launching Your Token
Command Syntax and Parameters
To initiate a launch, use the /dbc launch command with the following structure:
/dbc launch "Token Name" SYMBOL "Description" \
--mcap 50 \
--grad 800 \
--supply 1000000000 \
--fee-start 500 \
--fee-end 100 \
--fee-decay 3600 \
--migration 1 \
--initial 0.5 \
--creator-fee 80
The handleLaunch() function in src/skills/bundled/meteora-dbc/index.ts source lines 68-89 processes these arguments. It validates the argument count and parses flags to construct the launch configuration. If required flags are missing, the handler returns detailed usage guidance source lines 73-90.
Configuration Options
The launch configuration supports several bonding curve parameters:
--mcap: Target market cap in SOL (50 in the example above)--grad: Graduation threshold in SOL (800)--supply: Total token supply (1 billion)--fee-start: Starting fee in basis points (500 = 5%)--fee-end: Ending fee in basis points (100 = 1%)--fee-decay: Fee decay period in seconds (3600)--initial: Initial buy amount in SOL (0.5)--creator-fee: Creator fee percentage (80)
Dry-Run Mode
Add --dry-run to validate your configuration without submitting transactions:
/dbc launch "My Token" MTK "Utility token" --mcap 50 --dry-run
This prints the complete launch configuration to chat without spending funds, allowing you to verify parameters before committing.
SDK Integration and Pool Creation
Behind the scenes, the bot invokes initializeMeteoraDlmmPosition() from src/solana/meteora-dbc.ts with your configuration:
const launchConfig = {
marketCapSOL: 50,
graduationSOL: 800,
totalSupply: 1_000_000_000,
feeStartBps: 500,
feeEndBps: 100,
feeDecaySec: 3600,
migrationVersion: 1,
initialBuySOL: 0.5,
creatorFeePct: 80,
decimals: 6,
};
await meteoraDbc.initializeMeteoraDlmmPosition({
name: "My Token",
symbol: "MTK",
description: "Utility token for my app",
...launchConfig,
});
The SDK handles the complex DLMM position initialization, including creating the empty position via createEmptyMeteoraDlmmPosition and funding it according to your bonding curve parameters.
Post-Launch Operations
After your token launches, CloddsBot provides utilities to monitor and manage the pool.
Fetching Swap Quotes
To get a quote for selling tokens:
await meteoraDbc.getMeteoraDlmmQuote(connection, {
mint: tokenMint,
amount: "1000",
sell: true,
});
Claiming Creator Fees
Retrieve accumulated fees from your pool:
await meteoraDbc.claimMeteoraDlmmSwapFee(connection, {
poolAddress: yourPoolAddress,
partner: false, // Set true for partner fee claims
});
Dynamic Fee Queries
Check the current fee schedule using getMeteoraDlmmDynamicFee from src/solana/meteora.ts source line 904. This function returns the real-time fee rate as the bonding curve progresses toward graduation.
External Integration
The launch functionality is also exposed via HTTP through src/gateway/launch-routes.ts source line 7, allowing external services to trigger token launches programmatically. The skill is cataloged in docs/SKILLS_CATALOG.md source line 61 under the meteora-dbc entry.
Summary
- CloddsBot's Meteora DBC skill lives in
src/skills/bundled/meteora-dbc/index.tsand provides chat-based token launches via the/dbccommand - The system validates wallet configuration through
isConfigured()before executing any blockchain operations - Dynamic imports keep the bot lightweight by loading Solana modules only when needed
- Launch parameters include market cap, graduation threshold, fee curves, and initial buy amounts
- The SDK wrapper in
src/solana/meteora-dbc.tshandles pool creation throughinitializeMeteoraDlmmPosition - Post-launch operations include swap quotes, fee claims, and dynamic fee monitoring
Frequently Asked Questions
What environment variables does CloddsBot require for Meteora DBC launches?
You must set either SOLANA_PRIVATE_KEY or SOLANA_KEYPAIR_PATH in your environment. The isConfigured() function checks for these variables before allowing any blockchain interaction to ensure the bot has signing capabilities.
Can I test a token launch without spending SOL?
Yes. Append the --dry-run flag to your /dbc launch command. This mode parses all arguments and displays the final configuration without submitting transactions to the blockchain, allowing you to verify parameters before committing funds.
Where does the actual pool creation happen in the codebase?
The low-level pool initialization occurs in src/solana/meteora-dbc.ts through functions like createEmptyMeteoraDlmmPosition and initializeMeteoraDlmmPosition. The skill layer in src/skills/bundled/meteora-dbc/index.ts handles command parsing and calls these SDK functions with your provided configuration.
How do I claim fees after my token graduates?
Use the claimMeteoraDlmmSwapFee function from the Meteora DBC SDK module. Pass your pool address and set partner: false for creator fees or partner: true if claiming partner fees. This function is accessible through the bot's chat interface or programmatically via the gateway routes.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →