Technical Scope of the sky.money Morpho Vault V2 Deployments

Asset Info
CreatorN/A
Registration TimeLoading...
RegistrarTechnical Scope of the sky.money Morpho Vault V2 Deployments
Capture TimeLoading...
GeolocationN/A
File TypePNG
Source TypedigitalUpload
Details
Abstract
Technical Scope of the sky.money Morpho Vault V2 Deployments
Summary
This post provides the technical scope of the five Morpho Vault V2 deployments operated by the sky.money curator on Ethereum mainnet. These deployments were carried out by Soter Labs on behalf of the Prime Agent Skybase. 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: GitHub - soterlabs/morpho-vault-v2-deployment · GitHub . The repository has been validated to run successfully at the time of writing on commit 3a791ba.
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: Addresses – Morpho Docs
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
USDS
stUSDS
86%
Single-market, auto-allocation
~$3.9M
sky.money USDC Risk Capital
USDC
stUSDS
86%
Single-market, auto-allocation
~$43.9M
sky.money USDT Risk Capital
USDT
stUSDS
86%
Single-market, auto-allocation
~$36.3M
sky.money USDT Savings
USDT
sUSDS
96.5%
Single-market, auto-allocation
~$158.5M
sky.money 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:
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)
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
Morpho V1 Contracts
MorphoChainlinkOracleV2Factory
0x3A7bB36Ee3f3eE32A60e9f2b33c1e5f2E83ad766
Morpho V1 Contracts
VaultV2Factory
0xA1D94F746dEfa1928926b84fB2596c06926C0405
Morpho V2 Contracts
MorphoMarketV1AdapterV2Factory
0x32BB1c0D48D8b1B3363e86eeB9A0300BAd61ccc1
Morpho V2 Contracts
MorphoRegistry
0x3696c5eAe4a7Ffd04Ea163564571E9CD8Ed9364e
Morpho V2 Contracts
Adaptive Curve Irm
0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC
Morpho V1 Contracts
3.2 sky.money USDS Risk Capital
Contract
Address
Deployment
Transaction
VaultV2
0xf42bca228D9bd3e2F8EE65Fec3d21De1063882d4
Created via factory VaultV2Factory
0x9433e876a034e9a00d5fe83ff321023edbea9a82b108874feb422b5d8b096aef
MorphoChainlinkOracleV2
0x0A976226d113B67Bd42D672Ac9f83f92B44b454C
Created via factory MorphoChainlinkOracleV2Factory
0xdccc7ebbcbbff04484b2156993cf94b9f4a2c8d6c6424bbd8efced6afa6be2bc
MorphoMarketV1AdapterV2
0xaaf8Bf4B6E8cCb74B7f5E96D4A27fF967c1eEF74
Created via factory MorphoMarketV1AdapterV2Factory
0x3514a7874e9a3f3364ba1c523597b49223611022245fe25d4f92711215a71050
Market: 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
Created via factory VaultV2Factory
0x03b86214aea4f2e92d27a72e29d86256cdc064e822bf2a00dc78524ef980fe73
MorphoChainlinkOracleV2
0xba3D2Dc1670763c6729CC923A922C7513C0f9DD0
Created via factory MorphoChainlinkOracleV2Factory
0xcf82f3d39a181aad0e9393c565061f40e2ac48eabc19e5bd520c6d6182e6835a
MorphoMarketV1AdapterV2
0xCc0F95e65d2ce7fB715bfb418Bf61314d0878b41
Created via factory MorphoMarketV1AdapterV2Factory
0xe29406a36488ccaefd75694c3deb01d054dbfda3df3fd025775ac3cdf8b42783
Market: 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
Created via factory VaultV2Factory
0xea69bf6793f9c1ceced4a54177718b3f6ba806cd2cdbd7ab591b02b295abfd52
MorphoChainlinkOracleV2
0x9C56D403d26C0aE00FA2e767e12F6b588c203B3c
Created via factory MorphoChainlinkOracleV2Factory
0x479967bddff6082b459a2209b511babb5a17e03c23805b4a1da9734a0615849d
MorphoMarketV1AdapterV2
0x87d80ec53d98C414222f4ACAee1ED872FB8e2BA9
Created via factory MorphoMarketV1AdapterV2Factory
0xb720cad97a70496856b25e020cfcdbc804ac3c48e0cc1c3a27fd25e737b24d33
Market: 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
Created via factory VaultV2Factory
0x96ad4f7253a603dced0009beb518702260d31a4dc75dfa9216deaef6173b0a40
MorphoChainlinkOracleV2
0x0C426d174FC88B7A25d59945Ab2F7274Bf7B4C79
Pre-existing, created by another team via factory MorphoChainlinkOracleV2Factory
0x83a4bab3ffc77550393bffdc540c8757595acf00dc7df78e8e78d435fe6fe17f
MorphoMarketV1AdapterV2
0x6C5D5D47A39FE9f8CA14731a9A42bD31d64fb40D
Created via factory MorphoMarketV1AdapterV2Factory
0xe95264d8916e944e96804a7d6026b187265da7d2405937ad7ccbeb626cbeb814
Market: sUSDS/USDT (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
Created via factory VaultV2Factory
MorphoMarketV1AdapterV2
0xf94BE39e8863183Ff41194b5923627C90A34039D
Created via factory MorphoMarketV1AdapterV2Factory
Markets & Oracles:
Market
Collateral
Market ID
Oracle Address
Oracle Config
Deployment
stUSDS/USDS
stUSDS
0x77e624...6087f82
0x0A976226d113B67Bd42D672Ac9f83f92B44b454C
Base Vault: stUSDS (ERC4626), no Chainlink feeds
Pre-existing, oracle created by via factory MorphoMarketV1AdapterV2Factory as part of USDS Risk Capital vault
cbBTC/USDS
cbBTC
0x2f4ea3...4499c
0xA5AEb90F9f122989fE69Ae6224Ed923A0caF33B4
Base Feed: cbBTC/USD, Quote Feed: USDS/USD
Oracle created via factory MorphoMarketV1AdapterV2Factory
wstETH/USDS
wstETH
0xb37452...4ea5f
0xc9A9440d1545047b2Ce3624DB425410cF2EAE292
Base Feed 1: wstETH/stETH (Morpho adapter), Base Feed 2: stETH/USD (Chainlink), Quote Feed: USDS/USD
Oracle created via factory MorphoMarketV1AdapterV2Factory
WETH/USDS
WETH
0x12cacb...f2199
0x76b2242ea5BE1FCBBF4206EA09601EA5aB22Af4d
Base Feed: ETH/USD, Quote Feed: USDS/USD
Oracle created via factory MorphoMarketV1AdapterV2Factory
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
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.
Role
Address
Permissions
Owner
0x3F32bC09d41eE699844F8296e806417D6bf61Bba
Set curator, sentinels, transfer ownership
Curator
0x3F32bC09d41eE699844F8296e806417D6bf61Bba
Timelocked actions: adapters, caps, allocators
Allocator (USDS Flagship only)
0xE4d5F54CE1830d5eCC49751021F306CFE7a52649
Allocate capital across markets
Sentinel
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. 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) — creates all VaultV2 instances
AdapterFactory (0x32BB1c0D48D8b1B3363e86eeB9A0300BAd61ccc1) — creates all MorphoMarketV1AdapterV2 instances
OracleFactory (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: GitHub - soterlabs/morpho-vault-v2-deployment · GitHub
Single-Market Vaults
Each single-market vault is deployed in a single script that:
Creates the oracle via OracleFactory (except USDT Savings, which reuses an existing oracle/market)
Creates the market on Morpho Blue (except USDT Savings)
Creates the vault via VaultV2Factory
Creates the adapter via AdapterFactory
Configures vault roles, timelocks, gates, and caps
Sets the liquidity adapter for auto-allocation
Performs the dead deposit (supply + borrow for market bootstrapping)
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:
CreateVault — Deploy vault + adapter, configure base roles
CreateCbBtcMarket — Deploy cbBTC/USDS oracle, create market, seed with dead deposit
CreateWstEthMarket — Deploy wstETH/USDS oracle, create market, seed with dead deposit
CreateWethMarket — Deploy WETH/USDS oracle, create market, seed with dead deposit
ConfigureVault — Set caps, timelocks, gates, add stUSDS/USDS market, transfer ownership
7. Testing
All deployments are covered by two types of tests:
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 and their filenames follow the pattern vault_name/DeployVaultNameScript.t.sol.
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 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 for the 5 vaults: USDS Flagship tests, USDT Savings tests, USDS Risk Capital tests, USDC Risk Capital tests and USDT Risk Capital tests.
8. Incentives
All incentives are distributed via Merkl. 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
W1: 30k USDS, W2: 15k USDS, W3+: Integration Boost only
USDC Risk Capital
Link
W1: 30k USDS, W2: 20k USDS, W3-5: 10k USDC
USDT Risk Capital
Link
W1: 30k USDS, W2: 20k USDS, W3-5: 10k USDT
USDS Flagship
Link
W1: 50k USDS, W2: 50k USDS, W3-6: 25k USDS, W7-8: 20k USDS, W9+: Integration Boost only
USDT Savings
Link
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: Technical scope of the new SKYBASE agent
Morpho Blue: https://morpho.org/
Morpho V2 contract addresses: Addresses – Morpho Docs
Sky Ecosystem: https://sky.money/
Deployment repository: GitHub - soterlabs/morpho-vault-v2-deployment · GitHub
Morpho forum announcement: Announcing the sky.money USDT Savings Vault & USDS Flagship Vault - Sky money - Morpho Governance Forum
1 post - 1 participant
Read full topic
LicenseN/A
Used Byforum.skyeco.com...
Mining PreferenceN/A
Integrity Proof