Morpho Vaults
Deposit into Morpho ERC-4626 vaults or withdraw from them via a Safe wallet.
Deposit into Morpho ERC-4626 vaults to earn yield, or withdraw assets back to your Safe wallet.
Uses the two-step POST /v1.2/safes/operations → PUT /v1.2/safes/operations flow.
1. Discover available Morpho vaults
Retrieve active Morpho vaults for the target chain:
Each vault object contains poolAddress (the ERC-4626 vault address), assetTicker, name, apy, tvl, isDefault, and metadata with the curator name.
Unlike Aave (one pool per chain per asset), Morpho has multiple vaults per asset with different curators and strategies (e.g. "Steakhouse USDC", "Gauntlet WETH").
2. Deposit (supply)
Deposit tokens into a Morpho vault.
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Must be "MORPHO_SUPPLY" |
amount | string | Yes | Amount in human-readable units (e.g. "1000" for 1000 USDC) |
assetTicker | string | One of assetTicker or tokenAddress | Token ticker |
tokenAddress | string | One of assetTicker or tokenAddress | ERC-20 token contract address |
decimals | number | No | Required when using tokenAddress |
vaultAddress | string | No | ERC-4626 vault address; auto-resolved via BCReader if omitted |
On-chain: the API builds an approve(vault, amount) + ERC-4626 deposit(amount, safe) MultiSend.
3. Withdraw
Full exit (by shares — recommended)
Redeem all vault shares to get back all deposited assets plus yield:
Partial withdrawal (by amount)
Withdraw a specific amount of the underlying asset:
| Field | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Must be "MORPHO_WITHDRAW" |
shares | string | One of shares or amount | Vault shares to redeem (raw bigint string) |
amount | string | One of shares or amount | Asset amount in human-readable units |
assetTicker | string | No | Required for amount-based withdraw |
tokenAddress | string | No | ERC-20 address (alternative to assetTicker) |
decimals | number | No | Required when using tokenAddress |
vaultAddress | string | No | Vault address; auto-resolved if omitted |
4. Check positions
After depositing, check your Morpho positions:
The response pools array contains a MORPHO provider entry. Each item includes:
| Field | Description |
|---|---|
vaultAddress | ERC-4626 vault contract address |
vaultName | Human-readable vault name |
assetTicker | Underlying asset (e.g. USDC) |
shares | User's vault share balance (raw bigint) |
assetsValue | Share value converted to underlying asset amount |
apy | Current vault APY |
method | "MORPHO_ERC4626" — computed via balanceOf + convertToAssets |