Flash lenders
Who can lend the flash loan behind a position, on which chains, what each charges, and how the one your transaction uses is chosen.
Every open and every close starts by borrowing the loan token for the length of one transaction. The lender gets it back before the transaction ends, or the whole thing is cancelled. Several protocols will lend that way, they charge different amounts, and on any given day they hold very different amounts of any given token.
The lenders
- Morpho Blue: charges nothing, by design. On Ethereum, Optimism, BNB Chain, Gnosis, Polygon, Monad, Robinhood Chain, Base, Arbitrum, Avalanche.
- Aave v3: charges the premium its governance sets, read from the chain. On Ethereum, Optimism, BNB Chain, Gnosis, Polygon, Monad, Base, Arbitrum, Avalanche.
- SparkLend: charges the premium its governance sets, read from the chain. On Ethereum, Gnosis.
- Balancer V2: charges what its fee collector is set to, read from the chain. On Ethereum, Optimism, BNB Chain, Gnosis, Polygon, Base, Arbitrum, Avalanche.
- Balancer V3: charges nothing, by design. On Ethereum, Optimism, Gnosis, Monad, Base, Arbitrum, Avalanche.
- Uniswap v4: charges nothing, by design. On Ethereum, Optimism, BNB Chain, Polygon, Monad, Robinhood Chain, Base, Arbitrum, Avalanche.
- PancakeSwap Infinity: charges nothing, by design. On BNB Chain.
- Aave GhoFlashMinter: charges what its own fee function answers, read from the chain. On Ethereum.
- Maker DssFlash: charges what its own fee function answers, read from the chain. On Ethereum.
- Curve crvUSD FlashLender: charges what its own fee function answers, read from the chain. On Ethereum.
A lender appears here only when its contract was read on that chain and matched what we reviewed. The address alone proves nothing: the same address can be a lender on one chain and something else entirely on another.
How one is chosen
With engine v3 the lender is selected per transaction. At the size you enter, every lender on the chain that holds enough of the token is ranked by what it would charge for exactly that amount, then by whether it limits which swap routes can run beside it, then by depth. When you sign, the best few are read again from the chain at the actual amount, and the fee you agree to is capped at what was read.
A lender whose balance could not be read is never treated as empty. If nothing that was read can fund the transaction, an unread lender is tried and the simulation of the real transaction decides. A Morpho market always borrows from Morpho Blue, which charges nothing.
Today
Until engine v3 is switched on for a chain, that chain’s helper borrows from one lender set by the owner, and the Execution Plan names it with its fee and what it holds. Every other lender that could fund the same transaction is listed beside it as available with engine v3. That label describes the lender, not a date.
Routes a lender cannot share
Some lenders lock their own pools while they lend. A swap that passes through a Uniswap v4 pool cannot run inside a Uniswap v4 flash loan, and the same holds for PancakeSwap Infinity and Balancer V2. No aggregator reliably keeps its route out of those pools on request, so the real transaction is simulated with the chosen lender before you sign, and when every route fails under it the next lender is tried.
Reading the table
- chosen
- The lender this transaction borrows from.
- costlier
- Could fund it, and would charge more at this size.
- ranked lower
- Could fund it at the same fee, and lost on depth or on the routes it rules out.
- thin
- Answered, and holds less than this transaction needs with room to spare.
- unmeasured
- Could not be read. Never counted as empty, and never a reason to refuse.
- flash disabled
- The lender has switched flash loans off for this token.
- Morpho only
- A Morpho market, which always borrows from Morpho Blue.
- engine v3
- Could fund this transaction; only engine v3 can choose it.
- snapshot or live
- How old the balance is. A snapshot must clear the need by a wider margin than a live read.