# Multi-hop routes: why the split derivation does not transfer, and how the floors compose

> Canonical: https://blazephoenix.xyz/learn/multihop-composition-limits
> License: CC BY 4.0 (attribution + link) · © 2026 BlazePhoenix
> Updated: 2026-08-13



The closed-form split derivation covers one order divided among venues trading the same pair. A route that goes through an intermediate token is a different problem — a composition, where one hop's output is the next hop's input — and the derivation says so explicitly rather than quietly extending itself. This article is what can and cannot be said about the composition, stated at the strength each part supports.

The deployed topology is exactly split-then-compose: a sequence of hops, each hop containing an internal split across venues for that pair. There are no splits that cross hops — no route that sums A-to-B-to-C in parallel with A-to-D-to-C. And in practice the depth is two: the solver constructs at most two hops. Everything below is about that shape.

## What survives: concavity of the composition

Let f be the first hop's aggregate output as a function of its input and g the second hop's. The composition is g(f(x)). If both are increasing and concave, so is the composition, and the proof is two lines of the chain rule: the first derivative is a product of two positive terms, and the second derivative is a sum of two non-positive terms — one carrying g'' against a squared factor, the other carrying f'' scaled by the positive g'.

Monotonicity is doing real work in that argument and is not decoration. If g' could be negative, the second term flips sign and the conclusion fails. A venue whose output is not monotone in its input — which some hook-extensible designs permit — breaks the composition result, and any route through such a venue inherits none of it.

So a two-hop objective is concave in the input and the reasoning behind the single-pair result carries over to that extent: for a fixed topology and a fixed set of venues, there is one optimum and no local maxima to search over.

```
h(x) = g(f(x)),   f,g increasing and concave

h'(x)  = g'(f(x)) * f'(x)                              > 0
h''(x) = g''(f(x)) * f'(x)^2  +  g'(f(x)) * f''(x)     <= 0
         \____ <= 0 ____/        \____ <= 0 ____/

both terms need g' >= 0.  A non-monotone venue breaks the second one.
```

## What does not survive: the choice of topology

The choice between the direct path and a path through one of the available intermediates is a maximum over separate concave problems, and a maximum of concave functions is not concave. The true optimum is an upper envelope the implementation does not compute — it evaluates each topology and takes the best, which is a correct procedure over the enumerated set and says nothing about the set it did not enumerate.

Two further things break it. Add a bound on the number of legs and the selection becomes combinatorial rather than convex, for the same reason the per-leg gas gate is a mixed-integer problem rather than a convex one. And the protocol fee's clamps break the concavity of the net objective even where the gross one holds — the user's objective is the net amount, and the function that maps gross to net is not smooth where a clamp binds.

None of this makes the routing wrong. It makes the word "optimal" unavailable for multi-hop routes, and we would rather retire the word than qualify it into meaninglessness. The honest statement is: within an enumerated set of topologies, over a candidate set curated upstream, with a fixed leg allocation, the implementation picks the best it evaluated.

## Rescaling instead of re-planning, and why the error is one-sided

Hops are coupled by measured balance rather than by a passed value. The second hop does not read a number the first hop reported; it reads what the router actually holds of the intermediate token. That single decision is what lets fee-on-transfer tokens and partial fills survive the composition, because there is no declared amount available to be wrong.

When the amount arriving at the second hop differs from what the first hop promised, the protocol rescales the second hop's plan rather than re-planning it: the proportions between the second hop's legs are frozen from the plan and multiplied by the ratio of actual arrival to planned arrival. The quote and the impact are recomputed on-chain over the rescaled amounts — which feeds the floor and the fee base — but nothing is reallocated.

The direction of that approximation is provable and it runs the safe way. Write the rescaled outcome as the sum of each venue's output at its frozen share of the actual arrival, and the re-planned outcome as the maximum over all allocations of that arrival. The second is a maximum over a set that contains the first, so the rescaled outcome is a lower bound on the re-plan, with equality exactly when the arrival matches the plan. The cheap operation is therefore conservative rather than merely cheaper, and the loss grows monotonically with the divergence between planned and actual arrival. It is an optimality loss, not a safety risk.

