# Supported Protocols Vybe integrates directly with major Solana DEXs—bypassing aggregator overhead for faster, cheaper swaps. Each protocol has different characteristics: concentrated liquidity pools offer tight spreads, bonding curves handle new token launches, and specialized protocols like Sanctum focus on liquid staking. ## Why Direct Integrations Matter When Vybe calls a DEX directly instead of through an aggregator: * **Fewer instructions** = smaller transaction size * **No intermediary accounts** = no rent overhead * **Direct fee handling** = cleaner execution * **Faster confirmation** = better UX The trade-off: direct integrations cover fewer token pairs than aggregators. That's why Vybe falls back to Titan/Jupiter for exotic routes. Understanding which protocols are available helps you build better routing logic and debug swap issues. *** ## Integrated Protocols | Protocol | Type | Use Case | Parameter Value | | --------------------- | ---------------------- | ----------------------------- | ------------------- | | **Raydium AMM V4** | Traditional AMM | Major pairs, high liquidity | `RAYDIUM_AMM_V4` | | **Raydium CPMM** | Constant Product | Stable pairs | `RAYDIUM_CPMM` | | **Raydium CLMM** | Concentrated Liquidity | Best rates, tight spreads | `RAYDIUM_CLMM` | | **Raydium LaunchLab** | Bonding Curve | New token launches | `RAYDIUM_LAUNCHLAB` | | **Meteora DLMM** | Dynamic Liquidity | Adaptive liquidity | `METEORA_DLMM` | | **Meteora DBC** | Dynamic Bonding Curve | Token launches | `METEORA_DBC` | | **Meteora DAMM2** | Dynamic AMM V2 | General swaps | `METEORA_DAMM2` | | **Pumpfun** | Bonding Curve | Memecoin launches | `PUMPFUN` | | **Pumpswap** | AMM | Post-migration Pumpfun tokens | `PUMPSWAP` | | **Sanctum** | LST Router | Liquid staking tokens | `SANCTUM` | *** ## Protocol Deep Dive ### Raydium CLMM (Concentrated Liquidity) **Best for:** Major token pairs with high liquidity Concentrated liquidity pools offer: * Tighter spreads than traditional AMMs * Better capital efficiency * Lower slippage for large trades ```bash # Automatic CLMM routing curl -X POST "https://api.vybenetwork.com/trading/swap" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "wallet": "...", "amount": 10, "inputMint": "So11111111111111111111111111111111111111112", "outputMint": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "router": "vybe" }' ``` ### Pumpfun & Pumpswap **Best for:** Memecoin trading * **Pumpfun**: Bonding curve for tokens before graduation * **Pumpswap**: AMM for tokens after they graduate to a full pool Vybe automatically detects whether a token is on the bonding curve or has migrated. ### Meteora **Best for:** Dynamic liquidity and token launches Meteora offers multiple pool types: * **DLMM**: Dynamic liquidity market maker * **DBC**: Dynamic bonding curves for launches * **DAMM2**: General-purpose AMM ### Sanctum **Best for:** Liquid staking token swaps Sanctum specializes in LST-to-LST swaps (mSOL ↔ jitoSOL ↔ bSOL, etc.) with minimal slippage. *** ## Force a Specific Protocol Override automatic routing when you need control: ```bash curl -X POST "https://api.vybenetwork.com/trading/swap" \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "wallet": "YourWallet", "amount": 0.1, "inputMint": "So11111111111111111111111111111111111111112", "outputMint": "TokenMintHere", "protocol": "PUMPFUN", "pool": "PoolAddressHere", "router": "vybe" }' ``` ### Parameters for Forced Routing | Parameter | Description | | ---------- | -------------------------------------------- | | `protocol` | Protocol identifier (e.g., `"RAYDIUM_CLMM"`) | | `pool` | Specific pool address to use | Both are optional. Use `protocol` alone to let Vybe find the best pool on that protocol, or specify both for exact routing. *** ## When to Force a Protocol | Scenario | Recommendation | | -------------------------- | --------------------------------- | | **Testing specific pools** | Use `protocol` + `pool` | | **Avoiding certain DEXs** | Force your preferred protocol | | **Comparing execution** | Test each protocol separately | | **Known better liquidity** | Force the pool you know has depth | | **Debugging route issues** | Isolate to specific protocol | *** ## Protocol Selection Example ```javascript async function swapWithProtocol(wallet, inputMint, outputMint, amount, protocol = null) { const params = { wallet, amount, inputMint, outputMint, router: 'vybe', slippage: 2 }; // Optionally force a specific protocol if (protocol) { params.protocol = protocol; } const response = await fetch('https://api.vybenetwork.com/trading/swap', { method: 'POST', headers: { 'X-API-Key': API_KEY, 'Content-Type': 'application/json' }, body: JSON.stringify(params) }); const result = await response.json(); console.log(`Routed via: ${result.protocol} @ ${result.poolAddress}`); return result; } // Examples await swapWithProtocol(wallet, SOL, USDC, 1); // Auto-route await swapWithProtocol(wallet, SOL, USDC, 1, 'RAYDIUM_CLMM'); // Force CLMM await swapWithProtocol(wallet, SOL, BONK, 1, 'PUMPSWAP'); // Force Pumpswap ``` *** ## Fallback Behavior When Vybe Router can't find a direct route, it falls back in order: ``` 1. vybe (direct DEX calls) ↓ (if no route) 2. titan (aggregator) ↓ (if no route) 3. jupiter (aggregator) ``` ### Disable Fallback To ensure only direct integrations are used: ```json { "router": "vybe", "vybeOnly": true } ``` This will fail if no direct route exists, rather than falling back to an aggregator. *** ## Protocol Support Matrix | Token Type | Typical Protocol | | --------------------------- | -------------------------- | | SOL ↔ USDC/USDT | Raydium CLMM | | Major tokens | Raydium CLMM, Meteora DLMM | | Memecoins (pre-graduation) | Pumpfun | | Memecoins (post-graduation) | Pumpswap, Raydium | | LSTs (mSOL, jitoSOL, etc.) | Sanctum | | New token launches | LaunchLab, Meteora DBC | *** ## Protocol Characteristics ### Raydium AMM V4 * Traditional constant-product AMM. Best for established token pairs with deep liquidity. ### Raydium CPMM * Newer constant-product implementation with improved efficiency. ### Raydium CLMM * Concentrated liquidity like Uniswap V3. LPs provide liquidity in specific price ranges for higher capital efficiency. ### Raydium LaunchLab * Bonding curve for new token launches. Price increases as more tokens are bought. ### Meteora DLMM * Dynamic liquidity market maker with adaptive fee tiers based on volatility. ### Meteora DBC * Dynamic bonding curve for token launches with automatic graduation to AMM. ### Meteora DAMM2 * Latest dynamic AMM with improved capital efficiency. ### Pumpfun * Popular bonding curve platform for memecoin launches. Tokens graduate to Raydium. ### Pumpswap * AMM for tokens that graduated from Pumpfun bonding curves. ### Sanctum * Specialized for liquid staking token (LST) swaps. Enables efficient swaps between different LSTs. *** ## Protocol Program IDs | Protocol | Type | Program ID | | --------------------- | ---------------------- | ---------------------------------------------- | | **Raydium AMM V4** | AMM | `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8` | | **Raydium CPMM** | Constant Product | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` | | **Raydium CLMM** | Concentrated Liquidity | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` | | **Raydium LaunchLab** | Bonding Curve | `LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj` | | **Meteora DLMM** | Dynamic Liquidity | `LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo` | | **Meteora DBC** | Dynamic Bonding Curve | `dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN` | | **Meteora DAMM2** | Dynamic AMM V2 | `Eo7WjKq67rjJQSZxS6z3YkapzY3eMj6Xy8X5EQVn5UaB` | | **Pumpfun** | Bonding Curve | `6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P` | | **Pumpswap** | AMM | `pumpswapM6JY4m5GTpZe5qSqAMRBqGpz1zBRgdQ8cur` | | **Sanctum** | LST Swaps | `5ocnV1qiCgaQR8Jb8xWnVbApfaygJ8tNoZfgPwsgx9kx` | *** ## Next Steps * [Build Transaction](./build-transaction.md) - Execute on specific protocols * [Slippage & Fees](./slippage-fees.md) - Protocol-specific slippage