AMM Trading Methods
getSwapAmountSaros(connection, fromMint, toMint, fromAmount, slippage, poolParams): Promise<SwapEstimate>
Gets a swap quote from AMM pools using the actual Saros SDK functional API.
Parameters:
connection(Connection) - Solana RPC connectionfromMint(string) - Source token mint addresstoMint(string) - Destination token mint addressfromAmount(number) - Input amount in token decimalsslippage(number) - Slippage tolerance (0.5 = 0.5%)poolParams(object) - Pool configuration parameters
Promise<SwapEstimate>
amountOut(number) - Expected output amountpriceImpact(number) - Price impact percentage (optional)fee(number) - Transaction fees (optional)
swapSaros(connection, wallet, fromMint, toMint, fromAmount, minAmountOut, slippage): Promise<SwapResult>
Executes a swap transaction using the actual Saros SDK functional API.
Parameters:
connection(Connection) - Solana RPC connectionwallet(Wallet) - User wallet for signing transactionsfromMint(string) - Source token mint addresstoMint(string) - Destination token mint addressfromAmount(number) - Input amount in token decimalsminAmountOut(number) - Minimum acceptable output amountslippage(number) - Slippage tolerance
Promise<SwapResult>
signature(string) - Transaction signature- Additional swap result data
Yield Farming Methods
SarosFarmService.stakePool(...params): Promise<StakeResult>
Stakes tokens in a yield farming pool using the actual SDK API.
Parameters:
connection(Connection) - Solana RPC connectionpayerAccount- Payer account for transaction feesfarmAddress(PublicKey) - Farm pool addressamount(BN) - Amount to stake as BNsarosFarmAddress(PublicKey) - Saros farm program addressrewardsArray(array) - Complex rewards configurationlpTokenAddress(PublicKey) - LP token mint address
SarosFarmService.unStakePool(...params): Promise<UnstakeResult>
Unstakes tokens from a yield farming pool using the actual SDK API.
Parameters:
- Similar to
stakePoolbut for unstaking operations - Exact parameter structure requires examining SDK implementation
Staking Methods
SarosStakeServices Methods
The Main SDK provides staking functionality through the SarosStakeServices module.
Example:
Governance Methods
Next: See Types Reference for complete type definitions.
getPoolInfo(connection, poolAddress): Promise<PoolInfo>
Retrieves information about an AMM pool using the actual SDK API.
Parameters:
connection(Connection) - Solana RPC connectionpoolAddress(string | PublicKey) - AMM pool address to query
Promise<PoolInfo>
- Pool information structure (exact format determined by SDK implementation)
Liquidity Management Methods
depositAllTokenTypes(connection, wallet, poolAddress, amounts): Promise<DepositResult>
Deposits liquidity to an AMM pool.
Parameters:
connection(Connection) - Solana RPC connectionwallet(Wallet) - User walletpoolAddress- Pool addressamounts- Token amounts to deposit
withdrawAllTokenTypes(connection, wallet, poolAddress, lpAmount): Promise<WithdrawResult>
Withdraws liquidity from an AMM pool.
Parameters:
connection(Connection) - Solana RPC connectionwallet(Wallet) - User walletpoolAddress- Pool addresslpAmount- LP token amount to withdraw
Governance Methods
getGovernanceInfo(): Promise<GovernanceInfo>
Retrieves overall governance system information.
Returns: Promise<GovernanceInfo>
governanceToken(TokenInfo) - Token used for governancetotalSupply(string) - Total governance token supplycirculatingSupply(string) - Circulating governance tokenstotalStaked(string) - Total tokens staked in governanceactiveProposals(number) - Number of active proposalsvotingPower(string) - Total voting power in system
getProposals(params?: GetProposalsParams): Promise<Proposal[]>
Retrieves governance proposals.
Parameters:
params.status(ProposalStatus, optional) - Filter by proposal statusparams.limit(number, optional) - Maximum proposals to returnparams.offset(number, optional) - Pagination offset
Promise<Proposal[]>
- Array of governance proposals
getProposalDetails(proposalId: string): Promise<ProposalDetails>
Gets detailed information about a specific proposal.
Parameters:
proposalId(string) - Proposal identifier
Promise<ProposalDetails>
id(string) - Proposal IDtitle(string) - Proposal titledescription(string) - Detailed descriptionproposer(string) - Proposer wallet addressstatus(ProposalStatus) - Current statusvotingOptions(VotingOption[]) - Available voting choicesvotes(VoteBreakdown) - Current vote talliesstartTime(number) - Voting start timestampendTime(number) - Voting end timestampexecutionInfo(ExecutionInfo) - Execution details if passed
vote(params: VoteParams): Promise<VoteResult>
Casts a vote on a governance proposal.
Parameters:
params.proposalId(string) - Proposal to vote onparams.choice(VoteChoice) - Voting choice (‘yes’, ‘no’, ‘abstain’)params.votingPower(string) - Amount of voting power to useparams.wallet(Wallet) - Connected wallet
Promise<VoteResult>
signature(string) - Transaction signatureproposalId(string) - Proposal voted onchoice(VoteChoice) - Vote castvotingPower(string) - Voting power usedtotalVotes(VoteBreakdown) - Updated vote tallies
createProposal(params: CreateProposalParams): Promise<CreateProposalResult>
Creates a new governance proposal.
Parameters:
params.title(string) - Proposal titleparams.description(string) - Detailed descriptionparams.actions(ProposalAction[]) - Actions to execute if passedparams.votingPeriod(number) - Voting duration in hoursparams.wallet(Wallet) - Connected wallet (must meet requirements)
Promise<CreateProposalResult>
signature(string) - Transaction signatureproposalId(string) - Generated proposal IDstartTime(number) - Voting start timeendTime(number) - Voting end time
delegateVotes(params: DelegateParams): Promise<DelegateResult>
Delegates voting power to another address.
Parameters:
params.delegate(string) - Address to delegate toparams.amount(string) - Amount of tokens to delegateparams.wallet(Wallet) - Connected wallet
Promise<DelegateResult>
signature(string) - Transaction signaturedelegatedAmount(string) - Amount delegateddelegate(string) - Delegate addressnewVotingPower(string) - Remaining voting power
getUserGovernanceInfo(walletAddress: string): Promise<UserGovernanceInfo>
Gets governance information for a specific user.
Parameters:
walletAddress(string) - User wallet address
Promise<UserGovernanceInfo>
tokenBalance(string) - Governance token balancestakedAmount(string) - Amount staked in governancevotingPower(string) - Current voting powerdelegatedTo(string) - Address votes are delegated to (if any)delegatedFrom(DelegationInfo[]) - Delegations receivedproposalsVoted(number) - Number of proposals voted onactiveVotes(ActiveVote[]) - Current active votes
Available SDK Functions Summary
The Main SDK (@saros-finance/sdk) exports the following actual functions:
Core AMM Functions
getSwapAmountSaros()- Get swap quotesswapSaros()- Execute swapsgetPoolInfo()- Get pool informationdepositAllTokenTypes()- Add liquiditywithdrawAllTokenTypes()- Remove liquidity
Service Modules
SarosFarmService.stakePool()- Stake in farmsSarosFarmService.unStakePool()- Unstake from farmsSarosStakeServices- Staking functionality
API Pattern
The SDK uses functional programming patterns, not object-oriented classes. All functions require aConnection parameter and use individual arguments rather than config objects.
Example Integration:
Navigation
Reference Documentation
- Main SDK Types → - Complete type definitions and interfaces
- Main SDK API Overview → - SDK architecture and design patterns
- DLMM TypeScript Methods → - Concentrated liquidity API reference
- DLMM Rust Methods → - High-performance Rust API reference
Getting Started (Tutorials)
- Main SDK Quick Start → - Build your first complete DeFi app
- First DeFi App Tutorial → - Full protocol implementation
- DeFi Protocols Tutorial → - AMM, farming, and governance
Solve Problems (How-To Guides)
- Swaps → - Traditional AMM swap implementation
- Liquidity Management → - AMM liquidity operations
- Yield Farming → - Farming pool integration
- Governance & Staking → - DAO participation
Understanding Concepts (Explanation)
- Choose Your SDK → - Strategic SDK selection guide
- Competitive Analysis → - Saros vs other protocols
- DeFi Protocol Design → - Traditional AMM concepts