Skip to main content
Preview the best yield split for an amount before anyone signs anything. Give it an amount, a token, and a chain (or several), and it comes back with the pools it would route into, the blended APY, and ready-to-run transaction calldata for each position.
This is a pure simulation — read-only, no signing, no gas. It only needs your API key, so it’s a great fit for calculators, previews, and “what would I earn” dashboards. Call it as often as you like as the user tweaks their inputs.

Signature

Parameters

params is a single object:

Returns

Chain-keyed simulated positions, plus calldata to actually enter each one.

Return Type

The deposit calldata contains a "<RECEIVER>" placeholder among its parameters. Swap it for the real receiving address (usually the user’s Safe / smart wallet) before you send the transaction.

Good to know

A few behaviors worth knowing before you build against this, confirmed by calling the live API directly:
  • userPositions is additive, not just contextual. If the user already has 1,500inapoolandyousimulatedepositing1,500 in a pool and you simulate depositing 3,000 more, the returned position is sized for the combined 4,500not4,500 — not 3,000. Pass it in whenever you know where the user already is.
  • minSplit divides the amount evenly across that many pools. minSplit: 3 on 5,000returnsthree 5,000 returns three ~1,666.67 positions, each with its own calldata.
  • A chain can come back empty on purpose. If every candidate pool for a chain gets excluded (unstable APY, doesn’t clear the strategy’s risk bar, etc.), that chain’s entry in data is [] and messages[chainId] explains why.
  • An unmatched pools filter isn’t a dead end. The call still returns success: true with an empty array for that chain, and messages[chainId] lists the pools that actually exist for that token/chain/strategy — handy for a “did you mean…” experience.
  • Works for any supported chain/token combination — no special-casing needed for less common pairs.

Examples

Simplest call

Multiple chains, with a minimum split

Accounting for an existing position

Blended APY across a split