Skip to main content

enableSplitting

Enable splitting for the user's account. Controls how funds are distributed across DeFi pools. Requires SIWE authentication.

Signature

enableSplitting(minSplits?: number): Promise<UpdateUserProfileResponse>

Parameters

ParameterTypeRequiredDescription
minSplitsnumberNoMinimum number of pools to split across (default: 1)

Splitting Modes

Smart Splitting (minSplits = 1)

When minSplits is set to 1 (default), you're eligible for smart splitting:

To maximize your returns, we automatically distribute your funds – when beneficial – across multiple DeFi pools. Your funds may not split depending on opportunities.

The system intelligently decides when splitting is advantageous based on current market conditions and opportunities.

Forced Splitting (minSplits > 1)

When minSplits is set to 2, 3, or 4, you enable forced splitting:

Force split your funds across multiple pools for improved risk diversification. Split up to 4 DeFi pools.

This guarantees your funds will always be distributed across the specified minimum number of pools.

Returns

Response indicating success and updated user details

Return Type

interface UpdateUserProfileResponse {
success: boolean;
userId: string;
smartWallet?: string;
chains?: number[];
strategy?: string;
}

Example

await sdk.connectAccount(privateKey, chainId);

// Enable smart splitting (default, minSplits = 1)
const result = await sdk.enableSplitting();
console.log("Smart splitting enabled:", result.success);

// Enable forced splitting across 3 pools minimum
const result2 = await sdk.enableSplitting(3);
console.log("Forced splitting enabled:", result2.success);

// Verify splitting is enabled
const userDetails = await sdk.getUserDetails();
console.log("Splitting:", userDetails.user.splitting); // true
console.log("Min splits:", userDetails.user.minSplits); // 3

Notes

  • User must be authenticated (automatically done via connectAccount())
  • Maximum supported value for minSplits is 4
  • Use disableSplitting() to turn off this feature
  • Use updateMinSplits() to change the number of pools without toggling splitting