Home
Guides

StakeWise's modular architecture is well-suited for institutions seeking to unlock liquidity from their stake and/or offer staking services on specific terms, such as a bespoke staking fee, unique mix of operators, custom MEV strategies, branding, and optional ERC-20 Vault token issuance. The Vault token allows institutions to access liquidity for additional yield strategies by using it as collateral on Morpho to borrow USDC or other assets—all without unstaking.

Morpho is the world’s second-largest lending protocol, with over $6.85 billion in TVL. It provides permissionless and non-custodial lending infrastructure that enables the creation of isolated, immutable lending markets. Each market pairs one collateral asset with one loan asset (e.g., your Vault token as collateral, USDC as the loan asset). Adaptive interest rates optimize for capital efficiency, resulting in better rates for borrowers and lenders.

The flow is straightforward: create a StakeWise Vault with an ERC-20 Vault token enabled → stake ETH → receive Vault tokens that appreciate with staking rewards → create a Morpho market to borrow USDC (or other assets) against your Vault tokens → access liquidity → keep earning staking yields.

This guide uses a vstETH/USDC market as an example. vstETH is an example StakeWise ERC-20 Vault token name. It appreciates as staking rewards accrue. The loan asset (USDC here) can be any asset of your choosing—the steps remain the same.

Let’s unpack this strategy step by step.

⚠️ Creating a market is technically simple, but selecting the right parameters—especially the oracle configuration and LLTV—requires careful analysis.

📧 Contact the StakeWise team for advice before deploying in production.

Step 1: Create Your StakeWise Vault

Stakewise Vaults are customizable smart contracts that process ETH and GNO deposits for staking, distribute rewards, and handle withdrawals in a trustless and non-custodial manner. Anyone—from individuals and node operators to DAOs and institutions—can deploy a Vault with custom parameters directly through the StakeWise App.

📘 For complete Vault deployment instructions, see: How to Create a Vault. 

💎 For the Morpho strategy outlined in this guide, ensure you enable the ERC-20 Vault token option during setup.

💰 To start earning yield, you must have the validators running (Setup Guide).

Private Vault Setup

If your StakeWise Vault is private, your Vault token is a permissioned token—only whitelisted addresses can hold or receive it. You must whitelist the following addresses (Vault access → Add address → Save) before interacting with Morpho:

  1. Morpho (0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb) – core lending protocol

  2. EthereumGeneralAdapter1 (0x4A6c312ec70E8747a587EE860a0353cd42Be0aE0) – required for the frontend and SDK to handle permissioned tokens

  3. Any other address receiving Vault tokens

Without these, transactions will revert because your Vault will reject transfers to unknown addresses.

📘 https://docs.morpho.org/curate/tutorials-market-v1/permissioned-assets/

Step 2: Deploy a Morpho Oracle

The next major step is to deploy a Morpho Oracle—a smart contract that provides real-time price data to determine what one token is worth relative to another (e.g., “How many USDC is 1 ETH worth right now?”). The process is simple: 

  1. Configure oracle parameters specific to your Vault

  2. Test your configuration using Morpho's web interface

  3. Deploy it via MorphoChainlinkOracleV2Factory

Oracle Parameters

Oracle parameters determine how the oracle will calculate prices. The oracle uses a conversion formula to return the specific exchange rate between a collateral asset and a loan asset. For example, for a vstETH/USDC oracle, the pricing path is: vstETH → ETH (via vault conversion) → USD (via ETH/USD price feed) → USDC (via USDC/USD price feed). 

Price feeds are smart contracts that provide real-time asset prices on-chain. The Morpho oracle needs to express the price of your collateral (vstETH) in terms of the loan asset (USDC). Since there's no direct vstETH/USDC Chainlink feed, it chains two feeds through a common denominator—USD. The oracle first applies the vault conversion to determine how much ETH backs each vstETH share, then divides the ETH/USD price by the USDC/USD price to convert that value to USDC.

