EulerSwap: a vault-connected, single-LP AMM
Overview
EulerSwap 2 is a single-LP automated market maker for executing swaps through an Euler account. Instead of depositing assets into a shared standalone AMM pool, the LP connects Euler supply vaults—and, optionally, borrow vaults—to a configurable market-making curve. Supplied assets remain in the LP's Euler positions while the pool uses the same account to settle swaps.
This design brings swap execution and lending positions into one account. The LP may receive swap fees while supplied assets may continue to earn lending interest. When borrowing is configured, the pool may also borrow an output-asset shortfall, subject to vault liquidity, lending relationships, oracle values, caps, account health, and final solvency checks.
Key features
Swap fees alongside lending interest
An LP may receive swap fees while supplied assets continue to earn lending interest. External rewards may also apply when the connected position is eligible. These sources accrue independently and none is guaranteed by deploying a pool.
Rehypothecation and optional borrowing
Rehypothecation here means that supplied assets remain in Euler lending positions and can also support borrowing when the connected vault relationships permit it. EulerSwap uses available supplied inventory first. If the output inventory is insufficient, the pool may borrow the shortfall from its configured borrow vault.
Borrowing can make additional output available beyond the pool's current supplied inventory, but it does not guarantee executable depth or lower slippage. Vault liquidity, caps, LTV relationships, oracle values, account health, and final solvency checks can limit or prevent it. Incoming input repays enabled debt for that asset first; any remainder is deposited into its configured supply vault.
Customizable curves and fees
Authorized parties can update DynamicParams, including equilibrium and minimum reserves, directional prices and concentration, directional fees, expiration, and optional swap-hook settings.
Equilibrium is a curve setting rather than an oracle price, external market price, or account NAV target. Concentration changes the curve shape, and its effect depends on token direction, reserves, prices, and trade size. Review quotes and limits in both directions rather than treating one setting as universally preferable.
Single-LP management
Each pool belongs to one Euler account rather than combining liquidity from multiple LPs. The owner controls its configuration directly or through authorized managers. This model supports independently managed and protocol-owned liquidity, while leaving parameter selection, permissions, and ongoing monitoring with the owner and its managers.
The Euler account, vault addresses, and fee recipient are fixed in StaticParams. Changing one of these addresses requires a new installation or deployment.
Mechanics
At a high level, an EulerSwap pool operates as an authorised EVC operator for a selected Euler account:
- The account owner installs the pool as an operator for that account.
- The pool reads the configured vault pair, curve parameters, account inventory, and relevant vault state to quote a swap.
- During execution, input and output amounts are settled through the Euler account and its vaults. Available supplied inventory is used first; if output inventory is insufficient, the pool may borrow the shortfall only when the vault relationships and account health permit it.
- Callback-based swaps can let an integration source the input during execution, but the transaction must still complete settlement and satisfy the pool's invariant and EVC/vault checks.
- Interest, price changes, oracle state, and borrowing can change the account's health after deployment. A pool configuration does not remove liquidation or bad-debt risk.
The exact calls and mutable fields differ by EulerSwap generation. For EulerSwap 2 interfaces and deployment details, use versioned source and current deployment addresses rather than older interface screenshots.
Comparison with standalone AMMs
EulerSwap combines an AMM curve with an Euler account. This changes where liquidity sits and which risks matter; it does not make the position universally more capital-efficient or safer.
| Dimension | EulerSwap | Standalone AMM, generally |
|---|---|---|
| Asset location | Assets remain in vaults associated with the provider's Euler account | Assets are deposited into the AMM's pool contracts |
| Available output | Can use supplied inventory and, when configured and healthy, borrowed output | Normally limited to assets already held by the pool |
| Lending interaction | Supplied balances may earn vault interest; borrowed balances accrue interest | Lending requires a separate integration or strategy |
| Account risk | Includes vault, oracle, borrowing, health, liquidation, and collateral-relationship risk | Primarily pool inventory, curve, token, oracle/integration, and contract risk |
| Curve configuration | Supports directional concentration, equilibrium, and fee parameters according to the deployed generation | Depends on the AMM design and pool type |
| Position boundary | The pool acts through a selected EVC account under its authorisation | Ownership is commonly represented by LP shares or a position NFT |
Compare exact deployed implementations, fee paths, oracle assumptions, and transaction simulations. Category labels are not substitutes for contract-level review.
JIT liquidity, callbacks, and hooks
Just-in-time (JIT) liquidity means borrowing an output-asset shortfall during swap execution when a borrow vault is configured and the lending checks permit it. Supplied inventory is used first.
A flash swap is a separate callback-style flow. Callback execution and JIT vault borrowing are distinct mechanisms.
A pool can also configure a swap hook. Integrators should inspect the hook and account for any conditions it adds to execution or reconfiguration.
Risk considerations
An EulerSwap LP position can include supplied inventory, debt, and AMM exposure. Outcomes depend on market direction, inventory, borrowing rates, liquidations, curve settings, fees, rewards, oracles, vault liquidity, managers, and hooks. Account health is an important risk signal, not a guarantee against loss.
See LP considerations before configuring a pool.
Integration checks
Before submitting a swap:
- confirm the EulerSwap version and pool address;
- inspect fixed and current dynamic parameters, managers, hook, expiration, and connected vaults;
- obtain a quote and limits through supported EulerSwap 2 interfaces such as
computeQuoteandgetLimits; - apply an execution bound; and
- account for reconfiguration, inventory changes, lending constraints, oracle movement, hook behavior, and slippage between quote and execution.
Direct EulerSwap 2 calls and periphery or Uniswap v4-hook routes are separate integration paths. Measure gas and execution behavior for the exact version, network, pool, and route used.