The most advanced Meteora DBC & DAMM v2 integration framework for launching tokenized stocks, RWAs, AI agents, meme tokens, and custom asset classes.
OmniCurve is a comprehensive TypeScript SDK and CLI that enables builders to create sophisticated token launch mechanisms using Meteora's Dynamic Bonding Curve (DBC), DAMM v2, and DLMM protocols. It provides production-ready curve configurations, fee schedules, and migration flows for various asset classes.
| Asset Class | Curve Type | Fee Schedule | Migration | Best For |
|---|---|---|---|---|
| Tokenized Stocks | Flat/Linear | 2% β 0.3% (linear) | DAMM v2 | xStocks, Backpack Onchain, Ondo RFQ |
| RWA (Real World Assets) | Long/Extended | 1.5% β 0.1% (30-day) | DAMM v2 | Bonds, commodities, real estate |
| AI Agents / Compute | Exponential | 5% β 0.5% (1-day) | DLMM | AI compute tokens, agent economies |
| Meme / Community | Exponential | 9% β 1% (1-hour) | DAMM v2 | Community tokens, fair launches |
- Flat Curve: Minimal price impact for stable price discovery
- Exponential Curve: High upside discovery with anti-snipe protection
- Long Curve: Extended price discovery window (30+ days)
- Step Curve: Tiered valuation milestones
- Sigmoid Curve: Bounded growth with S-curve dynamics
- Custom Curve: User-defined βprice checkpoints
- Dynamic Fee Schedulers: Linear, Exponential, Time-based
- Migration Destinations: DAMM v2, DLMM, DAMM v1
- Conviction Locks: Permanent LP liquidity in Meteora Dynamic Vaults
- Vesting Schedules: Cliff + linear vesting for team/community
- Anti-Bot Mechanisms: First-swap min fee, dynamic fees
- TypeScript SDK: Full type safety with Meteora SDK integration
- CLI Tool:
omnicurvefor rapid config/pool creation - Real-time Streams: WebSocket subscriptions for pool updates
- Preset Marketplace: Export/import/share DBC configurations
- Comprehensive Testing: Unit tests for all curve math
- Installation
- Quick Start
- Architecture
- Curve Mathematics
- Meteora Integration
- Preset Marketplace
- Testing
- Resources
- Contributing
- License
- Disclaimer
# Using npm
npm install @omnicurve/meteora-launchpad
# Using pnpm (recommended)
pnpm add @omnicurve/meteora-launchpad
# Using yarn
yarn add @omnicurve/meteora-launchpadimport {
OmniCurveSDK,
buildEquityStockCurveConfig,
AssetClass,
Connection,
PublicKey,
Keypair
} from '@omnicurve/meteora-launchpad';
// Initialize SDK
const connection = new Connection('https://api.mainnet-beta.solana.com', 'confirmed');
const sdk = new OmniCurveSDK(connection);
// Build equity stock curve config
const config = buildEquityStockCurveConfig({
initialValuationUSD: 1_000_000,
targetGraduationValuationUSD: 10_000_000,
totalTokensToLaunch: 1_000_000_000,
});
// Create config transaction
const keypair = Keypair.fromSecretKey(/* your secret key */);
const configTx = await sdk.createConfig(config, keypair.publicKey);
// Create pool
const poolTx = await sdk.createPool(
configTx.configAddress,
'Apple Onchain',
'xAAPL',
'https://arweave.net/metadata...',
keypair.publicKey
);
// Get real-time pool state
const state = await sdk.getPoolState(poolTx.poolAddress);
console.log(`Current price: $${state.currentPrice}`);
// Subscribe to updates
const unsubscribe = sdk.subscribeToPool(poolTx.poolAddress, (update) => {
console.log('Price updated:', update.currentPrice);
});
// Later: unsubscribe()
unsubscribe();# Create a tokenized stock config
omnicurve create-config \
--rpc https://api.mainnet-beta.solana.com \
--keypair ~/.config/solana/id.json \
--asset-class stocks \
--curve flat \
--starting-fee 200 \
--ending-fee 30 \
--migration damm_v2 \
--total-supply 1000000000
# Create a pool
omnicurve create-pool \
--rpc https://api.mainnet-beta.solana.com \
--keypair ~/.config/solana/id.json \
--config <CONFIG_ADDRESS> \
--name "Apple Onchain" \
--symbol "xAAPL" \
--uri "https://arweave.net/metadata..."
# Get pool state
omnicurve pool-state \
--rpc https://api.mainnet-beta.solana.com \
--pool <POOL_ADDRESS>
# Get swap quote
omnicurve quote \
--rpc https://api.mainnet-beta.solana.com \
--pool <POOL_ADDRESS> \
--amount 1000 \
--direction buy
# Subscribe to real-time updates
omnicurve subscribe \
--rpc https://api.mainnet-beta.solana.com \
--pool <POOL_ADDRESS> \
--interval 5000
# List all presets
omnicurve presets
# Export preset to JSON
omnicurve export-preset \
--asset-class stocks \
--output ./stocks-preset.jsonomnicurve/
βββ src/
β βββ index.ts # Main exports
β βββ types/
β β βββ index.ts # Core type definitions
β βββ sdk/
β β βββ index.ts # Main SDK class
β β βββ curves.ts # Curve configuration helpers
β βββ curves/
β β βββ equityStockCurve.ts # Tokenized equity configurations
β β βββ rwaCurve.ts # Real World Asset configurations
β β βββ aiAgentCurve.ts # AI agent compute token configurations
β β βββ memeCurve.ts # Meme/community token configurations
β βββ cli/
β βββ omnicurve.ts # CLI commands
βββ tests/
β βββ curves.test.ts # Curve math tests
βββ .github/
β βββ workflows/ci.yml # CI/CD pipeline
β βββ ISSUE_TEMPLATE/ # Issue templates
β βββ PULL_REQUEST_TEMPLATE.md
β βββ CODEOWNERS
βββ package.json
βββ tsconfig.json
βββ README.md
βββ CHANGELOG.md
βββ CONTRIBUTING.md
βββ LICENSE
βββ SECURITY.md
βββ CODE_OF_CONDUCT.md
Price(t) = Pβ + (Pβ - Pβ) * (t / T)
Linear price discovery matching off-chain equity valuations.
Price(t) = Pβ * e^(kt)
Rapid price growth with configurable decay constant.
Price(t) = Pβ * (1 + Ξ±)^t
Extended discovery with low volatility, Ξ± β 0.01-0.05/day.
Fee(t) = F_start + (F_end - F_start) * (t / T)^Ξ³
Where Ξ³=1 for linear, Ξ³>1 for exponential decay.
- Dynamic Bonding Curve:
dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN - DAMM v2 (CP-AMM):
cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG - DLMM:
LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo
@meteora-ag/dynamic-bonding-curve-sdkv1.5+@meteora-ag/cp-amm-sdkv1.2+@coral-xyz/anchorv0.30+@solana/web3.jsv1.95+
Builders can create, share, and monetize DBC configurations:
// Export a preset
import { OmniCurveSDK, AssetClass } from '@omnicurve/meteora-launchpad';
const config = sdk.buildPresetConfig(AssetClass.STOCKS);
const preset = {
id: 'my-stocks-preset-v1',
creator: wallet.publicKey.toBase58(),
name: 'Conservative Equity Launch',
description: 'Optimized for low-slippage stock tokenization',
category: AssetClass.STOCKS,
curveType: CurveType.FLAT,
config,
price: 0.5, // 0.5 SOL
verified: true,
};
// Publish to marketplace (IPFS + on-chain registry)
// ...# Run all tests
pnpm test
# Test specific curve
pnpm test -- --grep "Equity Stock Curve"
# Test with local validator
solana-test-validator &
pnpm test -- --rpc http://localhost:8899- Meteora DBC Docs: https://docs.meteora.ag/developer-guides/dbc
- Meteora DAMM v2 Docs: https://docs.meteora.ag/developer-guides/damm-v2
- DBC SDK Repo: https://github.com/MeteoraAg/dynamic-bonding-curve-sdk
- DAMM v2 SDK Repo: https://github.com/MeteoraAg/damm-v2-sdk
- Meteora Invent CLI: https://github.com/MeteoraAg/meteora-invent
- Discord Support: https://discord.com/channels/841152225564950528/864859354335412224
We welcome contributions! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
- Fork the repository
- Create a feature branch
- Add tests for new curve types
- Ensure all tests pass
- Submit a PR with detailed description
MIT License - See LICENSE file for details
This software is provided "as is" without warranty. Token launches involve financial risk. Always test on devnet/localnet before mainnet deployment. Audit smart contracts before production use.
Built with β€οΈ for the Meteora ecosystem by OmniCurve Core Team