Below are the arguments to fill for the creation of the vstETH/USDC oracle:

  • baseVault: Your StakeWise Vault address (read here if you don’t know where to find it). 

  • baseVaultConversionSample: 1000000000000000000 (1e18, constant for all vaults).

  • baseFeed1: 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419 ( ETH/USD price feed: https://data.chain.link/feeds/ethereum/mainnet/eth-usd).

  • baseFeed2: 0x0000000000000000000000000000000000000000 (leave as zero address).

  • baseTokenDecimals: 18 (vstETH token decimals).

  • quoteVault: 0x0000000000000000000000000000000000000000 (no quote vault).

  • quoteVaultConversionSample: 1 (default when no quote vault).

  • quoteFeed1: 0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6 (USDC/USD price feed: https://data.chain.link/feeds/ethereum/mainnet/usdc-usd). 

  • quoteFeed2: 0x0000000000000000000000000000000000000000 (leave as zero address).

  • quoteTokenDecimals: 6 (USDC token decimals).

  • salt: 0x0000000000000000000000000000000000000000000000000000000000000000 (leave as default).

Test Your Configuration

Before deploying on-chain, test your oracle parameters using Morpho's Oracle Tester. This tool helps you validate your configuration before deployment, saving gas and preventing errors.

Here's how to use it: 

Oracle Tester Tool
Oracle Tester Tool
  1. Go to the Morpho Oracle Tester interface

  2. Verify you are on the Tester tab in the navigation menu

  3. Select Network: Ethereum

  4. Select Assets

  • Collateral Asset: vstETH (your StakeWise Vault token)

  • Loan Asset: USDC

📝 Note: Since your token isn't listed, click Add Asset and enter your StakeWise Vault address and an estimated USD price based on current ETH value.

If your token isn't listed, click "Add New Asset" to add custom token information
If your token isn't listed, click "Add New Asset" to add custom token information

5. Fill in the detailed oracle parameters you defined (baseVault, baseFeed1, quoteFeed1, etc.)

6. Click Run Oracle Tests

Once all checks pass, click Generate Payload to create the transaction data. You can view it in the interface, download it as JSON, or deploy directly via Safe for multisig setups.

Deploy On-Chain

Once you've validated your configuration, you can deploy it on Etherscan:

  1. Go to the MorphoChainlinkOracleV2Factory address on Etherscan

  2. Click Connect to Web3 and connect your wallet

  3. Expand the createMorphoChainlinkOracleV2 function

  4. Enter all parameters you configured and validated earlier

  5. Double-check all values against your test results

  6. Click Write and confirm the transaction in your wallet

createMorphoChainlinkOracleV2 function that deploys MorphoChainlinkOracleV2 oracle instances
createMorphoChainlinkOracleV2 function that deploys MorphoChainlinkOracleV2 oracle instances

7. Once confirmed, find the CreateMorphoChainlinkOracleV2 event in the transaction logs. Save the deployed oracle address.

The CreateMorphoChainlinkOracleV2 event in the transaction logs. The oracle field in the Data section is your deployed oracle address.
The CreateMorphoChainlinkOracleV2 event in the transaction logs. The oracle field in the Data section is your deployed oracle address.

8. Validate your oracle using one of these methods:

  • Oracle Decoder: Go to oracles.morpho.dev/oracle-decoder and enter your oracle address

  • Etherscan: Go to your oracle address → Contract tab → Read Contract tab → expand the price function to see the result

Step 3: Create Your Morpho Market

Now that your oracle is deployed, you can create a vstETH/USDC market on Morpho.

Deploy the Market

  1. Go to the Morpho contract on Etherscan: Contract tab → Write Contract tab

  2. Click Connect Wallet and connect your wallet 

  3. Expand the createMarket function

  4. Fill in the parameters:

  • loanToken: 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 (USDC)

  • collateralToken: Your StakeWise Vault address (vstETH)

  • oracle: The oracle address you deployed in the previous step

  • irm: 0x870aC11D48B15DB9a138Cf899d20F13F79Ba00BC – Morpho's AdaptiveCurveIRM, which automatically adjusts rates to target 90% utilization (Learn more)

  • lltv: Choose a governance-approved LLTV (e.g., 915000000000000000 for 91.5%) – a key risk metric that measures the proportion of debt relative to collateral value (approved LLTVs)

The createMarket function on Etherscan with marketParams fields filled in: loanToken, collateralToken, oracle, irm, and lltv.
The createMarket function on Etherscan with marketParams fields filled in: loanToken, collateralToken, oracle, irm, and lltv.

5. Click Write and confirm the transaction

6. Once confirmed, find the CreateMarket event in the transaction logs. Save the market ID for future reference (in Hex format)

Transaction event logs on Etherscan showing the CreateMarket event with the market ID highlighted in the Topics section.
Transaction event logs on Etherscan showing the CreateMarket event with the market ID highlighted in the Topics section.

Verify Your Market

To retrieve market parameters from the ID:

  1. Go to the Morpho contract on Etherscan: Contract tab → Read Contract tab

  2. Find idToMarketParams function

  3. Paste your market id and query

Verifying market parameters via idToMarketParams on Etherscan.
Verifying market parameters via idToMarketParams on Etherscan.

Protect Against Inflation Attacks (Dead Deposit)

When a market is new and empty, attackers can manipulate the share price to steal funds from the first depositors. You must set up a “dead deposit” to prevent front-running attacks.

Approve Morpho

  1. Go to the USDC contract on Etherscan: Contract tab → Write as Proxy tab  

  2. Click Connect to Web3 and connect your wallet

  3. Expand the approve function and fill in:

  • spender: 0xBBBBBbbBBb9cC5e90e3b3Af64bdAF62C37EEFFCb (Morpho)

  • value: 1000000 (1e6 = 1 USDC, enough to cover the deposit)

4. Click Write and confirm the transaction

Approving Morpho to spend 1 USDC via the approve function on the USDC proxy contract.
Approving Morpho to spend 1 USDC via the approve function on the USDC proxy contract.

Create Dead Deposit

  1. Go to the Morpho contract on Etherscan: Contract tab → Write Contract tab  

  2. Click Connect to Web3 and connect your wallet

  3. Expand the supply function and fill in:

  • marketParams: your market parameters

  • assets: 0

  • shares: 1000000000 (1e9 shares)

  • onBehalfOf: 0x000000000000000000000000000000000000dEaD

  • data: 0x

Once the transaction is confirmed, the market will be secured with a dead deposit
Once the transaction is confirmed, the market will be secured with a dead deposit

Step 4: Add Liquidity

Congratulations on successfully creating your market! 🎉

To view it in the Morpho app, open any market page and simply replace the URL's market ID with yours: https://app.morpho.org/ethereum/market/{your-market-id}

(Grab the ID from the CreateMarket event logs from Step 3)

Your Morpho market interface
Your Morpho market interface

You'll see a yellow warning: “Market is not listed”. The Morpho app only shows markets that curated vaults allocate to. These vaults must themselves be listed. Curators (e.g., Gauntlet, Steakhouse Financial, Re7 Capital, MEV Capital, and others) list and run these vaults (like USDC ones) and allowlist markets after reviewing risk, oracle quality, collateral strength, yield potential, and more.

For borrowing to be possible, lenders must supply USDC (the loan token) to your market. There are two main paths:

Option A: Via a Curator

Contact a curator to request allocation to your market. The complete list of curators is available here.

Getting allocation means convincing a curator that your market fits their strategy. They evaluate:

  • Risk profile fit: How does your oracle work? Can positions be liquidated easily?

  • Yield competitiveness: Will your market generate sufficient yield compared to markets they already list?

Curators must balance offering enough yield to attract lenders while keeping borrow rates reasonable to retain borrowers.

Option B: Run Your Own Vault

Create and curate your own Morpho Vault (permissionless via the Curator App)—source lender liquidity and allocate it to your markets. The Curator app provides Morpho Vault operators with tools to manage existing vaults and create new ones.

📘 Learn more: Curation documentation | Build documentation for details

Step 5: Supply Collateral

(Once your market has liquidity from suppliers or vaults)

  1. Go to your market on https://app.morpho.org/ethereum/market/{your-market-id}

  2. Connect your wallet (❗make sure your address is whitelisted in your StakeWise Vault)

  3. Enter the vstETH amount in Supply Collateral

  4. Click Submit and confirm the transaction

Step 6: Borrow Against Your Collateral

With collateral supplied, you can now borrow against it.

  1. On the same market page, enter the USDC amount in Borrow USDC

  2. Click Submit and confirm the transaction

Your vstETH/USDC market is now live! 🎉 You can borrow against your Vault tokens while continuing to earn staking yields.

📧 For questions, reach out to the StakeWise team.

StakeWise Logo
Start staking, explore Vaults, or create your own.
StakeWise Logo
Copyright © 2026 StakeWise