Documentation Index
Fetch the complete documentation index at: https://docs.orca.so/llms.txt
Use this file to discover all available pages before exploring further.
Cross-Program Invocation with Orca Whirlpools
This guide provides an overview of how to integrate the Orca Whirlpools Program into your own on-chain Anchor Programs using Cross-Program Invocation (CPI).🔗 Orca CPI Examples Repository
Overview
The Orca CPI Examples repository offers a comprehensive toolkit for developers looking to integrate with Orca Whirlpools from their own Anchor programs. It includes examples for multiple Anchor versions and client-side implementations.Highlights
- CPI examples for multiple Anchor versions:
- v0.29.0
- v0.30.1
- v0.31.0
- Client-side code for generating instruction data and account information using:
@solana/web3.js@solana/kit
- Specific use case for Launchpad creators who want to graduate tokens from their bonding curve to Orca Whirlpools
Program Implementation Considerations
Solana CLI and Anchor Version Compatibility
Each Anchor version requires a specific Solana CLI version:| Anchor Version | Solana CLI Version |
|---|---|
| v0.29.0 | v1.18.17 |
| v0.30.1 | v1.18.17 |
| v0.31.0 | v2.1.0 |
Important: Solana Program Dependency Patching
For Anchor versions 0.29.0 and 0.30.1, you must patch thesolana-program crate:
-
Why? These Anchor versions rely on
solana-programcrate < v2, while the Orca Whirlpools and Whirlpools SDK pull insolana-program> v2, creating version conflicts. -
Solution: Apply the patch using:
solana-program > v2.
Client Implementations
Solana Kit Client
The@solana/kit client leverages modern Solana SDK features with:
- Automated Anchor client generation using Codama
- Integration with
@orca-so/whirlpoolsSDK for Whirlpools interactions - Test suite using
Bankrunfor simulation without a local validator
Web3.js Client
The classic@solana/web3.js implementation with Anchor provides:
- Integration with Anchor for account management and instruction creation
- Compatibility with the Whirlpools SDK
- Testing framework using Vitest
Important Note on Dependencies
The@orca-so/whirlpools-sdk is dependent on Anchor v0.32.1. For other Anchor versions, the examples include resolutions in the package.json to manage dependency conflicts.
Specific Use Case: Launchpad Integration
For Launchpad creators who want to graduate tokens from their bonding curve to Orca Whirlpools, a detailed implementation guide is available at: Launchpad Integration Guide This guide covers:- How to configure and initialize Splash Pools (full-range CLMM pools)
- Managing token mint ordering and price calculation
- Position NFT ownership and fee collection opportunities
- Complete integration process from bonding curve to Orca Whirlpools
Getting Started
To get started with CPI integration with Orca Whirlpools:- Clone the example repository
- Select the appropriate Anchor version for your project
- Follow the setup instructions in the README
- Explore the specific use cases in the repository
run-tests.sh script that automates all the setup and testing steps, making it easy to get started with CPI integration.