Overview
Confirms and submits a signed liquidity deposit transaction to the Solana blockchain. This endpoint validates the transaction structure comprehensively, verifies the transaction hasn’t been tampered with, and broadcasts it to the network. The transaction transfers tokens from the manager wallet and adds liquidity to a Meteora DAMM v2 pool.Request Parameters
/damm/deposit/build)/damm/deposit/build endpointResponse
tokenA(string): Token A amount depositedtokenB(string): Token B amount depositedliquidityDelta(string): Liquidity amount added
Success Response
Error Responses
400 - Missing Parameters
400 - Missing Parameters
400 - Request Not Found
400 - Request Not Found
400 - Request Expired
400 - Request Expired
400 - Transaction Deserialization Failed
400 - Transaction Deserialization Failed
400 - Missing Blockhash
400 - Missing Blockhash
400 - Expired Blockhash
400 - Expired Blockhash
400 - Fee Payer Mismatch
400 - Fee Payer Mismatch
400 - Manager Not Signed
400 - Manager Not Signed
400 - Invalid Manager Signature
400 - Invalid Manager Signature
400 - Transaction Tampered
400 - Transaction Tampered
400 - Amount Exceeds Expected
400 - Amount Exceeds Expected
400 - Invalid Manager SOL Transfer
400 - Invalid Manager SOL Transfer
500 - Configuration Error
500 - Configuration Error
500 - Transaction Submission Failed
500 - Transaction Submission Failed
Process Flow
This endpoint performs extensive validation before submitting the transaction:Validate Parameters
Retrieve Request Data
Queue Request
Check Request Expiry
Deserialize Transaction
Validate Blockhash
Verify Manager Wallet
Verify Manager Signature
Verify Transaction Integrity
Validate Transaction Structure
Complete Transaction
Submit Transaction
Wait for Confirmation
Cleanup
Security Validations
This endpoint implements the most comprehensive transaction validation to prevent attacks:1. Request Queueing
1. Request Queueing
2. Tampering Detection
2. Tampering Detection
3. Blockhash Validation
3. Blockhash Validation
4. Manager Wallet Verification
4. Manager Wallet Verification
5. Allowed Programs
5. Allowed Programs
- Token Program (TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA)
- Associated Token Program (ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL)
- Compute Budget Program
- Lighthouse Program (for optimization)
- Meteora CP-AMM Program (CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C)
- Meteora DAMM v2 Program (cpamdpZCGKy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG)
- System Program (for native SOL transfers)
6. Token Instruction Validation
6. Token Instruction Validation
- Only Transfer (opcode 3), InitializeAccount (opcode 9), TransferChecked (opcode 12), and SyncNative (opcode 17) are allowed
- SyncNative is required for wrapping SOL to WSOL in native SOL deposits
- Validates transfer authority (manager wallet or LP owner)
- Transfer amounts cannot exceed specified deposit amounts
7. Destination Validation - Manager Transfers
7. Destination Validation - Manager Transfers
- LP owner’s Token A account
- LP owner’s Token B account (or LP owner address for native SOL) Any other destination is rejected.
8. Destination Validation - LP Owner Transfers
8. Destination Validation - LP Owner Transfers
- Pool Token A vault (for adding liquidity)
- Pool Token B vault (for adding liquidity)
- LP owner’s own token accounts
9. System Transfer Validation - Manager
9. System Transfer Validation - Manager
- Only SystemProgram.transfer (instruction type 2) allowed
- Must be from manager wallet to LP owner
- Amount cannot exceed Token B deposit amount
10. System Transfer Validation - LP Owner
10. System Transfer Validation - LP Owner
- LP owner’s WSOL associated token account (required for wrapping SOL)
- LP owner’s own address (for self-transfers needed for account creation)
11. ATA Instruction Validation
11. ATA Instruction Validation
12. Amount Validation
12. Amount Validation
Rate Limiting
This endpoint is subject to rate limiting:- 10 requests per 5-minute window per IP
- Returns HTTP 429 when limit exceeded
Transaction Confirmation
The API attempts to wait for transaction confirmation but continues even if confirmation times out:- Confirmation Commitment: confirmed
- Timeout Handling: Logs warning but returns success
- User Responsibility: Check transaction status on Solana explorer
https://solscan.io/tx/{signature}
Concurrent Request Handling
One-Time Use
After successful submission:- The requestId cannot be reused
- You must create a new request for additional operations
Best Practices
Check Blockhash Age
/damm/deposit/build. Blockhashes expire after ~60 seconds.Do Not Modify Transaction
Handle Expiry
Verify Balances
Monitor Transaction
Handle Queueing
Fund Flow
Understanding the fund flow during deposit:Manager → LP Owner
LP Owner → Pool Vaults
LP Tokens Minted
Related Endpoints
/damm/deposit/build- Create the unsigned deposit transaction/damm/withdraw/build- Build withdrawal transaction
