# Accepted Flash-Loan Sources

> The hardcoded, immutable set of contracts the composer trusts as flash-loan callback callers, and why each qualifies.

Source: https://docs.1delta.io/smart-contract-api/flash-loan/accepted-sources/

---

[Operations](../operations.md) → [Flash Loans](../flash-loan.md) → Accepted Sources _(Composer)_

A flash-loan callback hands control back to the composer while funds are in flight, so the composer
**hardcode-trusts** a fixed set of contracts as the only valid callback callers. Because the composers
are [immutable](../../on-chain-addresses.mdx), this trusted set is frozen.

## Trust model

A source is accepted only if it falls into one of these categories:

1. **Immutable by construction** — a canonical singleton or a `CREATE2`-derived pool whose address an
   attacker cannot occupy. No governance judgement is required.
2. **Original Aave** — a canonical Aave DAO deployment.
3. **Strongly-governed fork** — a reputable fork that is not upgradeable by a single EOA (real
   multisig / timelock / DAO), or, in rare cases, the dominant lender of its chain.

Forks that are single-EOA upgradeable, anonymously governed, unaudited, defunct, or previously
exploited are **excluded from code generation** and are never trusted as a callback source.

## Trustless sources (immutable / re-derived)

| Source | Basis |
| ------ | ----- |
| **Morpho Blue** | Canonical immutable singleton; callback only fires on `msg.sender` |
| **Morpho Blue forks** (Lista / Moolah) | Canonical singleton, `msg.sender`-only callback |
| **Morpho Midnight** | Canonical instance, ERC-3156; callback hardened with `initiator == address(this)` |
| **Uniswap V4** (PoolManager) | Canonical singleton; unlock callback fires on `msg.sender` |
| **Balancer V3** (Vault) | Canonical singleton; unlock callback fires on `msg.sender` |
| **Balancer V2** and forks (incl. Swaap) | Canonical vault; standardized flash-loan interface |
| **Uniswap V3 / Algebra / PancakeSwap V3** and forks | Pool address re-derived via `CREATE2` (`keccak256(0xff ++ factory ++ salt ++ initHash)`) |

## Aave-family sources

| Source | Chains | Basis |
| ------ | ------ | ----- |
| **Aave V3** | Canonical DAO deployments across all supported chains | Original Aave (Aave Governance) |
| **Aave V3 – Prime / EtherFi / Horizon** | Ethereum | Official Aave DAO instances |
| **Aave V2** | Ethereum, Polygon, Avalanche | Canonical Aave V2 |
| **Spark** | Ethereum, Gnosis | Sky / MakerDAO SubDAO — timelock-gated |
| **HyperLend** | HyperEVM | Aave-recognized fork; multisig-governed, audited |
| **YEI** (main market) | Sei | 24h timelock + multisig |
| **Phiat** | PulseChain | Dominant lender on PulseChain (chain-level exception) |

## Excluded forks

Weak/opaque-governance, defunct, or flash-loan-disabled Aave forks are dropped from the trusted set —
for example Colend and Fathom (flash loans frozen at the protocol), and several EOA-governed or
previously-exploited forks. The full accept/reject policy and per-fork governance analysis is
maintained in the [contracts repository](https://github.com/1delta-DAO/contracts-delegation).
