Fee Flow
Euler does not currently charge protocol fees. In April 2026, Fee Flow was turned off and Euler protocol fees were set to 0% across live and future deployments. The DAO can reintroduce protocol fees through future governance. See Reduce Euler Protocol Fees to Zero.
Curators and vault operators may still configure separate vault-level fees, such as EVK interest fees or EulerEarn performance fees, where supported by the relevant vault.
Fee Flow is a continuous sequence of Dutch auctions. A FeeFlowController can hold multiple fee assets and has one immutable payment token and payment receiver. For Euler's EUL-denominated deployment, a buyer pays EUL and receives the controller's entire balances of the asset addresses supplied to buy. This is an asset sale for EUL, not an auction in which bidders offer progressively larger amounts.
Mechanics
- The current payment amount starts at the epoch's
initPriceand decreases linearly to zero overepochPeriod. - A caller chooses the asset-address list and receiver, and supplies the current epoch ID, a deadline, and a maximum payment amount.
buytransfers the current payment amount from the caller to the immutablepaymentReceiver, then transfers the controller's full balance of every supplied asset toassetsReceiver.- Settlement immediately starts the next epoch. Its initial price is the settlement payment multiplied by
priceMultiplier, bounded below byminInitPriceand above by the contract maximum.
The contract does not value its inventory, determine when inventory is worth the price, or require a bid contest. Buyers make that assessment offchain. If an asset is omitted from the supplied list, it remains in the controller. After an epoch has elapsed the computed payment can be zero, subject to transaction ordering and the caller's safeguards.
feeFlow.buy(
assets, // assets to sweep from the controller
assetsReceiver,
currentEpochId,
deadline,
maxPaymentTokenAmount
);Use getSlot0() and getPrice() immediately before constructing a purchase. Protect execution with the epoch ID, deadline, maximum payment, private transaction strategy where appropriate, and an independently verified inventory list. A malicious token in the list can revert or behave unexpectedly.
Accounting taxonomy
Keep these quantities separate:
- Fee inventory: non-payment assets held by the controller and available to a buyer.
- Auction receipts: payment tokens transferred directly to
paymentReceiverat settlement. - Treasury-held EUL: EUL controlled by a DAO treasury address or another DAO-controlled position.
- Reward inventory/distributions: EUL committed to or distributed by reward programs, including rEUL backing where applicable.
- Burned EUL: EUL actually sent to a burn address or otherwise destroyed according to the relevant token contract.
Paying EUL into Fee Flow does not itself burn EUL. Nor does the contract itself prove that its payment receiver is DAO-controlled; verify constructor parameters and receiver control for the deployment.
Current status
Fee Flow has been turned off and Euler protocol fees are currently set to zero. Before integrating against a historical or future deployment, verify the relevant chain's ProtocolConfig, vault fee configuration, Fee Flow address, and governance state. Vault-level curator or governor fees are separate from protocol fees.