Skip to main content
Overview of Orca Whirlpools SDK suite Orca provides a range of SDKs that cater to different levels of development needs for interacting with the Whirlpool Program on Solana. Whether you are managing liquidity, building applications that require pool infrastructure, or building automation tools that interact with the program, our SDKs cover a spectrum of functionality from low-level granular control to high-level abstractions. What follows is an overview of our SDK suite, distinguishing between the various layers of the SDKs, and explaining their intended purposes and relationships.

1. High-Level SDKs

The High-Level SDKs are our top recommendation for anyone who wants to integrate with the Whirlpool Program. These SDKs abstract many of the underlying complexities, such as tick array management, and makes managing pools and positions, and executing swaps much simpler. It is suitable for developers who need efficient, high-level functionalities and want to minimize manual configuration and management.
  • Rust: orca_whirlpools
    • Compatible with Solana SDK versions ^3.
  • TypeScript Kit: @orca-so/whirlpools
    • Compatible with Solana Kit
  • Typescript Legacy: @orca-so/whirlpools-sdk
    • Compatible with Solana Web3.js. Despite being called “Legacy”, this class-based SDK remains a reliable choice for integrating with projects that use Solana Web3.js. It offers foundational tools for interacting with Orca’s Whirlpool Program and includes utilities from @orca-so/common-sdk.

2. Core SDKs

The Core SDKs provide essential utilities for math operations and quotes, required for working with liquidity pools. These libraries focus on calculations such as determining position status, price conversions, and computing quotes on adjusting liquidity and swaps. It is written in Rust but has been compiled to WebAssembly (Wasm) for easy integration into TypeScript projects.
  • Rust: orca_whirlpools_core
  • TypeScript Kit: @orca-so/whirlpools-core
  • TypeScript Legacy: @orca-so/whirlpools-sdk
    • The Legacy SDK has separate utility classes for certain math operations such as PoolUtil, TickUtil, TickArrayUtil, and SwapUtils. For quotes, there are separate functions exported, such as decreaseLiquidityQuoteByLiquidity, increaseLiquidityQuoteByInputToken, swapQuoteByInputToken, collectFeesQuote, collectRewardsQuote, and more. Check out the reference docs in the navbor for more details.

3. Low-Level SDKs

This SDK provides direct program interactions and is designed for developers who need complete, low-level control over Whirlpool operations. It covers direct access to Solana accounts, instructions, and transactions.
  • Rust: orca_whirlpools_client
    • Compatible with anchor versions >=0.31.
    • Compatible with solana-program versions ^3
  • TypeScript Kit: @orca-so/whirlpools-client
    • Compatible with Solana Kit
  • Typescript Legacy: @orca-so/whirlpools-sdk
    • The Legacy SDK offers the WhirlpoolIx class which enables you to interface directly with the instructions of the Whirlpool Program.