# Protocol coverage matrix

Source: https://docs.1delta.io/protocol-coverage/

---

## Protocol Coverage Matrix

This page lists every lending protocol and vault surface 1delta integrates, and
what you can do with each one — in particular whether **looping** (leveraged
positions via [`/v1/actions/loop/*`](https://docs.1delta.io/looping/)) is available, and which vault
families are served on the earn surface.

Coverage grows continuously, so treat this page as a map and the API as the
source of truth:

```bash
# Live lender roster
curl "https://portal.1delta.io/v1/data/lender-ids"

# Live vault rosters
curl "https://portal.1delta.io/v1/data/vaults/savings?chainId=1"
```

A "lender id" here is the key described in
[Market identifiers](https://docs.1delta.io/market-identifiers/) — one protocol usually has many
deployments with distinct ids (`AAVE_V3`, `AAVE_V3_PRIME`, `SPARK`, …), and some
families key each market individually (`FLUID_<chainId>_<vaultId>`,
`LLAMALEND_<controller>`, `TERMMAX_<market>`).

---

## Lenders

### How looping is executed

The **Loop** columns below cover the four margin operations: open (leverage),
close, collateral swap and debt swap. The **How** column tells you what powers
it:

- **Composer** — 1delta's Composer contract executes a flash loan, swap and the
  lending operations atomically. Requires the protocol to support acting
  on-behalf (credit delegation or an operator grant).
- **Native** — the protocol ships its own leverage tooling (position managers,
  leverage zaps, EVC batches) and 1delta builds calldata for that instead. Same
  one-transaction result, no Composer involvement.
- **—** — the protocol has no delegation primitive or its positions are
  owner-only contracts, so an atomic loop cannot be built. Regular lending
  operations (deposit, borrow, repay, withdraw and the one-shot
  deposit-and-borrow / withdraw-and-repay endpoints) still work.

### Full-loop protocols

Every margin operation is available.

| Protocol family | Lender ids (examples) | Chains | Open | Close | Coll. swap | Debt swap | How |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Aave V3 + forks (81 deployments) | `AAVE_V3`, `AAVE_V3_PRIME`, `SPARK`, `ZEROLEND`, `AVALON_*`, `HYPERLEND`, `KINZA`, `YEI`, `COLEND`, `SAKE`, `PAC`, … | ~50 chains | Yes | Yes | Yes | Yes | Composer |
| Aave V2 + forks (23 deployments) | `AAVE_V2`, `LENDLE`, `RADIANT_V2`, `GRANARY`, `IRONCLAD`, `AGAVE`, … | ~15 chains | Yes | Yes | Yes | Yes | Composer |
| Aave V4 | `AAVE_V4_<spoke>` | Ethereum (Hub/Spoke) | Yes | Yes | Yes | Yes | Composer + position-manager consent |
| Compound V3 (Comet) | `COMPOUND_V3_USDC`, `_WETH`, `_USDT`, … (11 markets) | Ethereum, Base, Arbitrum, Optimism, Polygon, Scroll, Mantle, Ronin | Yes | Yes | Yes | Yes | Composer |
| Venus family (17 deployments) | `VENUS`, `VENUS_ETH`, `SEGMENT`, `ENCLABS`, … | BNB, Ethereum, zkSync, Sonic, … | Yes | Yes | Yes | Yes | Composer |
| Euler V2 | `EULER_V2` | Ethereum, Base, Arbitrum, Sonic, Unichain, BNB, Berachain | Yes | Yes | Yes | Yes | Native (EVC batch) |
| Silo V2 / V3 | `SILO_V2_<market>`, `SILO_V3_<market>` | Sonic, Arbitrum, Ethereum, Avalanche, Optimism | Yes | Yes | Yes | Yes | Composer |
| Fluid | `FLUID_<chainId>_<vaultId>` | Ethereum, Arbitrum, Base, Polygon | Yes | Yes | Yes | Yes | Composer; smart-debt (T3/T4) vaults loop single-sided only |
| Gearbox V3 | `GEARBOX_V3_<creditManager>` | Ethereum, Plasma | Yes | Yes | Yes | Yes | Composer + credit-account handling |
| Init Capital | `INIT` | Mantle | Yes | Yes | Yes | Yes | Dedicated margin contracts |
| Dolomite | `DOLOMITE` | Arbitrum, Berachain, Mantle, X Layer | Yes | Yes | Yes | Yes | Native (`DolomiteMargin.operate`) |

### Open/close-loop protocols

Leveraged open and close are available; collateral and debt swaps are not,
because the market is a fixed pair (isolated markets, CDPs, order books).

| Protocol family | Lender ids (examples) | Chains | Open | Close | Coll. swap | Debt swap | How |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Morpho Blue | `MORPHO_BLUE_<marketId>` | Ethereum, Base, Arbitrum, Unichain, Katana, … | Yes | Yes | — | — | Native (Bundler3) with Composer fallback |
| Lista DAO (Moolah) | `LISTA_DAO` | BNB | Yes | Yes | — | — | Composer; fixed-term broker debt supported via `termId` |
| Morpho Midnight | `MORPHO_MIDNIGHT_<marketId>` | Base | Yes | Yes | — | — | Composer (fixed-rate order book) |
| Curvance | `CURVANCE_<chainId>_<market>` | Monad | Yes | Yes | — | — | Native (protocol position managers); 20-minute hold period applies before closing |
| Twyne | `TWYNE_<chainId>_<vault>_<asset>` | Ethereum | Yes | Yes | — | — | Native operators (credit delegation over Aave/Euler, up to 98% LTV) |
| Fraxlend | `FRAXLEND_<chainId>_<pair>` | Ethereum | Yes | Yes | — | — | Native (`leveragedPosition`), on pairs whose swapper allowlist is enabled |
| Resupply | `RESUPPLY_<chainId>_<pair>` | Ethereum | Yes | Yes | — | — | Native (whitelisted swappers) |
| Curve LlamaLend | `LLAMALEND_<controller>` | Ethereum, Arbitrum, Optimism, Sonic, Fraxtal | Yes | Yes | — | — | Native (Curve leverage zaps), on markets that support them |
| Exactly | `EXACTLY_<market>` | Optimism, Base | Yes (two-step) | — | Yes | Via [`/v1/actions/loop/refinance`](https://docs.1delta.io/1delta-api/refinance-roll-over-move-debt-to-a-fixed-term/) | Native (DebtManager); fixed-rate terms |
| Compound V2 forks, non-Venus (24 deployments) | `BENQI`, `MOONWELL`, `MENDI`, `LODESTAR`, `TECTONIC`, `KINETIC`, … | Avalanche, Base, Linea, Arbitrum, Cronos, Flare, … | — | Yes | Yes | — | Composer (unwind only — these forks lack the hooks an atomic open needs) |
| Term Finance | `TERM_FINANCE_<repoId>` | Ethereum, Arbitrum, BNB, Plasma | Via [`/v1/actions/term/carry`](https://docs.1delta.io/1delta-api/term-offer/) | — | — | — | Native (Terminal 1 `flashExecute`, fixed-rate carry) |

### Direct-route lenders (no looping)

These protocols have no on-behalf primitive (positions are owner-only
contracts or address-keyed CDPs), so an atomic loop cannot be built. All
regular lending endpoints work, including the atomic one-shot
deposit-and-borrow where the protocol supports it natively (a CDP `openTrove`
is itself an atomic deposit + borrow).

| Protocol family | Lender ids (examples) | Chains | Notes |
| --- | --- | --- | --- |
| Liquity V2 + friendly forks (8 deployments) | `LIQUITY_V2`, `USDAF`, `FELIX`, `NERITE`, `QUILL`, `ENOSYS_LOANS`, `SONETA`, `EBISU` | Ethereum, HyperEVM, Arbitrum, Scroll, Flare, Sonic, Plasma | Pooled CDPs; troves are sub-accounts, atomic open via `openTrove` |
| River | `RIVER_<chainId>_<index>` | BNB, Base, Hemi | satUSD CDP, address-keyed troves |
| Inverse Finance FiRM | `INVERSE_<market>` | Ethereum | DOLA CDP; interest prepaid in DBR, contract callers are allowlisted by governance |
| Olympus Cooler | `COOLER` | Ethereum | gOHM → USDS at a fixed 0.5% rate, no price liquidation |
| Sky (MakerDAO MCD) | `SKY_<chainId>_<ilk>` | Ethereum | Classic Maker CDPs (ETH-A/B/C, WSTETH-A/B, …) |
| USDD | `USDD_<chainId>_<ilk>` | Ethereum, BNB | Maker-fork machinery; markets activate as the protocol opens EVM collateral |
| Frankencoin | `FRANKENCOIN_<original>` | Ethereum | ZCHF minting positions; oracle-free challenge-based liquidation |
| Teller V2 | `TELLER_<pool>` | Ethereum, Base, Arbitrum, Polygon, BNB, Mantle, HyperEVM | Fixed-term, fixed-APR pools; liquidation is time-based (missed payment), not price-based |
| TermMax | `TERMMAX_<market>` | Ethereum, Base, Arbitrum, BNB, HyperEVM | Fixed-maturity zero-coupon markets; lending ops only today |

---

## Vaults

The earn surface serves two kinds of vault rows: **vault providers** (curated
lending vaults, strategy vaults, fixed-maturity principal tokens, trading
vaults) and the **savings registry** (yield-bearing stable and staking
wrappers). Every row ships with a machine-readable term sheet stating the rate
mechanism, exit path, fees and counterparty.

### Vault providers

| Provider | Product | Chains | Exit style |
| --- | --- | --- | --- |
| `morpho` | MetaMorpho curated vaults over Morpho Blue | Ethereum, Base, Arbitrum, + more | Instant (subject to market liquidity) |
| `euler-earn` | Euler Earn vaults | 8 chains (Ethereum, Base, Arbitrum, Sonic, BNB, Avalanche, Unichain, Swellchain) | Instant |
| `silo` | Silo curated meta-vaults | Ethereum, Arbitrum, Avalanche, XDC | Instant |
| `lista` | Lista DAO earn vaults | BNB | Instant |
| `fluid` | Fluid fTokens (liquidity-layer claims) | Fluid chains | Instant |
| `gearbox` | Gearbox V3 passive pools | Ethereum, + more | Instant |
| `aave-earn` | Curated wrappers over Aave V3 supply positions | Ethereum, BNB, Arbitrum | Instant |
| `termmax` | TermMax curated vaults (rolling fixed-term) | TermMax chains | Instant |
| `lagoon` | Lagoon curated vaults | 9 chains | Request-based |
| `upshift` | Upshift curated vaults | 10 chains | Request → settle → claim, 0–30 day cooldown |
| `yearn` | Yearn V3 vaults | 7 chains | Instant |
| `pendle` | Pendle principal tokens (fixed rate to maturity) | 11 chains | Sale at market price before maturity |
| `spectra` | Spectra principal tokens (fixed rate to maturity) | 12 chains | Sale at market price before maturity |
| `gmx` | GMX V2 GM / GLV liquidity baskets | Arbitrum, Avalanche | Request-based; principal is volatile |
| `hypercore` | Hyperliquid perp vaults incl. HLP | HyperCore (via HyperEVM) | Queued; principal is volatile |
| `lst` | Liquid-staking tokens | 12 chains | Protocol unstake queue or secondary market |
| `savings` | The savings registry (below) | 14 chains | Per row |

Two providers — `gmx` and `hypercore` — hold trading exposure, so the deposit
itself can lose value; their rows are flagged accordingly and their published
rates are realized, not promised.

### Savings registry

Yield-bearing wrappers over stables, ETH, BTC and staking systems across 14
chains. The larger families:

| Family | Tokens | Chains | Exit |
| --- | --- | --- | --- |
| Sky / Maker | `sUSDS`, `stUSDS`, `sDAI` | Ethereum | Instant |
| Spark | `sUSDC` (V1), `spUSDC` / `spUSDT` / `spETH` / `spPYUSD` / `spUSDG` (V2) | Ethereum, Base, Arbitrum, Optimism, Unichain, X Layer, Avalanche | Instant, capped by available liquidity |
| Ethena-style stakers | `sUSDe` (Ethena), `strUSD` (Tori), `sNUSD` (Neutrl), `savETH` / `savUSD` / `savBTC` (Avant), `wiTRY` (Brix) | Ethereum, Avalanche | Cooldown (1–10 days) |
| Frax | `sfrxUSD`, `sFRAX` | Ethereum | Instant |
| Angle | `stUSD`, `stEUR` | Ethereum, Base, Arbitrum, Optimism, Gnosis, Linea | Instant |
| Maple | `syrupUSDC`, `syrupUSDT`, `syrupUSDG` | Ethereum | Request-based, ~7 days |
| Strata tranches | `srUSDe`/`jrUSDe` and 5 more senior/junior pairs | Ethereum | Request-based |
| 3Jane | `USD3`, `sUSD3` | Ethereum | Capped instant / 30-day cooldown |
| Re Protocol | `reUSD`, `reUSDe` | Ethereum, Base, Arbitrum, Avalanche | Secondary market (mint/redeem is KYC-gated) |
| Native Credit Pool | 108 `wNLP` pools | 8 chains | Instant with fee, or free withdrawal queue |
| Hyperbeat | `hbUSDT`, `hbUSDC`, `lstHYPE`, `liquidHYPE` | HyperEVM | Instant with fee, or free 1–3 day queue |
| Bitway | 6 BNB staking vaults | BNB | Instant leg (capped) or 7-day queue |
| Yield Basis | `yb-WBTC`, `yb-cbBTC`, `yb-tBTC`, `yb-WETH` | Ethereum | Instant at live unwind price; deposits capacity-gated |
| Frankencoin | ZCHF savings module | Ethereum, Gnosis, Base | Instant |
| USDD | `sUSDD` | Ethereum, BNB | Instant |
| Others | `stcUSD` (Cap), `cUSDO` (OpenEden), `wstUSR` (Resolv), `sUSDf` (Falcon), `sDOLA`, `sreUSD`, `fxSAVE`, `wsrUSD`, `siUSD`, `sUSDp` (Parallel), `apyUSD` (Apyx), `PRIME` (Hastra), `wstGBP` (Wren), `yoETH` (YO), `yUSD` (YieldFi) | Various | Per row |

Every savings row declares its access and exit facts explicitly, and the vault
action endpoints enforce them:

- **`isMintable: false`** — the vault cannot be entered directly (KYC-gated or
  whitelist-gated mint); where the token trades, the row is flagged
  **secondary-market-only** and both entry and exit are built as swaps.
- **Exit mode** — instant, instant-capped, fixed-cooldown, request-based, or
  fee-or-queued. Cooldown-gated vaults are routed through the savings action
  endpoint, which builds the correct request/claim sequence.
- **Non-USD denomination** — a row's rate is denominated in its own asset;
  non-USD rows (e.g. a GBP or TRY wrapper) state the FX exposure in their
  description.

Query the live roster and build transactions via
[`/v1/actions/vaults/savings`](https://docs.1delta.io/1delta-api/vaults-savings/) and the
[vault data endpoints](https://docs.1delta.io/1delta-api/vaults-lst/).

---

## Next steps

- [Looping](https://docs.1delta.io/looping/) — how the leverage operations work
- [Market identifiers](https://docs.1delta.io/market-identifiers/) — lender ids, marketUid format
- [Risk methodology](https://docs.1delta.io/risk/overview/) — how protocols and vaults are scored
