Quick Start
Initialize SDK
import {
initMainnetAggV2SDK,
initMainnetAggV2SDKWithMultiProviders,
AggProvider
} from '@ferra-labs/aggregator';
// Single provider initialization
const sdk = initMainnetAggV2SDK(
AggProvider.CETUS, // Primary provider
"0xYourSuiAddress" // Sender address
);
// Multi-provider initialization (for best price comparison)
const multiSdk = initMainnetAggV2SDKWithMultiProviders(
[AggProvider.CETUS, AggProvider.FLOWX, AggProvider.BLUEFIN],
"0xYourSuiAddress"
);Get Quote and Execute Swap
API Reference
SDK Initialization
initMainnetAggV2SDK(provider, sender, sdkOptions?)
Initialize SDK with a single provider.
provider
AggProvider
Primary provider (CETUS, FLOWX, BLUEFIN)
sender
string
Sender's Sui address
sdkOptions
Partial<SdkV2Options>
Optional SDK configuration
initMainnetAggV2SDKWithMultiProviders(providers, sender, sdkOptions?)
Initialize SDK with multiple providers for best price discovery.
providers
AggProvider[]
Array of providers to enable
sender
string
Sender's Sui address
sdkOptions
Partial<SdkV2Options>
Optional SDK configuration
SDK Options
AggSwapV2Module
swap(params, slippageBps?)
Execute a swap transaction.
Returns: Promise<Transaction> - Sui transaction ready for signing
swapCustomizable(params, slippageBps?, tx?)
Execute a swap with customizable output handling. Returns both the transaction and output coin for further composition.
Use case: When you need to use the output coin in subsequent transaction steps (e.g., providing liquidity, staking).
swapWithInputCustomizable(params, slippageBps?, tx?)
Execute a swap with both input and output coins customizable. Input coin is passed as TransactionObjectArgument.
Use case: When input coin comes from a previous transaction step.
Transaction Composition Example
Build complex DeFi transactions by chaining swap operations:
Provider Selection Guide
Cetus
Large trades, stable pairs
Deep liquidity, reliable routes
FlowX
DEX aggregation
Multi-hop optimization
Bluefin
Perpetuals, derivatives
Specialized markets
Configuration
Mainnet Configuration
Custom RPC Endpoint
Migration from V1
Key Changes
Internal routing
External provider quotes
Single DEX support
Multi-provider aggregation
FerraAggregatorSDK
FerraAggregatorV2SDK
initMainnetSDK()
initMainnetAggV2SDK()
Migration Steps
Update imports to use V2 SDK
Initialize with provider selection
Fetch quotes from external providers
Pass provider-specific quote data to swap functions
Support
Documentation: docs.ferra.ag
GitHub Issues: Bug reports and feature requests
Discord: Join our developer community
License
MIT License - see LICENSE file for details.
Last updated