Skip to main content

Basket Execution

Basket execution lets a trade receive value across multiple assets.

A pairwise trade has one pay asset and one receive asset:

USDC -> USDT

A basket trade has one pay asset and multiple receive assets:

USDC -> 60% USDT + 40% ETH

The receive-side value flow is split according to allocation.

Why it matters

For a one-to-one swap, low-impact capacity is often constrained by the receive asset scale.

low-impact capacity ≈ 50% × receive asset scale

For a one-to-many swap, capacity can draw from multiple receive assets.

basket low-impact capacity ≈ 50% × sum(receive asset scales)

The pay side also contributes a constraint:

capacity ≈ 50% × min(pay-side scale, sum(receive-side scales))

Example

Assume a pool has:

USDC scale = $4,000
USDT scale = $2,000
ETH scale = $2,000

A one-to-one trade:

USDC -> USDT

has roughly:

50% × $2,000 = $1,000

of low-impact receive capacity.

A basket trade:

USDC -> 50% USDT + 50% ETH

can use:

50% × ($2,000 + $2,000) = $2,000

of receive-side capacity.

The pay side has $4,000 of scale, so a $2,000 pay amount also sits near the same low-impact region.

Execution primitive

Multiswap routes value across assets. This creates portfolio-level execution for treasuries, index construction, RWA baskets, liquidations, stablecoin baskets, and aggregators.