Main SDK API Overview
Architecture guide for the actual functional Saros Main SDK (@saros-finance/sdk)
This overview explains the architecture and design patterns of the actual Saros Main SDK, which uses functional programming patterns rather than object-oriented classes.
Actual SDK Architecture
Package Structure
Import Patterns
Core Functions (Named Exports)
Service Objects (Default Export)
Combined Import Pattern
API Categories
1. AMM Trading Functions
Purpose: Traditional constant product AMM operations- Pure functional calls
- Individual parameters (not config objects)
- Connection required for each call
- No state management or caching
2. Pool Information Functions
Purpose: Query pool state and metadata- Pool reserve data
- Fee information
- Token pair details
- Current pool state
3. Liquidity Management Functions
Purpose: Add and remove liquidity from pools- Direct function calls
- Wallet required for signing
- Returns transaction signatures
- No position tracking
4. Farm Service (SarosFarmService)
Purpose: Yield farming operations with LP tokens- Service object (not individual functions)
- Complex parameter structure
- Rewards configuration required
- BN (BigNumber) amounts
5. Stake Services (SarosStakeServices)
Purpose: General token staking operations- ✅ Available in SDK
- ⚠️ Exact method signatures need investigation
- 📋 Not governance-related (that’s unimplemented)
Architecture Principles
Functional Programming
The SDK follows functional programming principles:Stateless Operations
Direct Solana Integration
Usage Patterns
Basic Swap Flow
Farm Staking Flow
Error Handling Patterns
Function-Level Error Handling
Service-Level Error Handling
Dependencies and Requirements
Required Dependencies
TypeScript Support
Limitations and Considerations
What’s Available (✅)
- ✅ AMM swap operations (
getSwapAmountSaros,swapSaros) - ✅ Pool information queries (
getPoolInfo) - ✅ Liquidity management (
depositAllTokenTypes,withdrawAllTokenTypes) - ✅ Farm staking (
SarosFarmService.stakePool,SarosFarmService.unStakePool) - ✅ General staking (
SarosStakeServices)
What’s Not Available (❌)
- ❌ Governance functionality (planned but not implemented)
- ❌ Advanced routing or aggregation
- ❌ MEV protection
- ❌ Price feeds or oracles
- ❌ Portfolio management utilities
- ❌ Historical data or analytics
Architecture Constraints
- No State Management: Each function call is independent
- No Configuration: No global SDK configuration or initialization
- Limited Caching: No built-in response caching
- Manual Connection Management: Connection must be passed to each function
- Basic Error Handling: Errors depend on underlying Solana transaction errors
Migration from Fictional APIs
If you’ve seen documentation referencing fictional OOP APIs, here’s how to migrate:❌ Fictional Pattern
✅ Actual Pattern
Navigation
Reference Documentation
- Main SDK Methods → - Complete functional API reference
- Main SDK Types → - TypeScript type definitions
- DLMM API Overview → - Concentrated liquidity architecture
- DLMM Rust API → - High-performance Rust patterns
Getting Started (Tutorials)
- Main SDK Quick Start → - Build your first DeFi app
- First DeFi App Tutorial → - Complete implementation guide
- DeFi Protocols Tutorial → - Multi-feature protocols
Solve Problems (How-To Guides)
- Swaps → - AMM swap implementation
- Liquidity Management → - Pool operations
- Yield Farming → - Farm integration
- Governance & Staking → - DAO participation