For the complete documentation index, see llms.txt. This page is also available as Markdown.

EVM (V3)

Architecture and deployed contracts for Ekubo Protocol V3 on EVM chains

Ekubo Protocol V3 is the open-source EVM deployment of Ekubo. The source code lives at EkuboProtocol/evm-contracts and is licensed under the Ekubo DAO Shared Revenue License. The authoritative deployment table and ABIs are published with each GitHub release โ€” the tables below reflect release v3.2.0.

Architecture

  • Core is an ownerless, permissionless singleton holding all pools and tokens, using flash accounting and the "till" pattern. All interactions start with lock(); Core calls back into your contract, which performs swaps and position updates and settles net balances at the end. Native ETH is supported directly as address(0) (so ETH is always token0).

  • Pool types โ€” a pool's configuration is packed into a single word (PoolConfig: extension, fee, and pool-type parameters):

    • Concentrated liquidity โ€” tick-spacing-parameterized, as on Starknet

    • Stableswap โ€” liquidity concentrated around a configurable center tick with an amplification factor

    • Full range โ€” a zero-amplification stableswap pool; the cheapest option

  • Fees are a uint64 binary fraction of 2^64 (e.g. 0.3% = 55340232221128654). See Price representation for fee and price encodings.

  • Extensions customize pool behavior at eight lifecycle call points. On EVM, an extension's call points are encoded in the top byte of its own address (extensions are deployed by mining an address with the right bits).

  • Periphery (Positions, Orders, Router, Incentives, ...) is where protocol fees are applied โ€” Core itself takes no fees. The canonical Positions deployment applies a 10% protocol fee to collected swap fees (for the Ekubo DAO) and no withdrawal fee.

For the design rationale, read the V3 whitepaper.

Shared deterministic deployments

These contracts are deployed at the same address on every supported chain (Ethereum, Base, Arbitrum, MegaETH, Monad, Optimism, Ink, Robinhood Chain, Unichain, Polygon, and BNB Smart Chain). Anyone can deploy them to another compatible network with the DeployAll script. Note: chains must support EIP-7939 (CLZ) for the contracts to function.

Core and extensions

Contract
Address (every chain)
Description

0x00000000000014aA86C5d3c41765bb24e11bd701

The singleton AMM: all pools, positions, and token custody

0x5555fF9Ff2757500BF4EE020DcfD0210CFfa41Be

Extension charging extra fees on price-moving swaps, directing that value to LPs

0x517E506700271AEa091b02f42756F5E174Af5230

Extension recording on-chain price history for token pairs (vs native ETH)

0xd47f1B1eDCfEaBb08F6eBd8FC337c27E636C75BA

Time-weighted AMM extension powering DCA orders

0xd4B54d0ca6979Da05F25895E6e269E678ba00f9e

Extension streaming boosted fee rewards to concentrated-liquidity pools

0x948b9C2C99718034954110cB61a6e08e107745f9

Same, for stableswap pools

0xddb1758118F65e13a91497015B8cB26801402761

Permissionless funding of boosted-fee campaigns for specific pools

0xC52D2656cb8C634263E6A15469588beB9C3Bb738

Distributes liquidity incentive campaigns

0xAA166592922C4020cEfA23448054AD070211790a

Wraps non-standard tokens for safe use with Ekubo

0xd26f20001a72a18C002b00e6710000d68700ce00

Legacy v3.1.1 router for MEVCapture pools (superseded by the configurable Router)

Lens (read-only data fetchers)

Contract
Address (every chain)
Description

0xF68F25CA6C817733b7B15a42191AE72A34d56a2B

Pool state, prices, positions, saved balances

0x5a3F0F1dA4Ac0c4b937d5685f330704c8e8303f1

Batched data for computing swap quotes

0xDEFe25E56a7891CC4c0E1401879f3dC81F1Cc4A6

DCA order and TWAMM state

0x69F9eCfa84CF0C41bE9F68b557b07b6b89d71eD0

Incentive campaign state

0xFE0Aa09c1CC2bA299b3AaFA52716bE00f40F1D6d

Oracle price reads for many tokens at once

0x305Cf9A34dCb265522780D1D64544d3f7C450407

Token metadata and balances

0x50DabB063ab0B62a33abf49f1357f0981cec241F

Boosted-fees campaign state

Position and order managers

Deployed on Ethereum, Base, Arbitrum, MegaETH, and Monad. The Positions deployment charges a 10% swap protocol fee for the Ekubo DAO (and no withdrawal fee).

Contract
Address
Description

0x02D9876A21AF7545f8632C3af76eC90b5ad4b66D

ERC-721 manager for liquidity positions (v3.1.1 deployment โ€” remains canonical)

0x3325428adB409c239E88ca472F50b0efe00E98B4

ERC-721 manager for DCA orders (v3.1.1 deployment)

Deployment-specific contracts

Contracts added or reworked in v3.2.0 are configuration-specific and have no universal address โ€” their addresses are per deployment:

  • Ve33, VeToken, Ve33Positions, Ve33Periphery, Ve33EmissionRateScheduler, and Ve33DataFetcher โ€” the Ve33 token-governed liquidity system (each instance is deployed around its own stake token, e.g. STONX on Robinhood Chain)

  • SignedExclusiveSwap โ€” extension for controller-signed EIP-712 swaps (integration guide)

  • Router โ€” configurable router executing Core swaps and forwarding to MEVCapture / Ve33 pools

  • PoolKeyIndex โ€” optional registry for discovering initialized pool keys by pool ID, token, or extension

  • Auctions โ€” on-chain auctions (whitepaper)

  • MintableERC20 โ€” owner-mintable token used by deployments that need one (e.g. a Ve33 stake token)

Audit reports for the EVM contracts are linked on the Audits page.

Last updated

Was this helpful?