The route under investigation

Quote-Execution Mismatch in Tempo Multi-Hop Swaps

The question: Can a swap system fail to estimate a route that would execute successfully and therefore be unable to compare it with other routes? We tested route lengths, hook types, input amounts, and liquidity conditions. For certain inputs on cUSD → PathUSD → USDT0, V4Quoter returns no quote even though a fork transaction succeeds when input is prepared first.

cUSD
→
Pool 1Tempo hook
cUSD / PathUSD
→
PathUSD
→
Pool 2Tempo hook
PathUSD / USDT0
→
USDT0

How the two paths diverge

The affected quote simulation can reach the hook before the required input balance is prepared. A funded transaction supplies the input first, then runs the same route.

Quote simulationStops with no quote
  1. 1Start simulating cUSD → PathUSD → USDT0.
  2. 2The first Tempo hook asks PoolManager to transfer cUSD.
  3. !Input is not prepared. The token transfer reverts here.
  4. 4No output amount is returned for route comparison.
Funded executionCan complete
  1. 1Transfer the user's cUSD into PoolManager first.
  2. 2Input is prepared. The hook's transfer succeeds.
  3. 3Run both Tempo conversions through PathUSD.
  4. 4Transfer USDT0 to the recipient.
No quoteThe simulation stopped before returning an amount.
Not a wrong quoteThere is no quoted amount to compare with execution.
Not proof of no liquidityA separately funded execution can still complete.

What we tested

We varied route length, hook placement, input amount, and liquidity to separate possible explanations:

CasesPurposeReported result
01-02: Ordinary pools, one and two hopsIs multi-hop routing itself the cause?Quotes match execution.
03: Two fee hooksDoes the quoter skip custom hooks?Both hooks run; quote matches execution.
04-05: Tempo-style hook first versus lastDoes token availability at the hook matter?The first-hop case fails without prepared input; the last-hop control works.
06-08: Deployed Tempo pools, small inputsDo all real Tempo routes fail?The documented small-input routes work.
09-10: Input above PoolManager's cUSD balanceCan funding order explain a failed quote?V4Quoter fails; funded execution completes.
11: Extremely large inputCan we distinguish this gap from genuine illiquidity?Both quote and execution reject the swap.

Experiment cases

Open a case to see the full path, input and starting balance, quote, funded execution, and interpretation.

Controlled casesCases 01-05
Tempo fork casesCases 06-11

What the evidence supports

For certain multi-hop Tempo routes, the examined UniRoute quote path can fail to prepare the balance required by hook execution. An executable route may therefore have no usable quote for route comparison. A fix must produce both an accurate quote and a compatible funded execution plan.

This dashboard does not claim measured production impact, user loss, or better prices. Those claims require production traffic data and same-block comparisons against other executable routes, including gas.