Login

Technical Scope of the sky.money Morpho Vault V2 Deployments

thumbnail
7cd20a83fa345cf42a30b0564ca587edfa1405eb_2_690x289.png

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
Mining PreferenceN/A
Integrity Proof