← Protocols
Aerodrome
01Description

Base's principal ve(3,3) DEX. Combines Solidly-style stable+volatile pools with Slipstream concentrated-liquidity (Uniswap-v3-fork) pools, all directed by veAERO gauge votes that route emissions to whichever pools voters bribe.

02Best for
  • 01Base-native token swaps
  • 02stable/volatile AMM LPing
  • 03Slipstream concentrated liquidity
  • 04veAERO voting and bribe markets
  • 05protocol liquidity bootstrapping on Base
03Install
  • pnpm add viem wagmi
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_BASE_RPC_URLClientBase mainnet RPC URL used to read Aerodrome pool/router state.
05Prompt snippet
Use Aerodrome for swaps and LPing on Base. For swaps, call the Aerodrome `Router` at `0xcF77a3Ba9A5CA399B7c97c74d54e5b1Beb874E43` using `getAmountsOut(amountIn, routes[])` to quote and `swapExactTokensForTokens(amountIn, amountOutMin, routes[], to, deadline)` to execute, where each `Route` is `{from, to, stable, factory}` (set `stable: true` for sAMM correlated pairs, `false` for vAMM volatile). For concentrated liquidity, use Slipstream's `CLPool` (Uniswap v3 fork) and the Slipstream `NonfungiblePositionManager`. Locking AERO mints a `veAERO` NFT used to vote on `Voter` gauges weekly to direct emissions; bribes are claimed from each pool's `BribeVotingReward`.
06Gotchas
  • Picking the wrong `stable` flag in a Route silently routes through the wrong pool — sAMM and vAMM with the same token pair are distinct pools with very different curves and slippage.
  • veAERO voting is epoch-based (Thursday 00:00 UTC); votes cast in an epoch only count for that epoch's emissions, and rebases/bribes must be claimed before voting again or they roll forward.
  • Slipstream uses a tick-based concentrated-liquidity model, so out-of-range positions earn no fees and require active management — IL on volatile pairs can dwarf emissions if you don't rebalance.
  • Gauge wars: emissions follow votes, so a pool with no votes earns zero AERO regardless of TVL; protocols often pay bribes (via `Voter.notifyRewardAmount` on the BribeVotingReward) to attract veAERO voters.
  • Some pools have no gauge (killed or never added) — check `Voter.gauges(pool)` is non-zero before assuming emissions, otherwise LP earns only swap fees.
  • The token is `AERO` at `0x940181a94A35A4569E4529A3CDfB74e38FD98631` on Base only — there is no canonical Ethereum AERO; bridged variants are not the same asset.
07Alternatives