Reference
Routing
Kavo searches the liquidity that already exists on Robinhood Chain for a quote it can actually execute. It runs no AMM of its own and holds no inventory.
Venues
Kavo quotes each venue through that protocol’s own quoter, then keeps whichever route returns the most output. The venues currently in the registry:
| Venue | Quoting | Execution | Approval |
|---|---|---|---|
| Uniswap v3 | QuoterV2, across the 4 deployed fee tiers plus a WETH hop | SwapRouter02 | ERC-20 |
| Uniswap v4 | V4Quoter | Universal Router | ERC-20, then Permit2 |
| Uniswap v2 | getAmountsOut, direct and via a WETH hop | V2 Router02 | ERC-20 |
The exact addresses are listed on Contracts.
How a route is chosen
Every venue is quoted at your exact input amount, in parallel. Failures are tolerated: a venue that reverts or has no pool simply contributes nothing. The surviving routes are sorted by output and the best one wins.
quoteTrade(request) // every executable route, best output first
findBestRoute(request) // the winner, plus the alternatives it beat
buildSwap(...) // calldata for that routeIf no venue returns a fill, there is no route. Kavo reports that rather than falling back to an oracle price or an estimate.
Uniswap v4 pool discovery
v4 pools are not found by scanning initialisation events, because this chain carries a very large number of spam pools per token and event scanning returns noise. Instead Kavo derives the canonical hookless pool keys deterministically and confirms each one against onchain state before using it, so only pools that genuinely exist are quoted.
Quote fields
| Field | Meaning |
|---|---|
| Route | The venue and pool the quote came from, for example a specific fee tier. |
| Expected output | The amount the quoter says this input returns right now. |
| Minimum received | Expected output reduced by your slippage tolerance. Enforced onchain; the swap reverts below it. |
| Price impact | This fill compared against the marginal price on the same route. It answers how much your own size costs you. |
| Gas estimate | Returned by the quoter where the venue provides one. |
| Transaction status | Submitted, then confirmed or reverted, with a Blockscout link. |
Price impact is measured, not assumed
Impact is computed by comparing your fill against a small probe on the same route rather than against a static pool figure. Comparing a size to itself always yields zero impact, which would make every pool look deep.
The liquidity figure
The liquidity column is measured rather than estimated. It is the largest quote size that still fills inside a fixed price-impact budget, derived from a ladder of live quotes against a small marginal probe. Markets that cannot absorb the smallest rung are labelled Thin.
No invented integrations
Kavo only routes through the venues listed above. If you see a protocol named anywhere in the interface, it is because Kavo quoted it. Nothing else is integrated, and no route is displayed that was not produced by a real quote.