Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.o1.exchange/llms.txt

Use this file to discover all available pages before exploring further.

The router can dispatch legs to the venues below. The DexId value appears in routePlan.routes[].legs[].dex on every quote response, and you can pass any subset of these in the optional allowedDexes field on /quote and /execute to restrict routing.

Constant-product (V2-style)

Single-hop direct-pool swaps via the V2 product formula x × y = k.
DexIdProtocolNotes
UNIV2Uniswap V2Multi-hop fallback also uses this kind.
AERODROME_V2LIKEAerodrome volatile poolsThe V2-style side of Aerodrome (non-stable).
PANCAKE_V2PancakeSwap V2

Concentrated liquidity (V3-style)

Tick-aware pool math.
DexIdProtocolNotes
UNIV3Uniswap V3Direct-pool dispatch for single hop, path-encoded for multi-hop.
PANCAKE_V3PancakeSwap V3
PANCAKE_INFINITY_CLPancakeSwap Infinity Concentrated Liquidity
ALIEN_BASE_V3AlienBase V3
HYDREXHydrexAlgebra Integral family.
QUICKSWAP_V4QuickSwap V4Algebra Integral family.

Universal router (V4-style)

Uniswap V4 is dispatched through the universal-router commands ABI.
DexIdProtocolNotes
UNIV4Uniswap V4Carries an opaque commands byte string and inputs[] array.

Stable and curve-style

DexIdProtocolNotes
AERODROME_CLAerodrome Concentrated LiquidityStable side of Aerodrome.
CURVECurve TwoCrypto-NG (and compatibles)Pool-indexed by i / j.

Proprietary on-chain AMMs

These are direct integrations with project-specific AMMs on Base. All dispatch through a router contract per protocol.
DexIdProtocol
PROPSWAPPropSwap
TESSERATessera
ELFOMOFIElfomofi
LUNARBASELunarBase
FELTIRFeltir

Other on-chain venues

DexIdProtocolNotes
DODO_V2DODO V2Carries pool and baseToken for direction.
WOOFIWooFiRouted through the WooFi router contract.
GYROSCOPE_ECLPGyroscope ECLPElliptic concentrated liquidity.
MAVERICK_V2Maverick V2

Restricting routing

If you want to limit which venues the optimizer considers (e.g. for a benchmarking experiment, or to avoid a specific protocol), pass allowedDexes on /quote or /execute:
{
  "chainId": 8453,
  "tokenIn": "0x...",
  "tokenOut": "0x...",
  "amountIn": "1000000000",
  "slippageBps": 100,
  "allowedDexes": ["UNIV3", "AERODROME_CL", "PANCAKE_V3"]
}
Restricting allowedDexes reduces routing flexibility. Expect worse expectedAmountOut than an unrestricted quote. Use only when you have a clear reason.

What’s NOT supported

Off-chain professional market makers (PMMs) used by some upstream aggregators are not in this list. Bridges, cross-chain venues, and limit-order books are also out of scope; this aggregator is same-chain spot routing on Base.