Skip to main content

Method Signature

optimizer.optimize(params: OptimizeParams): Promise<OptimizeResponse>

Description

Calculates the optimal allocation of capital across DeFi lending protocols to maximize APR while respecting constraints.

Parameters

chainId
Chain
required
Chain to optimize for (Base or Arbitrum).
total_capital
string
required
Total capital to allocate (bigint as string, in token’s smallest unit).
token_address
Address
required
Token to optimize (e.g., USDC address).
current_allocations
Record<string, string>
required
Current distribution across protocols.
protocols
string[]
required
Protocols to consider.
constraints
ConstraintConfig[]
Optional constraints.

Return Value

optimization_result
OptimizationResult
Optimal allocations, APR improvement, and gas costs.
action_plan
ActionDetail[]
Step-by-step rebalancing actions.
calldata
CalldataInfo[]
Execution-ready transaction data.

Example

const result = await giza.optimizer.optimize({
  chainId: Chain.BASE,
  total_capital: "1000000000",
  token_address: USDC_ADDRESS,
  current_allocations: {
    aave: "500000000",
    compound: "500000000"
  },
  protocols: ["aave", "compound", "moonwell"],
});

console.log(`APR improvement: +${result.optimization_result.apr_improvement}%`);
console.log('Optimal allocation:', result.optimization_result.allocations);
See Optimizer Concept for detailed information.