> equation: G2(a)=&#x2211;vfv(&#x3C0;va)&#x2264;max&#x2211;xv=a&#x2211;vfv(xv)=F2(a) — Rescaling with frozen proportions never beats a re-plan, and equals it exactly when the arrival matches the plan. The inequality is trivial — the left side is one feasible point of the right side's maximisation — which is why it is dependable.

## The intermediates are curated, and one asymmetry is permanent

Intermediate tokens are not discovered. There is a short administrator-set list, and the route planner considers only the direct path and paths through those intermediates. This is a deliberate safety choice — an arbitrary intermediate is an arbitrary token in the middle of a user's trade — and it is also a trust assumption that belongs in the list of things a user must trust. Every multi-hop optimality statement the protocol can make is at most optimality conditional on that curation.

One asymmetry inside it survives the thing that is supposed to end trust: adding an intermediate remains possible after control is renounced, while removing one does not. An intermediate added after renunciation is therefore permanent. That is the sharpest edge on the one-way door, and anyone repeating the phrase "fully renounced" about us should know which door stays open.

The curation also reaches further than topology. Being an intermediate contributes to a venue's selection standing, so the curated list biases the split inside a hop and not only the choice of route — and the same list is the admission root for the newer venue family's claim path. A curated set that only grows, feeding a ranking that truncates, is a combination worth watching rather than a footnote.

## How the floors compose, and the sentence to read twice

The protocol's output floor is applied once, at the end, never per hop. Its rate is derived from a base reduced by an allowance per leg and by measured price impact, clamped so it can never fall below 80%. The amount it is applied to is the final hop's own on-chain quote, taken at the amount that actually arrived there.

Read that carefully, because it is weaker than it sounds. If the first hop delivers far less than planned, the anchor shrinks along with the loss, and the floor is then computed against the diminished amount — so it can pass while the user receives a fraction of what they were quoted end to end. The eighty-per-cent guarantee is a statement about the execution quality of the last hop, not about the route.

There is a further divergence between the planner's and the executor's notion of impact. The planner averages impact within a hop and then sums across hops; the executor averages over all legs of all hops. For a route of three legs then two, the planner's figure is roughly twice the executor's. Since larger impact loosens the floor, the floor actually enforced is tighter than the plan advertised — conservative in the right direction, but the two numbers are not the same quantity and should never be presented as one.

The only bound anchored to the original input is the floor carried in the route itself, and that one comes from calldata: it can only tighten the others, and a caller may pass it as zero. It is also discarded entirely when a fee-on-transfer token is detected anywhere in the route. The effective minimum is a maximum over the user's minimum, that calldata floor, and the protocol floor — and on a fee-on-transfer path the end-to-end term disappears, leaving the user's own minimum as the only bound anchored to what they put in.

## The case that combines every weakness

An intermediate token that takes a fee on transfer is taxed twice on the same hop boundary — once arriving at the end of the first hop, once leaving at the start of the second. No single-hop model of the route shows this, because neither hop is individually unusual. And because a fee-on-transfer token was seen, the end-to-end floor is dropped and the protocol floor is scaled down by the measured fee factor.

What remains protecting the trade is the user's own minimum, alone. This is the strongest argument in the corpus for the mandatory non-zero minimum, and the clearest case where our own layered guarantees do not layer. Anyone routing through a token with transfer mechanics should set that limit deliberately rather than relying on the protocol's floor to do the work — and should note that the protocol tolerates such tokens as trading assets while the staking side does not tolerate them as the staked asset at all.

One last unflattering detail about topology selection: routes are ranked on output alone. A gas estimate is computed and ignored in the ranking, so a two-hop, five-leg route wins over a direct route by one wei of output while costing materially more to execute. The per-leg gas gate exists inside a hop; it does not arbitrate between topologies. That is a known gap, it is a route-quality issue rather than a safety issue, and it is the kind of thing a reader comparing our derivation against our behaviour deserves to find here rather than in the source.

**Verify it yourself:** reproduce the one-sidedness yourself: pick two venues, a planned arrival and a real arrival, compute the frozen-proportion output and the re-optimised output at the real arrival, and confirm the first never exceeds the second and coincides exactly when the two arrivals are equal

Related: https://blazephoenix.xyz/learn/closed-form-optimal-split · https://blazephoenix.xyz/learn/split-routing-convexity · https://blazephoenix.xyz/learn/quotes-are-statements-about-the-past
