---
# System prepended metadata

title: Technical Scope of the sky.money Morpho Vault V2 Deployments

---

# Technical Scope of the sky.money Morpho Vault V2 Deployments

## Summary

This post provides the technical scope of the five [Morpho Vault V2](https://docs.morpho.org/) deployments operated by the [sky.money curator](https://app.morpho.org/curator/sky-money) on Ethereum mainnet. These deployments were carried out by Soter Labs on behalf of the Prime Agent [Skybase](https://forum.skyeco.com/t/technical-scope-of-the-new-skybase-agent/27642). The sky.money curator is controlled by Skybase.

These vaults allow users to deposit stablecoins (USDS, USDC, USDT) and earn yield through lending on Morpho Blue markets collateralized by Sky ecosystem assets (stUSDS, sUSDS) and blue-chip crypto assets (cbBTC, wstETH, WETH).

All deployment scripts, tests, and configuration are open-source and available at: https://github.com/soterlabs/morpho-vault-v2-deployment. The repository has been validated to run successfully at the time of writing on commit [3a791ba](https://github.com/soterlabs/morpho-vault-v2-deployment/commit/3a791ba5aade3ef25d9760a0232c9b385524419d).

> **Note:** All vaults, adapters, and oracles were deployed using Morpho's official factory contracts (VaultV2Factory, AdapterFactory, OracleFactory). The canonical factory addresses can be verified at: https://docs.morpho.org/get-started/resources/addresses/#morpho-v2-contracts

> **Current AUM: ~$158M across 5 vaults** (as of 24/04/2026)

---

## 1. Vault Overview

| Vault | Deposit Asset | Collateral | LLTV | Strategy | TVL (as of 13/03/2026) |
|-------|--------------|------------|------|----------|-----|
| [sky.money USDS Risk Capital](https://app.morpho.org/ethereum/vault/0xf42bca228D9bd3e2F8EE65Fec3d21De1063882d4/skymoney-usds-risk-capital) | USDS | stUSDS | 86% | Single-market, auto-allocation | ~$3.9M |
| [sky.money USDC Risk Capital](https://app.morpho.org/ethereum/vault/0x56bfa6f53669B836D1E0Dfa5e99706b12c373ecf/skymoney-usdc-risk-capital) | USDC | stUSDS | 86% | Single-market, auto-allocation | ~$43.9M |
| [sky.money USDT Risk Capital](https://app.morpho.org/ethereum/vault/0x2bD3A43863c07B6A01581FADa0E1614ca5DF0E3d/skymoney-usdt-risk-capital) | USDT | stUSDS | 86% | Single-market, auto-allocation | ~$36.3M |
| [sky.money USDT Savings](https://app.morpho.org/ethereum/vault/0x23f5E9c35820f4baB695Ac1F19c203cC3f8e1e11/skymoney-usdt-savings) | USDT | sUSDS | 96.5% | Single-market, auto-allocation | ~$158.5M |
| [sky.money USDS Flagship](https://app.morpho.org/ethereum/vault/0xE15fcC81118895b67b6647BBd393182dF44E11E0/skymoney-usds-flagship) | USDS | stUSDS, cbBTC, wstETH, WETH | 86% | Multi-market, manual allocation | ~$57.5M |

All vaults charge **0% performance and management fees**, as shown in each vault’s “APY Breakdown” on Morpho UI.

---

## 2. Architecture

### 2.1 Single-Market Vaults (Risk Capital + USDT Savings)

Each single-market vault follows the same pattern:

```mermaid
graph LR
    User -->|deposit| VaultV2["VaultV2 - ERC4626"]
    VaultV2 -->|auto-allocate| Adapter["MorphoMarketV1AdapterV2"]
    Adapter -->|supply| Morpho["Morpho Blue Market"]
```

- **VaultV2**: ERC4626-compliant vault created via `VaultV2Factory`
- **MorphoMarketV1AdapterV2**: Connects the vault to a single Morpho Blue market, created via `AdapterFactory`
- **Liquidity Adapter**: Set on the vault so deposits are automatically allocated to the lending market
- **MorphoChainlinkOracleV2**: Prices collateral relative to the loan token using Chainlink feeds and/or ERC4626 redemption rates

### 2.2 USDS Flagship Vault (Multi-Market, Manual Allocation)

```mermaid
graph LR
    User -->|deposit| Vault["VaultV2 (ERC4626)"]
    Vault -->|manual allocation| Adapter["MorphoMarketV1AdapterV2"]

    subgraph Markets["Morpho Blue Markets"]
        M1["cbBTC / USDS"]
        M2["wstETH / USDS"]
        M3["WETH / USDS"]
        M4["stUSDS / USDS"]
    end

    Adapter -->|supply| M1
    Adapter -->|supply| M2
    Adapter -->|supply| M3
    Adapter -->|supply| M4
```

- **No liquidity adapter**: The vault does **not** auto-allocate. Capital allocation is managed manually.
- **4 markets**: stUSDS/USDS, cbBTC/USDS, wstETH/USDS, WETH/USDS (all 86% LLTV)
- **Allocation caps**: 20% max to the adapter (aggregate), 5% max per individual market
- **Target allocation**: 80% idle (earning the Sky Savings Rate via USDS), 20% allocated across markets
- **Allocator bot**: A TypeScript bot allocates capital via a Safe 1/3 multisig (threshold=1), where the bot is one of the 3 signers. Transactions are routed through Safe's `execTransaction`.

---

## 3. Deployed Contracts

### 3.1 Morpho Infrastructure (Pre-existing)

| Contract | Address | Source |
|----------|---------|---------|
| Morpho | [0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb](https://etherscan.io/address/0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb) | [Morpho V1 Contracts](https://docs.morpho.org/get-started/resources/addresses/#morpho-v1-contracts)|
| MorphoChainlinkOracleV2Factory | [0x3A7bB36Ee3f3eE32A60e9f2b33c1e5f2E83ad766](https://etherscan.io/address/0x3A7bB36Ee3f3eE32A60e9f2b33c1e5f2E83ad766) | [Morpho V1 Contracts](https://docs.morpho.org/get-started/resources/addresses/#morpho-v1-contracts) |
| VaultV2Factory | [0xA1D94F746dEfa1928926b84fB2596c06926C0405](https://etherscan.io/address/0xA1D94F746dEfa1928926b84fB2596c06926C0405) | [Morpho V2 Contracts](https://docs.morpho.org/get-started/resources/addresses/#morpho-v2-contracts) |
| MorphoMarketV1AdapterV2Factory | [0x32BB1c0D48D8b1B3363e86eeB9A0300BAd61ccc1](https://etherscan.io/address/0x32BB1c0D48D8b1B3363e86eeB9A0300BAd61ccc1) | [Morpho V2 Contracts](https://docs.morpho.org/get-started/resources/addresses/#morpho-v2-contracts)|
| MorphoRegistry | [0x3696c5eAe4a7Ffd04Ea163564571E9CD8Ed9364e](https://etherscan.io/address/0x3696c5eAe4a7Ffd04Ea163564571E9CD8Ed9364e) | [Morpho V2 Contracts](https://docs.morpho.org/get-started/resources/addresses/#morpho-v2-contracts) |
| Adaptive Curve Irm | [0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC](https://etherscan.io/address/0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC) | [Morpho V1 Contracts](https://docs.morpho.org/get-started/resources/addresses/#morpho-v1-contracts) |

### 3.2 sky.money USDS Risk Capital

| Contract | Address | Deployment | Transaction |
|----------|---------|---------|---------|
| VaultV2 | [0xf42bca228D9bd3e2F8EE65Fec3d21De1063882d4](https://etherscan.io/address/0xf42bca228D9bd3e2F8EE65Fec3d21De1063882d4) | Created via factory [VaultV2Factory](#31-Morpho-Infrastructure-Pre-existing) | [0x9433e876a034e9a00d5fe83ff321023edbea9a82b108874feb422b5d8b096aef](https://etherscan.io/tx/0x9433e876a034e9a00d5fe83ff321023edbea9a82b108874feb422b5d8b096aef) |
| MorphoChainlinkOracleV2 | [0x0A976226d113B67Bd42D672Ac9f83f92B44b454C](https://etherscan.io/address/0x0A976226d113B67Bd42D672Ac9f83f92B44b454C) | Created via factory [MorphoChainlinkOracleV2Factory](#31-Morpho-Infrastructure-Pre-existing) | [0xdccc7ebbcbbff04484b2156993cf94b9f4a2c8d6c6424bbd8efced6afa6be2bc](https://etherscan.io/tx/0xdccc7ebbcbbff04484b2156993cf94b9f4a2c8d6c6424bbd8efced6afa6be2bc) |
| MorphoMarketV1AdapterV2 | [0xaaf8Bf4B6E8cCb74B7f5E96D4A27fF967c1eEF74](https://etherscan.io/address/0xaaf8Bf4B6E8cCb74B7f5E96D4A27fF967c1eEF74) | Created via factory [MorphoMarketV1AdapterV2Factory](#31-Morpho-Infrastructure-Pre-existing) | [0x3514a7874e9a3f3364ba1c523597b49223611022245fe25d4f92711215a71050](https://etherscan.io/tx/0x3514a7874e9a3f3364ba1c523597b49223611022245fe25d4f92711215a71050) |

**Market:** [stUSDS/USDS](https://app.morpho.org/ethereum/market/0x77e624dd9dd980810c2b804249e88f3598d9c7ec91f16aa5fbf6e3fdf6087f82/stusds-usds)
- Market ID: `0x77e624dd9dd980810c2b804249e88f3598d9c7ec91f16aa5fbf6e3fdf6087f82`
- Collateral: stUSDS (`0x99CD4Ec3f88A45940936F469E4bB72A2A701EEB9`)
- Loan Token: USDS (`0xdC035D45d973E3EC169d2276DDab16f1e407384F`)
- LLTV: 86% (`860000000000000000`)
- IRM: Adaptive (`0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC`)

**Oracle Configuration:**
- Base Vault: stUSDS (ERC4626 redemption rate)
- Base Feed: none (pure ERC4626 — stUSDS and USDS are denominated in the same unit)
- Quote Feed: none
- Price Scale: `10^(36 + 18 - 18) = 10^36`

### 3.3 sky.money USDC Risk Capital

| Contract | Address | Deployment | Transaction |
|----------|---------|---------|---------|
| VaultV2 | [0x56bfa6f53669B836D1E0Dfa5e99706b12c373ecf](https://etherscan.io/address/0x56bfa6f53669B836D1E0Dfa5e99706b12c373ecf) | Created via factory [VaultV2Factory](#31-Morpho-Infrastructure-Pre-existing)  | [0x03b86214aea4f2e92d27a72e29d86256cdc064e822bf2a00dc78524ef980fe73](https://etherscan.io/tx/0x03b86214aea4f2e92d27a72e29d86256cdc064e822bf2a00dc78524ef980fe73) |
| MorphoChainlinkOracleV2 | [0xba3D2Dc1670763c6729CC923A922C7513C0f9DD0](https://etherscan.io/address/0xba3D2Dc1670763c6729CC923A922C7513C0f9DD0) | Created via factory [MorphoChainlinkOracleV2Factory](#31-Morpho-Infrastructure-Pre-existing) | [0xcf82f3d39a181aad0e9393c565061f40e2ac48eabc19e5bd520c6d6182e6835a](https://etherscan.io/tx/0xcf82f3d39a181aad0e9393c565061f40e2ac48eabc19e5bd520c6d6182e6835a) |
| MorphoMarketV1AdapterV2 | [0xCc0F95e65d2ce7fB715bfb418Bf61314d0878b41](https://etherscan.io/address/0xCc0F95e65d2ce7fB715bfb418Bf61314d0878b41) | Created via factory [MorphoMarketV1AdapterV2Factory](#31-Morpho-Infrastructure-Pre-existing) | [0xe29406a36488ccaefd75694c3deb01d054dbfda3df3fd025775ac3cdf8b42783](https://etherscan.io/tx/0xe29406a36488ccaefd75694c3deb01d054dbfda3df3fd025775ac3cdf8b42783) |

**Market:** [stUSDS/USDC](https://app.morpho.org/ethereum/market/0xd570c19c0dc0fbe4ab7faf4a37c4150e1c141c8aada8ca3e1b4b6c1b712af93d/stusds-usdc)
- Market ID: `0xd570c19c0dc0fbe4ab7faf4a37c4150e1c141c8aada8ca3e1b4b6c1b712af93d`
- Collateral: stUSDS (`0x99CD4Ec3f88A45940936F469E4bB72A2A701EEB9`)
- Loan Token: USDC (`0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48`)
- LLTV: 86% (`860000000000000000`)
- IRM: Adaptive (`0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC`)

**Oracle Configuration:**
- Base Vault: stUSDS (ERC4626 redemption rate)
- Base Feed 1: USDS/USD Chainlink (`0xfF30586cD0F29eD462364C7e81375FC0C71219b1`)
- Quote Feed 1: USDC/USD Chainlink (`0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6`)
- Price Scale: `10^(36 + 6 - 18) = 10^24`

### 3.4 sky.money USDT Risk Capital

| Contract | Address | Deployment | Transaction |
|----------|---------|---------|---------|
| VaultV2 | [0x2bD3A43863c07B6A01581FADa0E1614ca5DF0E3d](https://etherscan.io/address/0x2bD3A43863c07B6A01581FADa0E1614ca5DF0E3d) | Created via factory [VaultV2Factory](#31-Morpho-Infrastructure-Pre-existing)  | [0xea69bf6793f9c1ceced4a54177718b3f6ba806cd2cdbd7ab591b02b295abfd52](https://etherscan.io/tx/0xea69bf6793f9c1ceced4a54177718b3f6ba806cd2cdbd7ab591b02b295abfd52) |
| MorphoChainlinkOracleV2 | [0x9C56D403d26C0aE00FA2e767e12F6b588c203B3c](https://etherscan.io/address/0x9C56D403d26C0aE00FA2e767e12F6b588c203B3c) | Created via factory [MorphoChainlinkOracleV2Factory](#31-Morpho-Infrastructure-Pre-existing) | [0x479967bddff6082b459a2209b511babb5a17e03c23805b4a1da9734a0615849d](https://etherscan.io/tx/0x479967bddff6082b459a2209b511babb5a17e03c23805b4a1da9734a0615849d) |
| MorphoMarketV1AdapterV2 | [0x87d80ec53d98C414222f4ACAee1ED872FB8e2BA9](https://etherscan.io/address/0x87d80ec53d98C414222f4ACAee1ED872FB8e2BA9) | Created via factory [MorphoMarketV1AdapterV2Factory](#31-Morpho-Infrastructure-Pre-existing) | [0xb720cad97a70496856b25e020cfcdbc804ac3c48e0cc1c3a27fd25e737b24d33](https://etherscan.io/tx/0xb720cad97a70496856b25e020cfcdbc804ac3c48e0cc1c3a27fd25e737b24d33) |

**Market:** [stUSDS/USDT](https://app.morpho.org/ethereum/market/0x710f02caee4555b8ff75b7d48e5b52adc48898dc0c670b977fb1ea83bf4e7d8a/stusds-usdt)
- Market ID: `0x710f02caee4555b8ff75b7d48e5b52adc48898dc0c670b977fb1ea83bf4e7d8a`
- Collateral: stUSDS (`0x99CD4Ec3f88A45940936F469E4bB72A2A701EEB9`)
- Loan Token: USDT (`0xdAC17F958D2ee523a2206206994597C13D831ec7`)
- LLTV: 86% (`860000000000000000`)
- IRM: Adaptive (`0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC`)

**Oracle Configuration:**
- Base Vault: stUSDS (ERC4626 redemption rate)
- Base Feed 1: USDS/USD Chainlink (`0xfF30586cD0F29eD462364C7e81375FC0C71219b1`)
- Quote Feed 1: USDT/USD Chainlink (`0x3E7d1eAB13ad0104d2750B8863b489D65364e32D`)
- Price Scale: `10^(36 + 6 - 18) = 10^24`

### 3.5 sky.money USDT Savings

| Contract | Address | Deployment | Transaction |
|----------|---------|---------|---------|
| VaultV2 | [0x23f5E9c35820f4baB695Ac1F19c203cC3f8e1e11](https://etherscan.io/address/0x23f5E9c35820f4baB695Ac1F19c203cC3f8e1e11) | Created via factory [VaultV2Factory](#31-Morpho-Infrastructure-Pre-existing)  | [0x96ad4f7253a603dced0009beb518702260d31a4dc75dfa9216deaef6173b0a40](https://etherscan.io/tx/0x96ad4f7253a603dced0009beb518702260d31a4dc75dfa9216deaef6173b0a40) |
| MorphoChainlinkOracleV2 | [0x0C426d174FC88B7A25d59945Ab2F7274Bf7B4C79](https://etherscan.io/address/0x0C426d174FC88B7A25d59945Ab2F7274Bf7B4C79) | Pre-existing, created by another team via factory [MorphoChainlinkOracleV2Factory](#31-Morpho-Infrastructure-Pre-existing)  | [0x83a4bab3ffc77550393bffdc540c8757595acf00dc7df78e8e78d435fe6fe17f](https://etherscan.io/tx/0x83a4bab3ffc77550393bffdc540c8757595acf00dc7df78e8e78d435fe6fe17f) |
| MorphoMarketV1AdapterV2 | [0x6C5D5D47A39FE9f8CA14731a9A42bD31d64fb40D](https://etherscan.io/address/0x6C5D5D47A39FE9f8CA14731a9A42bD31d64fb40D) | Created via factory [MorphoMarketV1AdapterV2Factory](#31-Morpho-Infrastructure-Pre-existing) | [0xe95264d8916e944e96804a7d6026b187265da7d2405937ad7ccbeb626cbeb814](https://etherscan.io/tx/0xe95264d8916e944e96804a7d6026b187265da7d2405937ad7ccbeb626cbeb814) |

**Market:** [sUSDS/USDT](https://app.morpho.org/ethereum/market/0x3274643db77a064abd3bc851de77556a4ad2e2f502f4f0c80845fa8f909ecf0b) (pre-existing)
- Market ID: `0x3274643db77a064abd3bc851de77556a4ad2e2f502f4f0c80845fa8f909ecf0b`
- Collateral: sUSDS (`0xa3931d71877C0E7a3148CB7Eb4463524FEc27fbD`)
- Loan Token: USDT (`0xdAC17F958D2ee523a2206206994597C13D831ec7`)
- LLTV: 96.5% (`965000000000000000`)
- IRM: Adaptive (`0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC`)

**Oracle Configuration (pre-existing market):**
- Base Vault: sUSDS (ERC4626 redemption rate)
- Base Feed 1: DAI/USD Chainlink (`0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9`)
- Quote Feed 1: USDT/USD Chainlink (`0x3E7d1eAB13ad0104d2750B8863b489D65364e32D`)
- Price Scale: `10^(36 + 6 - 18) = 10^24`

> **Note:** This vault reuses an existing sUSDS/USDT market on Morpho Blue. No new oracle or market was created — only the vault and adapter were deployed.

### 3.6 sky.money USDS Flagship

| Contract | Address | Deployment |
|----------|---------|---------|
| VaultV2 | [`0xE15fcC81118895b67b6647BBd393182dF44E11E0`](https://etherscan.io/address/0xE15fcC81118895b67b6647BBd393182dF44E11E0) | Created via factory [VaultV2Factory](#31-Morpho-Infrastructure-Pre-existing)  |
| MorphoMarketV1AdapterV2 | [`0xf94BE39e8863183Ff41194b5923627C90A34039D`](https://etherscan.io/address/0xf94BE39e8863183Ff41194b5923627C90A34039D) | Created via factory [MorphoMarketV1AdapterV2Factory](#31-Morpho-Infrastructure-Pre-existing) |

**Markets & Oracles:**

| Market                                                                                                                               | Collateral | Market ID            | Oracle Address                                                                                                          | Oracle Config                                                                                        | Deployment                                                                                                                                                  |
| ------------------------------------------------------------------------------------------------------------------------------------ | ---------- | -------------------- | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [stUSDS/USDS](https://app.morpho.org/ethereum/market/0x77e624dd9dd980810c2b804249e88f3598d9c7ec91f16aa5fbf6e3fdf6087f82/stusds-usds) | stUSDS     | `0x77e624...6087f82` | [0x0A976226d113B67Bd42D672Ac9f83f92B44b454C](https://etherscan.io/address/0x0A976226d113B67Bd42D672Ac9f83f92B44b454C) | Base Vault: stUSDS (ERC4626), no Chainlink feeds                                                     | Pre-existing, oracle created by via factory [MorphoMarketV1AdapterV2Factory](#31-Morpho-Infrastructure-Pre-existing) as part of [USDS Risk Capital vault](#32-skymoney-USDS-Risk-Capital) |
| [cbBTC/USDS](https://app.morpho.org/ethereum/market/0x2f4ea313fb7df23a82c19d95e8b90acc8179bd053e0d9ef745cdf28d6a49499c/cbbtc-usds)   | cbBTC      | `0x2f4ea3...4499c`   | [0xA5AEb90F9f122989fE69Ae6224Ed923A0caF33B4](https://etherscan.io/address/0xA5AEb90F9f122989fE69Ae6224Ed923A0caF33B4) | Base Feed: cbBTC/USD, Quote Feed: USDS/USD                                                           | Oracle created via factory [MorphoMarketV1AdapterV2Factory](#31-Morpho-Infrastructure-Pre-existing)                                               |
| [wstETH/USDS](https://app.morpho.org/ethereum/market/0xb374528d44b6ab6e0cecc87e0481f45d892f38baec90c1d318851969ec14ea5f/wsteth-usds) | wstETH     | `0xb37452...4ea5f`   | [0xc9A9440d1545047b2Ce3624DB425410cF2EAE292](https://etherscan.io/address/0xc9A9440d1545047b2Ce3624DB425410cF2EAE292) | Base Feed 1: wstETH/stETH (Morpho adapter), Base Feed 2: stETH/USD (Chainlink), Quote Feed: USDS/USD | Oracle created via factory [MorphoMarketV1AdapterV2Factory](#31-Morpho-Infrastructure-Pre-existing)                                               |
| [WETH/USDS](https://app.morpho.org/ethereum/market/0x12cacbbd1c88513cce13d54927f5f1301335779353817bc5e791e71d200f2199/weth-usds)     | WETH       | `0x12cacb...f2199`   | [0x76b2242ea5BE1FCBBF4206EA09601EA5aB22Af4d](https://etherscan.io/address/0x76b2242ea5BE1FCBBF4206EA09601EA5aB22Af4d) | Base Feed: ETH/USD, Quote Feed: USDS/USD                                                             | Oracle created via factory [MorphoMarketV1AdapterV2Factory](#31-Morpho-Infrastructure-Pre-existing)                                               |

> **Note:** The stUSDS/USDS oracle (`0x0A976226...`) was originally deployed as part of the USDS Risk Capital vault and is reused here by the USDS Flagship vault.

All USDS Flagship markets use:
- Loan Token: USDS (`0xdC035D45d973E3EC169d2276DDab16f1e407384F`)
- LLTV: 86% (`860000000000000000`)
- IRM: Adaptive (`0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC`)

**Allocation Caps:**
- Adapter relative cap: 20% of vault assets
- Per-market relative cap: 5% of vault assets

**Allocator:** Safe 1/3 multisig at [`0xE4d5F54CE1830d5eCC49751021F306CFE7a52649`](https://etherscan.io/address/0xE4d5F54CE1830d5eCC49751021F306CFE7a52649)

---

## 4. Role Configuration

All vaults follow Morpho Vault V2's role hierarchy. The sky.money curator (`0x3F32bC09d41eE699844F8296e806417D6bf61Bba`) is controlled by Skybase, as shown in this [Atlas section](https://sky-atlas.io/#615835d8-475b-48f6-9e0f-bcaf041a63ff).

| Role | Address | Permissions |
|------|---------|-------------|
| Owner | [0x3F32bC09d41eE699844F8296e806417D6bf61Bba](https://etherscan.io/address/0x3F32bC09d41eE699844F8296e806417D6bf61Bba) | Set curator, sentinels, transfer ownership |
| Curator | [0x3F32bC09d41eE699844F8296e806417D6bf61Bba](https://etherscan.io/address/0x3F32bC09d41eE699844F8296e806417D6bf61Bba) | Timelocked actions: adapters, caps, allocators |
| Allocator (USDS Flagship only) | [0xE4d5F54CE1830d5eCC49751021F306CFE7a52649](https://etherscan.io/address/0xE4d5F54CE1830d5eCC49751021F306CFE7a52649) | Allocate capital across markets |
| Sentinel | [0x3F32bC09d41eE699844F8296e806417D6bf61Bba](https://etherscan.io/address/0x3F32bC09d41eE699844F8296e806417D6bf61Bba) | Revoke pending actions, emergency controls |

### Timelock Configuration

| Action | Timelock |
|--------|----------|
| `addAdapter`, `increaseAbsoluteCap`, `increaseRelativeCap`, `setForceDeallocatePenalty`, adapter `burnShares`, `setSkimRecipient` | 3 days |
| `increaseTimelock`, `removeAdapter`, `abdicate` | 7 days |

### Adapter Timelocks

Each `MorphoMarketV1AdapterV2` has its own timelocks:

| Action | Timelock |
|--------|----------|
| `burnShares`, `setSkimRecipient` | 3 days |
| `abdicate`, `increaseTimelock` | 7 days |

---

## 5. Security Measures

### Dead Deposits
Each vault is initialized with a "dead deposit" to prevent share manipulation attacks (ERC4626 inflation attack):
- 18-decimal vaults (USDS): 1e18 (1 USDS)
- 6-decimal vaults (USDC, USDT): 1e6 (1 USDC/USDT)

### Market Bootstrapping
Single-market vaults bootstrap 90% market utilization via dead collateral + borrow to ensure the adaptive IRM converges to a reasonable rate quickly.

### Borrow Rate Cap
All markets use `MAX_RATE = 63419583967` (~200% APR) to prevent runaway interest rates.

### USDT Non-Standard Approval
USDT's `approve()` function does not return a boolean. All USDT interactions use OpenZeppelin's `SafeERC20.forceApprove()` to handle this safely.

---

## 6. Deployment Methodology & Sequence

### Deployment via Official Morpho Factory Contracts

All contracts were deployed using Foundry scripts that interact exclusively with the official smart contract factories supported by Morpho and documented in the [Morpho V2 documentation](https://docs.morpho.org/get-started/resources/addresses/#morpho-v2-contracts). No contracts were deployed manually or via custom bytecode — every vault, adapter, and oracle was created by calling the corresponding factory's `create` function:

- **VaultV2Factory** ([0xA1D94F746dEfa1928926b84fB2596c06926C0405](https://etherscan.io/address/0xA1D94F746dEfa1928926b84fB2596c06926C0405)) — creates all VaultV2 instances
- **AdapterFactory** ([0x32BB1c0D48D8b1B3363e86eeB9A0300BAd61ccc1](https://etherscan.io/address/0x32BB1c0D48D8b1B3363e86eeB9A0300BAd61ccc1)) — creates all MorphoMarketV1AdapterV2 instances
- **OracleFactory** ([0x3A7bB36Ee3f3eE32A60e9f2b33c1e5f2E83ad766](https://etherscan.io/address/0x3A7bB36Ee3f3eE32A60e9f2b33c1e5f2E83ad766)) — creates all MorphoChainlinkOracleV2 instances

This approach ensures that every deployed contract is a canonical instance produced by Morpho's audited and verified factories, and can be independently verified on-chain by checking the factory's event logs. The deployment scripts are fully open-source and reproducible: https://github.com/soterlabs/morpho-vault-v2-deployment

### Single-Market Vaults

Each single-market vault is deployed in a single script that:
1. Creates the oracle via `OracleFactory` (except USDT Savings, which reuses an existing oracle/market)
2. Creates the market on Morpho Blue (except USDT Savings)
3. Creates the vault via `VaultV2Factory`
4. Creates the adapter via `AdapterFactory`
5. Configures vault roles, timelocks, gates, and caps
6. Sets the liquidity adapter for auto-allocation
7. Performs the dead deposit (supply + borrow for market bootstrapping)
8. Transfers ownership to the final owner

> **Note:** For the USDT Savings vault, steps 6 and 7 are reversed (dead deposit first, then liquidity adapter) because it reuses a pre-existing market that already has active borrows.

### USDS Flagship Vault

The USDS Flagship vault is deployed across 5 scripts, each verified independently:

1. **CreateVault** — Deploy vault + adapter, configure base roles
2. **CreateCbBtcMarket** — Deploy cbBTC/USDS oracle, create market, seed with dead deposit
3. **CreateWstEthMarket** — Deploy wstETH/USDS oracle, create market, seed with dead deposit
4. **CreateWethMarket** — Deploy WETH/USDS oracle, create market, seed with dead deposit
5. **ConfigureVault** — Set caps, timelocks, gates, add stUSDS/USDS market, transfer ownership

---

## 7. Testing

All deployments are covered by two types of tests:

1. **Script tests**: Run deployment scripts in-memory on an Anvil fork. Verify scripts produce correct vault configuration, oracle parameters, market creation, and deposit/withdraw operations. These tests are in the folder [morpho-vault-v2-deployment/test](https://github.com/soterlabs/morpho-vault-v2-deployment/tree/393f3a640fef8795927c0f8011d71025dcd83e5e/test) and their filenames follow the pattern `vault_name/DeployVaultNameScript.t.sol`.

2. **Deployed tests**: Run against already-deployed contracts on mainnet (pinned to deployment block). Verify on-chain state matches expected configuration. USDS Flagship deployed tests are split into 5 files for incremental verification during deployment. These tests are in the folder [morpho-vault-v2-deployment/test](https://github.com/soterlabs/morpho-vault-v2-deployment/tree/393f3a640fef8795927c0f8011d71025dcd83e5e/test) and their filenames follow the pattern `vault_name/DeployedVaultNameVault.t.sol`.

Tests are run in CI on every push via GitHub Actions. Tests ran succesfully for commit [3a791ba](https://github.com/soterlabs/morpho-vault-v2-deployment/commit/3a791ba5aade3ef25d9760a0232c9b385524419d) for the 5 vaults: [USDS Flagship tests](https://github.com/soterlabs/morpho-vault-v2-deployment/actions/runs/23413130664/job/68103763092), [USDT Savings tests](https://github.com/soterlabs/morpho-vault-v2-deployment/actions/runs/23413130664/job/68103763096), [USDS Risk Capital tests](https://github.com/soterlabs/morpho-vault-v2-deployment/actions/runs/23413130664/job/68103763110), [USDC Risk Capital tests](https://github.com/soterlabs/morpho-vault-v2-deployment/actions/runs/23413130664/job/68103763093) and [USDT Risk Capital tests](https://github.com/soterlabs/morpho-vault-v2-deployment/actions/runs/23413130664/job/68103763094).

---

## 8. Incentives

All incentives are distributed via [Merkl](https://app.merkl.xyz/). Incentive campaigns were deployed on Merkl for each vault. Active and past campaigns can be viewed on Merkl at the links below.

| Vault | Merkl Campaigns | Subsidy Schedule |
|-------|----------------|------------------|
| USDS Risk Capital | [Link](https://app.merkl.xyz/opportunities/ethereum/ERC20LOGPROCESSOR/0xf42bca228D9bd3e2F8EE65Fec3d21De1063882d4) | W1: 30k USDS, W2: 15k USDS, W3+: Integration Boost only |
| USDC Risk Capital | [Link](https://app.merkl.xyz/opportunities/ethereum/ERC20LOGPROCESSOR/0x56bfa6f53669B836D1E0Dfa5e99706b12c373ecf) | W1: 30k USDS, W2: 20k USDS, W3-5: 10k USDC |
| USDT Risk Capital | [Link](https://app.merkl.xyz/opportunities/ethereum/ERC20LOGPROCESSOR/0x2bD3A43863c07B6A01581FADa0E1614ca5DF0E3d) | W1: 30k USDS, W2: 20k USDS, W3-5: 10k USDT |
| USDS Flagship | [Link](https://app.merkl.xyz/opportunities/ethereum/ERC20LOGPROCESSOR/0xE15fcC81118895b67b6647BBd393182dF44E11E0) | W1: 50k USDS, W2: 50k USDS, W3-6: 25k USDS, W7-8: 20k USDS, W9+: Integration Boost only |
| USDT Savings | [Link](https://app.merkl.xyz/opportunities/ethereum/ERC20LOGPROCESSOR/0x23f5E9c35820f4baB695Ac1F19c203cC3f8e1e11) | W1: 50k USDT, W2: 50k USDT, W3-6: 25k USDT, W7-8: 20k USDT |

---


## 9. Links

- Curator page: https://app.morpho.org/curator/sky-money
- Skybase Prime Agent: https://forum.skyeco.com/t/technical-scope-of-the-new-skybase-agent/27642
- Morpho Blue: https://morpho.org/
- Morpho V2 contract addresses: https://docs.morpho.org/get-started/resources/addresses/#morpho-v2-contracts
- Sky Ecosystem: https://sky.money/
- Deployment repository: https://github.com/soterlabs/morpho-vault-v2-deployment
- Morpho forum announcement: https://forum.morpho.org/t/announcing-the-sky-money-usdt-savings-vault-usds-flagship-vault/2199
