> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sherwood.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# Morpho Supply

> Supply the vault asset to one Morpho Blue market and take it back, with interest, at settlement

The `MorphoSupplyStrategy` supplies the vault asset to exactly one **Morpho Blue** lending market, fixed at initialization. Funds come back to the vault only through `settle()`. It is deployed on Robinhood Chain (4663); see [Deployments](/reference/deployments).

## What happens

| Phase | What happens |
| - | - |
| **Execute** | Pull `supplyAmount` of the vault asset and supply it to the market. |
| **Executed** | Nothing is tunable. `updateParams` always reverts `NoTunableParams`. |
| **Settle** | Withdraw the whole position **by shares**, so accrued interest comes out and no dust is left, then push everything to the vault. |

Batch calls:

```text theme={null}
Execute: [asset.approve(clone, supplyAmount), clone.execute()]
Settle:  [clone.settle()]
```

Settlement is all-or-revert. If the market cannot pay the full position back, Morpho's own liquidity check reverts the withdrawal and settlement is retried later.

## Init checks

The init data is `(address morpho, MarketParams marketParams, uint256 supplyAmount)`. The strategy resolves the vault's `TierRegistry` through `vault → governor → tierRegistry`. Init reverts when:

| Error | Cause |
| - | - |
| `TierRegistryUnresolved` | The `vault → governor → tierRegistry` walk found no registry |
| `MorphoNotAllowed` | The Morpho singleton is not an allowed counterparty on that registry |
| `MorphoMarketNotAllowed` | The market id is not allowlisted with `TierRegistry.setMorphoMarketAllowed` |
| `InvalidAmount` | `supplyAmount` is zero |
| `LoanAssetMismatch` | The market's loan token is not the vault asset |
| `MarketNotCreated` | The market id has never been created on that Morpho contract |

Execute re-checks both allowlists, the Morpho singleton and the market id. Settlement checks neither, so a de-listing cannot freeze supplied capital.

<Note>
  The market allowlist is **per market id**, owner-set on `TierRegistry`. A market that passes every other check still fails init until the registry owner has allowed its id. Read `isMorphoMarketAllowed(id)` before you propose; the CLI preflight reports the failure by name.
</Note>

## Propose

The CLI resolves the market's parameters from its id, then runs every `_initialize` check on-chain before sending anything, and reports all failures in one message.

```bash theme={null}
sherwood strategy propose morpho-supply \
  --vault 0x... \
  --market-id <bytes32 market id> \
  --amount 1000 \
  --name "USDG lending" \
  --duration 7d
```

| Flag | Description | Default |
| - | - | - |
| `--market-id <bytes32\|recommended>` | Morpho Blue market to supply, or `recommended` for the data-feed pick at `--amount` | required |
| `--amount <n>` | Vault asset to supply, human units | required |
| `--morpho <address>` | Morpho Blue singleton | the network's `MORPHO_BLUE` |

The template is uncertified at launch, so the proposal prices at full notional on both legs for [coverage](/protocol/governance/coverage) and the [proposer bond](/protocol/governance/proposer-bond).

## Choosing a market

This strategy supplies one Morpho Blue **market**. It cannot deposit into a Morpho (V2) vault. A curated vault's APY can come from idle cash or rewards that a single market doesn't pay, so compare markets, not vaults.

`sherwood sources get morpho --amount <usd>` (see [Data feeds](/cli/sources-commands)) ranks every USDG market and returns `recommended.pick` with its `market_params` and reasons.

A market is eligible when:

* it has no RED Morpho warnings,
* its supply APY is above zero,
* its withdrawable liquidity is at least the larger of \$250k and 5× the amount,
* its utilization is below 99%.

Eligible markets are scored by APY × a liquidity factor × a utilization factor. The utilization factor penalizes markets above 92%. Stock-collateral markets are often 100% utilized, which means \$0 withdrawable, so they come back as `rejected` with the reason. `--market-id recommended` uses the pick directly. The pick is a starting point, not advice, and it is not the allowlist: check the market yourself and confirm its id is allowed on `TierRegistry` before proposing.

## Risk notes

* **Liquidity risk at exit.** If borrowers have taken most of the market's supply, settlement reverts until liquidity returns. The vault stays locked while the proposal is open.
* **Market risk.** Supplied capital is exposed to the market's bad debt, which depends on its collateral, oracle and LLTV. Read the market parameters the CLI prints before you propose.

## Addresses

The `MorphoSupplyStrategy` template (`MORPHO_SUPPLY_TEMPLATE`) and the Morpho Blue singleton (`MORPHO_BLUE`) on Robinhood Chain are listed on [Deployments](/reference/deployments). The allowlisted market ids are read from `TierRegistry.isMorphoMarketAllowed`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.