Skip to main content
Configure protocol and pool customizations in batch. This provides granular control over which pools to use for each protocol on each chain, enabling advanced yield optimization strategies.

Signature

Parameters

Array of Configurations: Pass an array of CustomizationConfig objects to configure multiple protocol/chain combinations at once.

Returns

Getting Protocol IDs

You can get protocol IDs from two sources:

1. From getUserDetails()

2. From getAvailableProtocols()

getAvailablePools

Get available pools for a protocol:

getSelectedPools

Get currently selected pools for a protocol on a specific chain:

Examples

Basic Pool Configuration

Multi-Chain Configuration

Bulk Configuration

Autoselect Mode

Verify Configuration

View All Customizations

Use Cases

1. Target High-APY Pools

2. Risk Management

3. Chain-Specific Strategies

4. Dynamic Reallocation

Notes

Customization Behavior

  • Each customization creates or updates a record for the (user, protocol, chain) combination
  • Previous customizations for the same combination are overwritten
  • The autoselect flag determines whether the rebalance engine or specific pools are used
  • When autoselect is true, the pools array should be empty

Getting Pool Names

  • Pool names must match exactly as returned by getAvailablePools()
  • Pool names are case-sensitive
  • Invalid pool names will cause the rebalance engine to skip that protocol

Multi-Chain Considerations

  • Configure each chain separately, even for the same protocol
  • A protocol may have different pools available on different chains
  • Always check protocol.chains to see which chains support the protocol

Autoselect vs Manual

  • Autoselect (true): Rebalance engine automatically selects best pools based on APY, TVL, and risk
  • Manual (false): Only the specified pools will be used for that protocol on that chain
  • Recommended: Use autoselect for most protocols, manual for specific high-conviction pools

Batch Operations

  • All customizations in a batch are processed sequentially
  • If one fails, subsequent ones may still succeed
  • No transaction rollback - each customization is independent
  • Use separate calls if you need atomic operations

Performance

  • Fetching available pools is a read operation (no auth required)
  • Batch customization requires authentication
  • Large batches (50+ configurations) may take longer to process