Skip to main content
This recipe builds a server-side rebalancer that programmatically moves treasury USDC between chains based on a threshold (e.g. utilization, yield differential, opportunity).

When to use

  • Multi-chain protocols managing distributed treasury
  • Yield managers chasing the highest opportunity across chains
  • Operational treasuries that want to remove manual rebalancing

1. Define the trigger

2. Get a quote for the rebalance

A treasury rebalance is a simple transfer between two of your wallets. Use the V3 quote API with the source treasury as funder and the destination treasury as recipient.

3. Approve, publish, fund

Approve the reward token to quote.data.contracts.sourcePortal, then call publishAndFund(destinationChainID, encodedRoute, reward, false), same exact pattern as Sending USDC across chains.

4. Run on a schedule

You’ve successfully built an atomic, auditable cross-chain rebalancer.