← Protocols
DODO
Swap / DEX·Ethereum · BNB Chain · Polygon · Arbitrum · Base · Optimism · Avalanche · Linea · Scroll · Mantle

DODO

01Description

Proactive Market Maker (PMM) DEX. Instead of x*y=k, PMM uses an oracle/market-price anchor `i` and a slippage parameter `k` to concentrate liquidity around the current price, giving CEX-like efficiency for stablepairs and a single-sided LP option for long-tail tokens. Includes the DODO Route hosted aggregator.

02Best for
  • 01stable-pair / pegged-asset trading
  • 02single-sided LPing for long-tail tokens
  • 03PMM market-making for token launches
  • 04aggregated swaps via DODO Route
  • 05cross-chain swaps via DODO bridge
03Install
  • pnpm add @dodoex/api viem
04Environment variables
VariableScopeDescription
NEXT_PUBLIC_DODO_API_KEYClientOptional API key for DODO Route hosted aggregator (api.dodoex.io). Public endpoints work unauthenticated but are rate-limited.
05Prompt snippet
Use DODO for swaps via the DODO Route aggregator (`GET https://api.dodoex.io/route-service/v2/widget/getdodoroute?fromTokenAddress=&toTokenAddress=&fromAmount=&slippage=&userAddr=&chainId=&rpc=`) which returns calldata for the `DODORouteProxy` contract — sign and send the returned `to` + `data` + `value`. For direct PMM pool interaction, use `DVM` (Dynamic Vending Machine, no oracle), `DSP` (DodoStablePool, for pegged pairs), or `DPP` (DodoPrivatePool, owner-controlled with custom `i` and `k`); each pool exposes `querySellBase(amount)` / `querySellQuote(amount)` for quotes and `sellBase(to)` / `sellQuote(to)` for execution after a token transfer.
06Gotchas
  • PMM pricing depends on a price anchor `i` — for DSP/DPP the pool owner sets it, and a stale or manipulated `i` causes large MM losses or arbitrage opportunities; oracle health is the primary risk vector.
  • The slippage factor `k` controls liquidity concentration: `k=0` is a constant-price book (infinite liquidity at `i`, blows up if reserves drain), `k=1` is constant-product; pick `k` based on asset volatility or LPs realize heavy IL.
  • Single-sided LP isn't free: when the pool sells your asset to traders, your inventory becomes the *other* asset — IL is realized as inventory change, not just paper loss like in xy=k.
  • DODO Route returns calldata that targets a specific `DODORouteProxy` per chain; the address rotates across versions — always use the API response's `to`, never hardcode.
  • Token approvals go to a separate `ApproveProxy` (returned by the API as `tokenApproveAddr`), not to the route proxy itself — approving the wrong contract causes a silent revert on swap.
  • Crowdpooling and MineV3 staking contracts have unlock schedules and can lock LP for a fixed window — read the campaign params before depositing.
07Alternatives